

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

# Menambahkan atribut khusus
<a name="CloudWatch-Transaction-Search-add-custom-attributes"></a>

 CloudWatch Sinyal Aplikasi digunakan OpenTelemetry untuk instrumen otomatis aplikasi Anda dan mengumpulkan rentang dari pustaka populer dalam berbagai bahasa, seperti, JavaPython, dan banyak lagi. 

 Auto-instrumentation menangkap informasi, seperti kueri database, permintaan HTTP, akses cache, dan panggilan layanan eksternal, yang memungkinkan Anda memecahkan masalah kinerja aplikasi. 

 Anda dapat menambahkan instrumentasi khusus untuk memperkaya rentang dengan data khusus bisnis atau informasi lain yang ingin Anda tangkap. Data ini dapat direkam sebagai atribut khusus atau peristiwa rentang, memberikan wawasan yang disesuaikan dengan kebutuhan pemecahan masalah Anda. 

**catatan**  
 Untuk informasi tentang menambahkan atribut khusus atau peristiwa rentang dalam bahasa yang berbeda, lihat API [ bahasa dan SDK ](https://opentelemetry.io/docs/languages/) di * OpenTelemetry situs web*. 

## Atribut kustom
<a name="w2aac25c21c19c11"></a>

 Anda dapat menambahkan atribut terkait bisnis atau atribut lainnya ke rentang Anda dalam semua OpenTelemetry dukungan bahasa. Berikut ini adalah cuplikan Java kode yang menambahkan id pesanan dan detail pelanggan ke rentang. 

```
import io.opentelemetry.api.trace.Span;

public class OrderProcessor {

    public void processOrder() {
        Span span = Span.current();
        span.setAttribute("order.id", "123456");
        span.setAttribute("customer.name", "John Doe");
        span.setAttribute("customer.id", "4343dfdd");

        // Your order processing logic here
        System.out.println("Order processed with custom attributes");
    }
}
```

 Setelah atribut ini ditambahkan ke rentang, mereka menjadi tersedia untuk dicari dan dianalisis [ di editor visual Pencarian Transaksi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-search-analyze-spans.html). 

## Rentang acara
<a name="w2aac25c21c19c13"></a>

 Peristiwa rentang biasanya digunakan untuk menunjukkan titik waktu tunggal yang bermakna selama durasi rentang. Pengecualian diambil secara otomatis sebagai peristiwa rentang melalui instrumentasi otomatis, tetapi Anda juga dapat menambahkan acara bisnis khusus, seperti status pembayaran atau pengabaian keranjang. Untuk informasi selengkapnya, lihat [ Span events ](https://opentelemetry.io/docs/concepts/signals/traces/#span-events) di OpenTelemetry situs web. 

 Anda dapat menyematkan peristiwa rentang ke rentang Anda dalam semua bahasa Sin CloudWatch yal Aplikasi dan OpenTelemetry dukungan. Berikut ini adalah cuplikan Java kode untuk menambahkan peristiwa khusus ke rentang. 

```
import io.opentelemetry.api.trace.Span;

public class OrderProcessor {

    public void bookOrder() {
        Span span = Span.current();

        // Add a booking started event
        span.addEvent("booking started");
        
        // Add a payment succeeded event or failed event 
        span.addEvent("booking failed");
    }
}
```

### Prasyarat untuk CloudWatch agen
<a name="w2aac25c21c19c13b9"></a>

 Saat menggunakan CloudWatch agen untuk memancarkan peristiwa span ke X-Ray, Anda harus mengaktifkan ``transit_spans_in_otlp_format`` flag dalam konfigurasi Anda. 

```
{
  "traces": {
    ...
    "transit_spans_in_otlp_format": true
    ...
  }
}
```

 Setelah Anda menambahkan peristiwa ini, acara tersebut akan tersedia di editor visual Pencarian [ Transaksi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-search-analyze-spans.html). 

## CloudWatch Permintaan log
<a name="w2aac25c21c19c15"></a>

 Anda dapat menanyakan peristiwa rentang di CloudWatch Log untuk melihat wawasan lanjutan. Contoh perintah kueri berikut menunjukkan cara menganalisis pengecualian yang dilemparkan oleh aplikasi Anda: 

```
fields jsonparse(@message) as js
| unnest js.events into event 
| filter event.name = "exception"
| display event.attributes.`exception.stacktrace`
```

```
fields jsonparse(@message) as js
| unnest js.events into event 
| filter event.name = "exception"
| stats count() by event.attributes.`exception.type`
```