

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

# Jejak dan metrik
<a name="configure-observability"></a>

 Alat AWS SDK untuk Go ini diinstrumentasi untuk merekam rentang jejak dan metrik sisi klien untuk operasi SDK. Secara default, klien menggunakan implementasi no-op untuk penelusuran dan metrik, yang berarti tidak ada data yang dikumpulkan kecuali Anda mengonfigurasi penyedia. 

 Klien layanan memiliki dua opsi konfigurasi untuk observabilitas: 
+  [TracerProvider](https://pkg.go.dev/github.com/aws/smithy-go/tracing#TracerProvider)— Titik masuk untuk membuat pelacak dan merekam rentang jejak klien. 
+  [MeterProvider](https://pkg.go.dev/github.com/aws/smithy-go/metrics#MeterProvider)— Titik masuk untuk membuat meter dan merekam metrik sisi klien. 

 Meskipun terinspirasi oleh spesifikasi OpenTelemetry (OTel), ini didefinisikan APIs secara independen di`smithy-go`. SDK menyediakan modul adaptor untuk menghubungkan implementasi OTel SDK konkret ke antarmuka penyedia SDK. 

## Pelacakan
<a name="configure-tracing"></a>

 Gunakan modul adaptor [smithyoteltracing](https://pkg.go.dev/github.com/aws/smithy-go/tracing/smithyoteltracing) untuk menghubungkan ke klien layanan. OTel `trace.TracerProvider` 

 Contoh berikut menunjukkan cara mengonfigurasi penelusuran untuk klien Amazon S3: 

```
import (
    "github.com/aws/aws-sdk-go-v2/service/s3"
    "github.com/aws/smithy-go/tracing/smithyoteltracing"
    "go.opentelemetry.io/otel/trace"
)

// provider is an OTel trace.TracerProvider that you have configured.
var provider trace.TracerProvider

svc := s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.TracerProvider = smithyoteltracing.Adapt(provider)
})
```

 Operasi SDK diinstrumentasi dengan hierarki rentang yang mencakup komponen tingkat tinggi dari siklus hidup operasi, seperti serialisasi permintaan, penandatanganan, dan loop coba lagi. 

## Metrik-metrik
<a name="configure-metrics"></a>

 Gunakan modul adaptor [smithyotelmetrics](https://pkg.go.dev/github.com/aws/smithy-go/metrics/smithyotelmetrics) untuk menghubungkan ke klien layanan. OTel `metric.MeterProvider` 

 Contoh berikut menunjukkan cara mengonfigurasi metrik untuk klien Amazon S3: 

```
import (
    "github.com/aws/aws-sdk-go-v2/service/s3"
    "github.com/aws/smithy-go/metrics/smithyotelmetrics"
    "go.opentelemetry.io/otel/metric"
)

// provider is an OTel metric.MeterProvider that you have configured.
var provider metric.MeterProvider

svc := s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.MeterProvider = smithyotelmetrics.Adapt(provider)
})
```

### Metrik yang didukung
<a name="supported-metrics"></a>

 Klien SDK mengumpulkan metrik berikut: 


| Nama metrik | Unit | Tipe | Deskripsi | 
| --- | --- | --- | --- | 
| client.call.duration | detik | Histogram | Durasi panggilan keseluruhan termasuk percobaan ulang dan waktu untuk mengirim atau menerima permintaan dan badan respons. | 
| client.call.attempts | \$1mencoba\$1 | MonotonicCounter | Jumlah upaya untuk operasi individu. | 
| client.call.errors | \$1kesalahan\$1 | MonotonicCounter | Jumlah kesalahan untuk suatu operasi. | 
| client.call.attempt\$1duration | detik | Histogram | Waktu untuk terhubung ke layanan, mengirim permintaan, dan mendapatkan kembali kode status HTTP dan header (termasuk waktu antrian menunggu untuk dikirim). | 
| client.call.resolve\$1endpoint\$1duration | detik | Histogram | Waktu untuk menyelesaikan titik akhir (endpoint resolver, bukan DNS) untuk permintaan. | 
| client.call.deserialization\$1duration | detik | Histogram | Waktu untuk deserialisasi badan pesan. | 
| client.call.auth.signing\$1duration | detik | Histogram | Waktu untuk menandatangani permintaan. | 
| client.call.auth.resolve\$1identity\$1duration | detik | Histogram | Waktu untuk memperoleh identitas (AWS kredensyal, token pembawa, dll.) Dari penyedia identitas. | 

 Atribut (dimensi) berikut disertakan dengan setiap metrik jika berlaku: 
+ `rpc.service`- Nama layanan.
+ `rpc.method`Nama operasi.
+ `exception.type`— Jenis kesalahan (disertakan dengan`client.call.errors`).
+ `auth.scheme_id`— Skema otentikasi (disertakan dengan metrik terkait auth-related).

### Metrik klien HTTP
<a name="http-client-metrics"></a>

 Klien HTTP SDK mengumpulkan metrik tambahan berikut yang terkait dengan siklus hidup koneksi HTTP yang mendasarinya: 


| Nama metrik | Unit | Tipe | Deskripsi | 
| --- | --- | --- | --- | 
| client.http.connections.acquire\$1duration | detik | Histogram | Waktu yang dibutuhkan permintaan untuk mendapatkan koneksi. | 
| client.http.connections.dns\$1lookup\$1duration | detik | Histogram | Waktu yang dibutuhkan untuk melakukan pencarian DNS. | 
| client.http.connections.tls\$1handshake\$1duration | detik | Histogram | Waktu yang dibutuhkan untuk melakukan jabat tangan TLS. | 
| client.http.connections.usage | \$1koneksi\$1 | UpDownCounter | Keadaan koneksi saat ini di kolam renang. Menggunakan state dimensi dengan nilai idle atauacquired. | 
| client.http.do\$1request\$1duration | detik | Histogram | Total waktu yang dihabiskan untuk melakukan permintaan HTTP. | 
| client.http.time\$1to\$1first\$1byte | detik | Histogram | Waktu dari mengirim permintaan untuk menerima byte respons pertama. | 