Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jejak dan metrik
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
— Titik masuk untuk membuat pelacak dan merekam rentang jejak klien. -
MeterProvider
— Titik masuk untuk membuat meter dan merekam metrik sisi klien.
Meskipun terinspirasi oleh spesifikasi OpenTelemetry (OTel), ini didefinisikan APIs secara independen dismithy-go. SDK menyediakan modul adaptor untuk menghubungkan implementasi OTel SDK konkret ke antarmuka penyedia SDK.
Pelacakan
Gunakan modul adaptor smithyoteltracingtrace.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
Gunakan modul adaptor smithyotelmetricsmetric.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
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 |
{mencoba} | MonotonicCounter | Jumlah upaya untuk operasi individu. |
client.call.errors |
{kesalahan} | MonotonicCounter | Jumlah kesalahan untuk suatu operasi. |
client.call.attempt_duration |
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_endpoint_duration |
detik | Histogram | Waktu untuk menyelesaikan titik akhir (endpoint resolver, bukan DNS) untuk permintaan. |
client.call.deserialization_duration |
detik | Histogram | Waktu untuk deserialisasi badan pesan. |
client.call.auth.signing_duration |
detik | Histogram | Waktu untuk menandatangani permintaan. |
client.call.auth.resolve_identity_duration |
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.methodNama operasi.exception.type— Jenis kesalahan (disertakan denganclient.call.errors).auth.scheme_id— Skema otentikasi (disertakan dengan metrik terkait auth-related).
Metrik klien HTTP
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_duration |
detik | Histogram | Waktu yang dibutuhkan permintaan untuk mendapatkan koneksi. |
client.http.connections.dns_lookup_duration |
detik | Histogram | Waktu yang dibutuhkan untuk melakukan pencarian DNS. |
client.http.connections.tls_handshake_duration |
detik | Histogram | Waktu yang dibutuhkan untuk melakukan jabat tangan TLS. |
client.http.connections.usage |
{koneksi} | UpDownCounter | Keadaan koneksi saat ini di kolam renang. Menggunakan state dimensi dengan nilai idle atauacquired. |
client.http.do_request_duration |
detik | Histogram | Total waktu yang dihabiskan untuk melakukan permintaan HTTP. |
client.http.time_to_first_byte |
detik | Histogram | Waktu dari mengirim permintaan untuk menerima byte respons pertama. |