

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengonfigurasi X-Ray SDK for Java
<a name="xray-sdk-java-configuration"></a>

**catatan**  
Pemberitahuan SDK/Daemon Pemeliharaan X-Ray - Pada 25 Februari 2026, AWS SDKs/Daemon X-Ray akan memasuki mode pemeliharaan, di mana AWS akan membatasi rilis X-Ray SDK dan Daemon untuk mengatasi masalah keamanan saja. Untuk informasi selengkapnya tentang garis waktu dukungan, lihat[Garis waktu Dukungan X-Ray SDK dan Daemon](xray-sdk-daemon-timeline.md). Kami merekomendasikan untuk bermigrasi ke OpenTelemetry. Untuk informasi lebih lanjut tentang migrasi ke OpenTelemetry, lihat [Migrasi dari instrumentasi X-Ray ke instrumentasi](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html). OpenTelemetry 

X-Ray SDK for Java mencakup kelas bernama `AWSXRay` yang menyediakan pencatat global. Ini adalah `TracingHandler` yang dapat Anda gunakan untuk menginstrumentasikan kode Anda. Anda dapat mengonfigurasi pencatat global untuk menyesuaikan `AWSXRayServletFilter` yang membuat segmen untuk panggilan HTTP masuk.

**Topics**
+ [Plugin layanan](#xray-sdk-java-configuration-plugins)
+ [Aturan pengambilan sampel](#xray-sdk-java-configuration-sampling)
+ [Pencatatan log](#xray-sdk-java-configuration-logging)
+ [Listener segmen](#xray-sdk-java-configuration-listeners)
+ [Variabel-variabel lingkungan](#xray-sdk-java-configuration-envvars)
+ [Properti sistem](#xray-sdk-java-configuration-sysprops)

## Plugin layanan
<a name="xray-sdk-java-configuration-plugins"></a>

Gunakan `plugins` untuk mencatat informasi tentang layanan yang meng-hosting aplikasi Anda.

**Plugin**
+ Amazon EC2 — `EC2Plugin` menambahkan ID instans, Availability Zone, dan Grup CloudWatch Log.
+ Elastic Beanstalk – `ElasticBeanstalkPlugin` menambahkan nama lingkungan, label versi, dan ID deployment.
+ Amazon ECS – `ECSPlugin` menambahkan ID kontainer.
+ Amazon EKS — `EKSPlugin` menambahkan ID kontainer, nama cluster, ID pod, dan Grup CloudWatch Log.

![\[Data sumber daya segmen dengan Amazon EC2 dan plugin Elastic Beanstalk.\]](http://docs.aws.amazon.com/id_id/xray/latest/devguide/images/scorekeep-PUTrules-segment-resources.png)


Untuk menggunakan plugin, hubungi `withPlugin` di `AWSXRayRecorderBuilder` Anda.

**Example src/main/java/scorekeep/WebConfig.java - perekam**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
import [com.amazonaws.xray.AWSXRayRecorderBuilder](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRayRecorderBuilder.html);
import [com.amazonaws.xray.plugins.EC2Plugin](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/plugins/EC2Plugin.html);
import [com.amazonaws.xray.plugins.ElasticBeanstalkPlugin](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/plugins/ElasticBeanstalkPlugin.html);
import [com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.html);

@Configuration
public class WebConfig {
...
  static {
    AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard().withPlugin(new EC2Plugin()).withPlugin(new ElasticBeanstalkPlugin());

    URL ruleFile = WebConfig.class.getResource("/sampling-rules.json");
    builder.withSamplingStrategy(new LocalizedSamplingStrategy(ruleFile));

    AWSXRay.setGlobalRecorder(builder.build());
  }
}
```

SDK juga menggunakan pengaturan plugin untuk mengatur bidang `origin` pada segmen. Ini menunjukkan jenis AWS sumber daya yang menjalankan aplikasi Anda. Saat Anda menggunakan beberapa plugin, SDK menggunakan urutan resolusi berikut untuk menentukan asal: ElasticBeanstalk > EKS > ECS > EC2.

## Aturan pengambilan sampel
<a name="xray-sdk-java-configuration-sampling"></a>

SDK menggunakan aturan pengambilan sampel yang Anda tetapkan di konsol X-Ray untuk menentukan permintaan yang akan dicatat. Aturan default menelusuri permintaan pertama setiap detik, dan lima persen permintaan tambahan di semua layanan yang mengirim pelacakan ke X-Ray. [Buat aturan tambahan di konsol X-Ray](xray-console-sampling.md) untuk menyesuaikan jumlah data yang dicatat untuk setiap aplikasi Anda.

SDK menerapkan aturan kustom sesuai urutan penetapannya. Jika permintaan cocok dengan beberapa aturan kustom, SDK hanya menerapkan aturan pertama.

**catatan**  
Jika SDK tidak dapat mencapai X-Ray untuk mendapatkan aturan pengambilan sampel, SDK akan beralih ke aturan lokal default dari permintaan pertama setiap detik, dan lima persen permintaan tambahan per host. Hal ini dapat terjadi jika host tidak memiliki izin untuk memanggil sampling APIs, atau tidak dapat terhubung ke daemon X-Ray, yang bertindak sebagai proxy TCP untuk panggilan API yang dilakukan oleh SDK.

Anda juga dapat mengonfigurasi SDK untuk memuat aturan sampling dari dokumen JSON. SDK dapat menggunakan aturan lokal sebagai cadangan jika terjadi kasus tidak dapat mengambil sampel X-Ray, atau menggunakan aturan lokal secara eksklusif.

**Example sampling-rules.json**  

```
{
  "version": 2,
  "rules": [
    {
      "description": "Player moves.",
      "host": "*",
      "http_method": "*",
      "url_path": "/api/move/*",
      "fixed_target": 0,
      "rate": 0.05
    }
  ],
  "default": {
    "fixed_target": 1,
    "rate": 0.1
  }
}
```

Contoh ini menentukan satu aturan kustom dan aturan default. Aturan kustom menerapkan tingkat pengambilan sampel lima persen tanpa jumlah minimum permintaan untuk melacak jalur di `/api/move/`. Aturan default menelusuri permintaan pertama setiap detik dan 10 persen dari permintaan tambahan.

Kerugian dari menentukan aturan secara lokal adalah bahwa target tetap diterapkan oleh setiap instans pencatat secara independen, alih-alih dikelola oleh layanan X-Ray. Ketika Anda men-deploy lebih banyak host, laju tetap akan dikalikan, sehingga sulit untuk mengontrol jumlah data yang dicatat.

 AWS Lambda Aktif, Anda tidak dapat mengubah laju pengambilan sampel. Jika fungsi Anda dipanggil oleh layanan yang diinstrumentasikan, panggilan yang menghasilkan permintaan yang sampelnya diambil oleh layanan yang akan dicatat oleh Lambda. Jika pelacakan aktif diaktifkan dan tidak ada header pelacakan, Lambda membuat keputusan pengambilan sampel.

Untuk memberikan aturan cadangan di Spring, konfigurasi pencatat global dengan `CentralizedSamplingStrategy` di kelas konfigurasi.

**Example src/main/java/myapp/WebConfig.java - konfigurasi perekam**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
import [com.amazonaws.xray.AWSXRayRecorderBuilder](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRayRecorderBuilder.html);
import [com.amazonaws.xray.javax.servlet.AWSXRayServletFilter](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/javax/servlet/AWSXRayServletFilter.html);
import [com.amazonaws.xray.plugins.EC2Plugin](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/plugins/EC2Plugin.html);
import [com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.html);

@Configuration
public class WebConfig {

  static {
  AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard().withPlugin(new EC2Plugin());

  URL ruleFile = WebConfig.class.getResource("/sampling-rules.json");
  builder.withSamplingStrategy(new CentralizedSamplingStrategy(ruleFile));

  AWSXRay.setGlobalRecorder(builder.build());
}
```

Untuk Tomcat, tambahkan listener yang memperluas `ServletContextListener` dan mendaftarkan listener di pendeskripsi deployment.

**Example src/com/myapp/web/Startup.jawa**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
import [com.amazonaws.xray.AWSXRayRecorderBuilder](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRayRecorderBuilder.html);
import [com.amazonaws.xray.plugins.EC2Plugin](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/plugins/EC2Plugin.html);
import [com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.html);

import java.net.URL;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Startup implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard().withPlugin(new EC2Plugin());

        URL ruleFile = Startup.class.getResource("/sampling-rules.json");
        builder.withSamplingStrategy(new CentralizedSamplingStrategy(ruleFile));

        AWSXRay.setGlobalRecorder(builder.build());
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) { }
}
```

**Example WEB-INF/web.xml**  

```
...
  <listener>
    <listener-class>com.myapp.web.Startup</listener-class>
  </listener>
```

Untuk menggunakan aturan lokal saja, ganti `CentralizedSamplingStrategy` dengan `LocalizedSamplingStrategy`.

```
builder.withSamplingStrategy(new LocalizedSamplingStrategy(ruleFile));
```

## Pencatatan log
<a name="xray-sdk-java-configuration-logging"></a>

Secara default, SDK menghasilkan pesan tingkat `ERROR` untuk log aplikasi Anda. Anda dapat mengaktifkan pencatatan tingkat debug di SDK untuk menghasilkan log lebih terperinci ke berkas log aplikasi Anda. Tingkat log yang valid adalah `DEBUG`, `INFO`, `WARN`, `ERROR`, dan`FATAL`. Tingkat log `FATAL` mengheningkan semua pesan log karena SDK tidak mencatat di tingkat fatal.

**Example application.properties**  
Atur tingkat pencatatan dengan properti `logging.level.com.amazonaws.xray`.  

```
logging.level.com.amazonaws.xray = DEBUG
```

Gunakan log debug untuk mengidentifikasi masalah, seperti subsegmen yang tidak tertutup, saat Anda [menghasilkan subsegmen secara manual](xray-sdk-java-subsegments.md).

### Injeksi ID pelacakan ke log
<a name="xray-sdk-java-configuration-logging-id-injection"></a>

Untuk mengekspos ID pelacakan yang memenuhi syarat ke pernyataan log Anda, Anda dapat menyuntikkan ID ke dalam konteks diagnostik yang dipetakan (MDC). Menggunakan antarmuka `SegmentListener`, metode dipanggil dari pencatat X-Ray selama peristiwa siklus hidup segmen. Ketika segmen atau subsegmen dimulai, ID pelacakan yang memenuhi syarat disuntikkan ke MDC dengan kunci`AWS-XRAY-TRACE-ID`. Ketika segmen tersebut berakhir, kunci akan dihapus dari MDC. Hal ini memperlihatkan ID pelacakan ke pustaka pencatatan yang digunakan. Ketika subsegmen berakhir, ID induknya disuntikkan ke MDC.

**Example ID pelacakan yang memenuhi syarat**  
ID yang memenuhi syarat direpresentasikan sebagai `TraceID@EntityID`  

```
1-5df42873-011e96598b447dfca814c156@541b3365be3dafc3
```

Fitur ini bekerja dengan aplikasi Java yang diinstrumentasi dengan AWS X-Ray SDK for Java, dan mendukung konfigurasi logging berikut:
+ SLF4J front-end API dengan backend Logback
+ SLF4API front-end J dengan backend Log4J2
+ API front-end Log4J2 dengan backend Log4J2

Lihat tab berikut untuk kebutuhan setiap front end dan backend.

------
#### [ SLF4J Frontend ]

1. Tambahkan dependensi Maven berikut ke proyek Anda:

   ```
   <dependency>
       <groupId>com.amazonaws</groupId>
       <artifactId>aws-xray-recorder-sdk-slf4j</artifactId>
       <version>2.11.0</version>
   </dependency>
   ```

1. Sertakan metode `withSegmentListener` ketika membangun `AWSXRayRecorder`. Ini menambahkan `SegmentListener` kelas, yang secara otomatis menyuntikkan jejak baru IDs ke SLF4 J MDC.

   `SegmentListener` mengambil string opsional sebagai parameter untuk mengonfigurasi prefiks pernyataan log. Prefiks dapat dikonfigurasi dengan cara berikut:
   + **Tidak ada** – Menggunakan prefiks `AWS-XRAY-TRACE-ID` default.
   + **Kosong** - Menggunakan string kosong (misalnya `""`).
   + **Kustom** - Menggunakan prefiks kustom sebagaimana ditentukan dalam string.  
**Example Pernyataan `AWSXRayRecorderBuilder`**  

   ```
   AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder
           .standard().withSegmentListener(new SLF4JSegmentListener("CUSTOM-PREFIX"));
   ```

------
#### [ Log4J2 front end ]

1. Tambahkan dependensi Maven berikut ke proyek Anda:

   ```
   <dependency>
       <groupId>com.amazonaws</groupId>
       <artifactId>aws-xray-recorder-sdk-log4j</artifactId>
       <version>2.11.0</version>
   </dependency>
   ```

1. Sertakan metode `withSegmentListener` ketika membangun `AWSXRayRecorder`. Ini akan menambahkan `SegmentListener` kelas, yang secara otomatis menyuntikkan jejak baru yang sepenuhnya memenuhi syarat IDs ke SLF4 J MDC.

   `SegmentListener` mengambil string opsional sebagai parameter untuk mengonfigurasi prefiks pernyataan log. Prefiks dapat dikonfigurasi dengan cara berikut:
   + **Tidak ada** – Menggunakan prefiks `AWS-XRAY-TRACE-ID` default.
   + **Kosong** - Menggunakan string kosong (misalnya `""`) dan menghapus prefiks.
   + **Kustom** - Menggunakan prefiks kustom sebagaimana ditentukan dalam string.  
**Example Pernyataan `AWSXRayRecorderBuilder`**  

   ```
   AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder
           .standard().withSegmentListener(new Log4JSegmentListener("CUSTOM-PREFIX"));
   ```

------
#### [ Logback backend ]

Untuk memasukkan ID pelacakan ke log acara Anda, Anda harus mengubah `PatternLayout` pencatat, yang membuat format setiap pernyataan pencatatan.

1. Temukan tempat `patternLayout` dikonfigurasi. Anda dapat melakukan ini secara terprogram, atau melalui file konfigurasi XML. Untuk mempelajari selengkapnya, lihat [Konfigurasi Longback](http://logback.qos.ch/manual/configuration.html).

1. Sisipkan `%X{AWS-XRAY-TRACE-ID}` dimanapun di `patternLayout` untuk memasukkan ID pelacakan dalam laporan pencatatan mendatang. `%X{}`menunjukkan bahwa Anda mengambil nilai dengan kunci yang disediakan dari MDC. Untuk mempelajari lebih lanjut tentang PatternLayouts Logback, lihat [PatternLayout](https://logback.qos.ch/manual/layouts.html#ClassicPatternLayout).

------
#### [ Log4J2 backend ]

1. Temukan tempat `patternLayout` dikonfigurasi. Anda dapat melakukan ini secara terprogram, atau melalui file konfigurasi yang ditulis dalam format XML, JSON, YAML, atau properti. 

   Untuk mempelajari selengkapnya tentang mengonfigurasi Log4J2 melalui file konfigurasi, lihat [Konfigurasi](https://logging.apache.org/log4j/2.x/manual/configuration.html). 

   Untuk mempelajari selengkapnya tentang mengonfigurasi Log4J2 secara terprogram, lihat [Konfigurasi Terprogram](https://logging.apache.org/log4j/2.x/manual/customconfig.html). 

1. Sisipkan `%X{AWS-XRAY-TRACE-ID}` dimanapun di `PatternLayout` untuk memasukkan ID pelacakan dalam laporan pencatatan mendatang. `%X{}`menunjukkan bahwa Anda mengambil nilai dengan kunci yang disediakan dari MDC. [Untuk mempelajari selengkapnya PatternLayouts di Log4J2, lihat Pattern Layout.](https://logging.apache.org/log4j/2.x/manual/layouts.html#Pattern_Layout)

------

**Contoh Injeksi ID pelacakan**  
Berikut menunjukkan string `PatternLayout` yang diubah untuk menyertakan pelacakan ID. ID pelacakan dicetak setelah nama thread (`%t`) dan sebelum tingkat log (`%-5p`).

**Example `PatternLayout` Dengan Injeksi ID**  

```
%d{HH:mm:ss.SSS} [%t] %X{AWS-XRAY-TRACE-ID} %-5p %m%n
```

AWS X-Ray secara otomatis mencetak kunci dan ID jejak dalam pernyataan log untuk memudahkan penguraian. Berikut ini menunjukkan pernyataan log menggunakan `PatternLayout` yang diubah.

**Example Pernyataan log dengan injeksi ID**  

```
2019-09-10 18:58:30.844 [nio-5000-exec-4]  AWS-XRAY-TRACE-ID: 1-5d77f256-19f12e4eaa02e3f76c78f46a@1ce7df03252d99e1 WARN 1 - Your logging message here
```

 Pesan pencatatan itu sendiri ditempatkan dalam pola `%m`dan diatur saat memanggil pencatat.

## Listener segmen
<a name="xray-sdk-java-configuration-listeners"></a>

Pendengar segmen adalah antarmuka untuk mencegat peristiwa siklus hidup seperti awal dan akhir segmen yang dihasilkan oleh. `AWSXRayRecorder` Pelaksanaan fungsi peristiwa listener segmen mungkin bertujuan untuk menambahkan anotasi yang sama untuk semua subsegmen ketika dibuat dengan [https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#onBeginSubsegment-com.amazonaws.xray.entities.Subsegment-](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#onBeginSubsegment-com.amazonaws.xray.entities.Subsegment-), mencatat pesan setelah setiap segmen dikirim ke daemon menggunakan [https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#afterEndSegment-com.amazonaws.xray.entities.Segment-](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#afterEndSegment-com.amazonaws.xray.entities.Segment-), atau untuk mencatat kueri yang dikirim oleh penghalang SQL menggunakan [https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#beforeEndSubsegment-com.amazonaws.xray.entities.Subsegment-](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#beforeEndSubsegment-com.amazonaws.xray.entities.Subsegment-) untuk memverifikasi subsegmen sebagai perwakilan kueri SQL, menambahkan metadata tambahan jika memang demikian.

Untuk melihat daftar lengkap fungsi `SegmentListener`, kunjungi dokumentasi untuk [API SDK for Java Pencatat AWS X-Ray](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html).

Contoh berikut menunjukkan cara menambahkan anotasi yang konsisten untuk semua subsegmen pada pembuatan dengan [https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#onBeginSubsegment-com.amazonaws.xray.entities.Subsegment-](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#onBeginSubsegment-com.amazonaws.xray.entities.Subsegment-) dan untuk mencetak pesan log di akhir setiap segmen dengan [https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#afterEndSegment-com.amazonaws.xray.entities.Segment-](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/listeners/SegmentListener.html#afterEndSegment-com.amazonaws.xray.entities.Segment-). 

**Example MySegmentListener.jawa**  

```
import com.amazonaws.xray.entities.Segment;
import com.amazonaws.xray.entities.Subsegment;
import com.amazonaws.xray.listeners.SegmentListener;

public class MySegmentListener implements SegmentListener {
    .....
    
    @Override
    public void onBeginSubsegment(Subsegment subsegment) {
        subsegment.putAnnotation("annotationKey", "annotationValue");
    }
    
    @Override
    public void afterEndSegment(Segment segment) {
        // Be mindful not to mutate the segment
        logger.info("Segment with ID " + segment.getId());
    }
}
```

Listener segmen kustom ini kemudian direferensikan ketika membangun `AWSXRayRecorder`.

**Example AWSXRayRecorderBuilder pernyataan**  

```
AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder
        .standard().withSegmentListener(new MySegmentListener());
```

## Variabel-variabel lingkungan
<a name="xray-sdk-java-configuration-envvars"></a>

Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi X-Ray SDK for Java. SDK mendukung variabel berikut.
+ `AWS_XRAY_CONTEXT_MISSING`— Setel `RUNTIME_ERROR` untuk melempar pengecualian saat kode instrumentasi Anda mencoba merekam data saat tidak ada segmen yang terbuka.

**Nilai Valid**
  + `RUNTIME_ERROR`— Lempar pengecualian runtime.
  + `LOG_ERROR`— Log kesalahan dan lanjutkan (default).
  + `IGNORE_ERROR`— Abaikan kesalahan dan lanjutkan.

  Kesalahan yang berkaitan dengan segmen atau subsegmen yang hilang dapat terjadi ketika Anda mencoba untuk menggunakan klien yang diinstrumentasi dalam kode perusahaan rintisan yang berjalan ketika tidak ada permintaan terbuka, atau dalam kode yang memunculkan thread baru.
+ `AWS_XRAY_DAEMON_ADDRESS` – Mengatur host dan port pendengar daemon X-Ray. Secara default, SDK menggunakan `127.0.0.1:2000` untuk data pelacakan (UDP) dan pengambilan sampel (TCP). Gunakan variabel ini jika Anda telah mengonfigurasi daemon untuk [mendengarkan di port berbeda](xray-daemon-configuration.md) atau jika berjalan pada host yang berbeda.

**Format**
  + **Port yang sama** – `address:port`
  + **Port yang berbeda** – `tcp:address:port udp:address:port`
+ `AWS_LOG_GROUP`— Tetapkan nama grup log ke grup log yang terkait dengan aplikasi Anda. Jika grup log Anda menggunakan AWS akun dan wilayah yang sama dengan aplikasi Anda, X-Ray akan secara otomatis mencari data segmen aplikasi Anda menggunakan grup log yang ditentukan ini. Untuk informasi selengkapnya tentang grup log, lihat [Bekerja dengan grup log dan aliran](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).
+ `AWS_XRAY_TRACING_NAME` – Menetapkan nama layanan yang digunakan SDK untuk segmen. Menimpa nama layanan yang Anda tetapkan pada [strategi penamaan segmen](xray-sdk-java-filters.md#xray-sdk-java-filters-naming) filter servlet.

Variabel lingkungan mengesampingkan [Properti sistem](#xray-sdk-java-configuration-sysprops) yang setara dan nilai yang ditetapkan dalam kode.

## Properti sistem
<a name="xray-sdk-java-configuration-sysprops"></a>

Anda dapat menggunakan properti sistem sebagai alternatif khusus JVM bagi [Variabel lingkungan](#xray-sdk-java-configuration-envvars). File mendukung properti berikut:
+ `com.amazonaws.xray.strategy.tracingName` – Setara dengan `AWS_XRAY_TRACING_NAME`.
+ `com.amazonaws.xray.emitters.daemonAddress` – Setara dengan `AWS_XRAY_DAEMON_ADDRESS`.
+ `com.amazonaws.xray.strategy.contextMissingStrategy` – Setara dengan `AWS_XRAY_CONTEXT_MISSING`.

Jika kedua properti sistem dan variabel lingkungan setara ditetapkan, nilai variabel lingkungan digunakan. Salah satu metode menimpa nilai yang diatur dalam kode.