Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi sampling adaptif
Jejak kritis yang hilang selama lonjakan anomali dapat membuat analisis akar penyebab menjadi sulit. Namun, mempertahankan tingkat pengambilan sampel yang tinggi itu mahal. X-Ray adaptive sampling memberikan visibilitas lengkap ke anomali dan mengontrol biaya selama operasi normal. Dengan sampling adaptif, Anda menetapkan laju pengambilan sampel maksimum, dan X-Ray secara otomatis menyesuaikan dalam batas itu. X-Ray menghitung dorongan minimum yang diperlukan untuk menangkap jejak kesalahan. Jika tingkat dasar Anda menangkap data yang cukup, tidak ada peningkatan yang terjadi. Anda hanya membayar sampling ekstra saat dibutuhkan.
Manfaat menggunakan sampling adaptif:
Visibilitas insiden lengkap — Dapatkan jejak penuh selama insiden tanpa intervensi manual. X-Ray secara otomatis menyesuaikan laju pengambilan sampel untuk menangkap jejak kesalahan, kemudian kembali ke tingkat normal.
Visibilitas akar penyebab — Selalu lihat sumber masalah. X-Ray menangkap data kesalahan kritis bahkan ketika pengambilan sampel jejak penuh tidak dipicu.
Optimalkan biaya — Peningkatan pengambilan sampel singkat (hingga 1 menit) dan periode cooldown otomatis mencegah oversampling. Anda hanya membayar untuk data yang Anda butuhkan untuk mendiagnosis masalah.
Didukung SDKs dan platform
SDK yang didukung - Pengambilan sampel adaptif memerlukan versi terbaru dari ADOT SDK.
Bahasa yang didukung - Java (versi v2.11.5
Aplikasi Anda harus diinstrumentasi dengan SDK ADOT yang didukung dan dijalankan bersama dengan CloudWatch Agen Amazon atau Kolektor. OpenTelemetry
Misalnya, Amazon EC2, Amazon ECS, dan Amazon EKS adalah platform umum di mana Sinyal AWS Aplikasi memberikan panduan untuk mengaktifkan ADOT SDK dan Agen Amazon. CloudWatch
Pilih pendekatan sampling adaptif Anda
Adaptive sampling mendukung dua pendekatan, Sampling Boost dan Anomaly Span Capture. Ini dapat diterapkan secara independen atau dapat digabungkan bersama.
Peningkatan pengambilan sampel
Peningkatan pengambilan sampel adaptif didasarkan pada aturan pengambilan sampel dan bekerja dengan model pengambilan sampel berbasis kepala X-Ray yang ada. Pengambilan sampel berbasis kepala berarti bahwa keputusan pengambilan sampel dibuat di layanan root, dan flag sampling diteruskan ke hilir ke semua layanan dalam rantai panggilan.
-
Peningkatan berbasis aturan - Meningkatkan selalu terkait dengan aturan pengambilan sampel X-Ray tertentu. Setiap aturan dapat menentukan tingkat dorongan maksimumnya sendiri dan perilaku pendinginan.
-
Pengambilan sampel berbasis kepala — Keputusan pengambilan sampel dibuat di layanan root, dan bendera pengambilan sampel diteruskan ke hilir ke semua layanan dalam rantai panggilan.
-
Digerakkan oleh anomali — X-Ray bergantung pada SDK untuk melaporkan statistik anomali. Ketika X-Ray mendeteksi anomali seperti kesalahan atau latensi tinggi, X-Ray menggunakan statistik ini untuk menghitung tingkat dorongan yang sesuai (hingga maksimum yang dikonfigurasi).
Pelaporan anomali
Setiap layanan aplikasi dalam rantai panggilan dapat memancarkan statistik anomali melalui SDK yang diperlukan:
-
Layanan root — Harus berjalan pada SDK dan platform yang didukung untuk mengaktifkan peningkatan pengambilan sampel. Jika layanan root tidak didukung, tidak ada peningkatan yang akan terjadi.
-
Layanan hilir — Layanan hilir hanya melaporkan anomali; mereka tidak dapat membuat keputusan pengambilan sampel. Saat layanan hilir menjalankan SDK yang didukung, anomali yang terdeteksi dapat memicu peningkatan pengambilan sampel. Ketika layanan hilir tidak didukung (misalnya, menjalankan SDK yang lebih lama), anomali pada layanan tersebut tidak akan memicu peningkatan. Layanan ini masih dapat menyebarkan konteks ke hilir ketika mereka mengikuti propagasi konteks standar (seperti konteks jejak W3C dan bagasi). Ini memastikan bahwa didukung SDKs dalam layanan hilir lebih lanjut dapat melaporkan anomali yang memicu dorongan.
Tingkatkan waktu dan ruang lingkup
-
Penundaan pemicu — Anda dapat mengharapkan dorongan pengambilan sampel mulai serendah 10 detik setelah X-Ray mendeteksi anomali.
-
Periode Boost — Setelah X-Ray memicu dorongan, itu berlangsung hingga 1 menit sebelum kembali ke laju pengambilan sampel dasar.
-
Boost cool down — Setelah dorongan terjadi, X-Ray tidak akan memicu dorongan lain untuk aturan yang sama sampai jendela pendinginan berlalu.
Misalnya, ketika Anda mengatur
cooldown
ke 10 menit, setelah dorongan berakhir, tidak ada dorongan baru yang dapat dipicu hingga jendela 10 menit berikutnya.Kasus khusus: ketika Anda mengatur
cooldown
ke 1 menit, dan karena dorongan itu sendiri dapat bertahan hingga 1 menit, peningkatan secara efektif dapat dipicu terus menerus jika anomali tetap ada.
catatan
Gunakan platform SDKs dan didukung untuk layanan root Anda. Pengambilan sampel hanya berfungsi dengan didukung SDKs dan platform. Sementara dorongan pengambilan sampel memiliki probabilitas tinggi untuk menangkap jejak anomali, itu mungkin tidak menangkap setiap jejak anomali.
Meningkatkan visibilitas
Ketika aturan sampling dikonfigurasi dengan adaptive sampling boost, X-Ray secara otomatis memancarkan metrik vended yang memungkinkan Anda memantau aktivitas boost.
-
Nama metrik -
SamplingRate
-
Dimensi -
RuleName
(diatur ke nama aturan yang sebenarnya)
Setiap aturan dengan SamplingRateBoost
diaktifkan akan mempublikasikan laju pengambilan sampel efektifnya, termasuk tingkat dasar dan peningkatan sementara. Ini memungkinkan Anda untuk:
-
Lacak saat peningkatan dipicu
-
Pantau laju pengambilan sampel efektif untuk setiap aturan
-
Korelasikan peningkatan dengan anomali aplikasi (seperti lonjakan kesalahan atau peristiwa latensi)
Anda dapat melihat metrik ini di Amazon CloudWatch Metrics, di bawah namespace AWS/X-Ray. Nilai metrik adalah angka floating-point antara 0 dan 1, mewakili laju pengambilan sampel efektif.
Konfigurasikan dorongan pengambilan sampel menggunakan aturan pengambilan sampel X-Ray
Anda dapat mengaktifkan sampling adaptif secara langsung dalam aturan pengambilan sampel X-Ray yang ada dengan menambahkan bidang baru. SamplingRateBoost
Untuk informasi selengkapnya, lihat Menyesuaikan aturan pengambilan sampel. Ini menyediakan cara terpusat untuk mengaktifkan sampling adaptif tanpa memodifikasi kode aplikasi atau menerapkan penerapan aplikasi. Saat Anda mengaktifkan sampling adaptif, X-Ray secara otomatis meningkatkan pengambilan sampel selama anomali seperti lonjakan kesalahan atau latensi outlier, sambil menjaga laju pengambilan sampel dalam maksimum yang Anda konfigurasi. SamplingRateBoost
dapat diterapkan pada aturan pengambilan sampel khusus apa pun kecuali aturan Default
pengambilan sampel.
SamplingRateBoost
Bidang mendefinisikan batas atas dan perilaku untuk pengambilan sampel berbasis anomali.
"SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 }
MaxRate
Mendefinisikan laju pengambilan sampel maksimum X-Ray akan berlaku ketika mendeteksi anomali. Rentang nilai adalah 0.0
untuk1.0
. Misalnya, "MaxRate": 0.25
memungkinkan pengambilan sampel meningkat hingga 25% permintaan selama jendela anomali. X-Ray menentukan tingkat yang tepat antara baseline Anda dan maksimum, tergantung pada aktivitas anomali.
Jendela waktu CooldownWindowMinutes
mendefinisikan (dalam menit) di mana hanya satu peningkatan laju pengambilan sampel yang dapat dipicu. Setelah dorongan terjadi, tidak ada peningkatan lebih lanjut yang diizinkan sampai jendela berikutnya. Jenis nilai adalah integer (menit).
Contoh aturan dengan sampling adaptif
{ "RuleName": "MyAdaptiveRule", "Priority": 1, "ReservoirSize": 1, "FixedRate": 0.05, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "SamplingRateBoost": { "MaxRate": 0.25, "CooldownWindowMinutes": 10 } }
Dalam contoh ini, baseline sampling adalah 5% (). FixedRate: 0.05
Selama anomali, X-Ray dapat meningkatkan pengambilan sampel hingga 25% (). MaxRate: 0.25
Tingkatkan hanya sekali setiap 10 menit.
Konfigurasi kondisi anomali
Ketika tidak ada konfigurasi kondisi anomali yang disediakan, ADOT SDK menggunakan kode kesalahan HTTP 5xx sebagai kondisi anomali default untuk memicu peningkatan pengambilan sampel.
Anda juga dapat menyempurnakan kondisi anomali secara lokal di SDK ADOT yang didukung menggunakan variabel lingkungan. Untuk informasi selengkapnya, lihat Konfigurasi SDK lokal.
Penangkapan rentang anomali
Penangkapan rentang anomali memastikan bahwa bentang kritis yang mewakili anomali selalu direkam, bahkan jika jejak penuh tidak diambil sampelnya. Fitur ini melengkapi dorongan pengambilan sampel dengan berfokus pada menangkap anomali itu sendiri, daripada meningkatkan pengambilan sampel untuk jejak masa depan.
Ketika SDK ADOT mendeteksi anomali, ia segera memancarkan rentang itu, terlepas dari keputusan pengambilan sampel. Karena SDK hanya memancarkan rentang yang terkait dengan anomali, jejak ini adalah jejak sebagian, bukan transaksi penuh. end-to-end
Setelah ADOT SDK mendeteksi rentang anomali, ia mencoba memancarkan bentang sebanyak mungkin dari jejak yang sama. Semua rentang yang dipancarkan di bawah fitur ini ditandai dengan atribut,. aws.trace.flag.sampled = 0
Ini memungkinkan Anda untuk dengan mudah membedakan jejak sebagian (penangkapan anomali) dari jejak lengkap (pengambilan sampel normal) dalam pencarian dan analisis transaksi.
Kami merekomendasikan orientasi Penelusuran Transaksi untuk melihat dan menanyakan jejak sebagian. Contoh berikut menunjukkan halaman Layanan di konsol Sinyal Aplikasi. ServiceC dikonfigurasi dengan penangkapan rentang anomali, dan ini adalah bagian dari rantai panggilan di mana peningkatan pengambilan sampel berlaku. Konfigurasi ini menghasilkan jejak lengkap dan sebagian. Anda dapat menggunakan aws.trace.flag.sampled
atribut untuk membedakan antara jenis jejak.

Penangkapan rentang anomali hanya dapat diaktifkan atau disesuaikan melalui. Konfigurasi SDK lokal
Konfigurasi SDK lokal
Anda dapat mengonfigurasi fitur sampling adaptif di ADOT SDK dengan menyediakan konfigurasi YAMAL melalui variabel lingkungan. Konfigurasi lokal memberikan kontrol halus atas kondisi anomali, ambang batas.
Ini diperlukan untuk pengambilan rentang anomali dan opsional untuk menyesuaikan kondisi peningkatan pengambilan sampel. Berikut ini adalah contoh konfigurasi:
version: 1.0 anomalyConditions: - errorCodeRegex: "^5\\d\\d$" usage: both - operations: - "/api" errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300 usage: sampling-boost - highLatencyMs: 1000 usage: anomaly-span-capture anomalyCaptureLimit: anomalyTracesPerSecond: 1
Definisi bidang di bawah ini:
-
version
— Versi skema untuk file konfigurasi -
anomalyConditions
— Mendefinisikan kondisi di mana anomali terdeteksi dan bagaimana mereka digunakan-
errorCodeRegex
— Ekspresi reguler yang mendefinisikan kode status HTTP mana yang dianggap anomali -
operations
— Daftar operasi atau titik akhir yang kondisinya berlaku -
highLatencyMs
— Ambang batas latensi (dalam milidetik) di atasnya bentang diperlakukan sebagai anomali -
usage
— Mendefinisikan fitur mana yang berlaku untuk kondisi:-
both
— Berlaku untuk peningkatan pengambilan sampel dan penangkapan rentang anomali (Default jika penggunaan tidak ditentukan) -
sampling-boost
- Digunakan hanya untuk memicu peningkatan pengambilan sampel -
anomaly-span-capture
— Digunakan hanya untuk penangkapan rentang anomali
-
-
-
anomalyCaptureLimit
— Mendefinisikan batas berapa banyak jejak dengan rentang anomali yang dipancarkan.anomalyTracesPerSecond
— Jumlah maksimum jejak dengan rentang anomali yang ditangkap per detik, untuk mencegah volume rentang yang berlebihan (Nilai default adalah 1 jika tidak anomalyCaptureLimit ada).
catatan
-
AnomalyConditions
mengganti kondisi anomali default untuk peningkatan pengambilan sampel (HTTP 5xx). Jika Anda ingin mempertahankan kondisi default saat menggunakan konfigurasi lokal, Anda harus secara eksplisit memasukkannya ke dalam item apa pun.AnomalyConditions
-
Untuk setiap
anomalyConditions
item:-
Ketika
operations
bidang dihilangkan, kondisi berlaku untuk semua operasi (tingkat layanan) -
Ketika
operations
bidang ada tetapi disetel ke daftar kosong, kondisi berlaku untuk tidak ada operasi, membuat item itu tanpa operasi Ketika keduanya
errorCodeRegex
danhighLatencyMs
dihilangkan, kondisi tersebut tidak memiliki kriteria anomali untuk dievaluasi, membuat item itu tidak ada operasi
-
-
Hubungan logis:
-
Antara item di
anomalyConditions
, hubungannya adalah OR. -
Dalam satu item, beberapa bidang (misalnya,
errorCodeRegex
danhighLatencyMs
) digabungkan dengan AND.Misalnya:
errorCodeRegex: "^429|5\\d\\d$" highLatencyMs: 300
Kondisi ini berarti, kode status cocok dengan 429 atau 5xx DAN latensi ≥ 300 ms.
-
Terapkan Konfigurasi Lokal ke ADOT SDK
Anda dapat menerapkan konfigurasi lokal ke SDK ADOT dengan menyetel variabel lingkungan. AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG
Nilai harus berupa dokumen YAMAL yang valid (inline atau nested).
Misalnya, Amazon EC2 dan Amazon ECS, atur variabel lingkungan secara langsung:
AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG="{version: 1.0, anomalyConditions: [{errorCodeRegex: \"^500$\", usage: \"sampling-boost\"}, {errorCodeRegex: \"^501$\", usage: \"anomaly-trace-capture\"}], anomalyCaptureLimit: {anomalyTracesPerSecond: 10}}"
Untuk Amazon EKS, tentukan variabel lingkungan di dalam spesifikasi pod sebagai YAMAL bersarang:
apiVersion: v1 kind: Pod metadata: name: adot-sample spec: containers: - name: adot-app image: my-app:latest env: - name: AWS_XRAY_ADAPTIVE_SAMPLING_CONFIG value: | version: 1.0 anomalyConditions: - errorCodeRegex: "^500$" usage: sampling-boost - errorCodeRegex: "^501$" usage: anomaly-trace-capture anomalyCaptureLimit: anomalyTracesPerSecond: 10