Pelacakan terdistribusi untuk Load Balancer Aplikasi memberikan visibilitas menyeluruh ke permintaan saat permintaan tersebut berpindah dari klien Anda, melalui load balancer, dan ke layanan backend Anda.
Cloud Load Balancing terintegrasi dengan Cloud Trace untuk membuat span trace untuk permintaan yang diproses load balancer. Karena load balancer adalah titik entri untuk traffic aplikasi Anda, memulai dan menyebarkan konteks trace di load balancer akan memastikan visibilitas diagnostik di seluruh jalur permintaan. Anda dapat menggunakan trace ini untuk mengidentifikasi bottleneck latensi, mengisolasi hop yang gagal, dan memecahkan masalah error di seluruh arsitektur multi-tingkat.
Load balancer menghasilkan trace yang sesuai dengan standar terbuka (Konteks Trace W3C dan OpenTelemetry). Layanan backend yang diinstrumentasikan dengan OpenTelemetry dapat melanjutkan trace yang dimulai oleh load balancer.
Manfaat utama
Pelacakan terdistribusi dengan Cloud Trace memberikan manfaat berikut:
- Visibilitas permintaan menyeluruh: melacak jalur permintaan di seluruh Load Balancer Aplikasi eksternal dan internal serta layanan backend yang menjadi tujuan perutean traffic.
- Kemampuan observasi edge: menangkap span trace di aturan penerusan, sebelum load balancer memilih backend, sehingga Anda dapat melihat error edge dan latensi yang tidak dapat dideteksi oleh instrumentasi backend.
- Konfigurasi telemetri yang dipisahkan: tentukan setelan pelacakan di resource
TelemetryPolicymandiri tanpa mengubah konfigurasi pemilihan rute load balancer Anda. - Korelasi lintas telemetri: menghubungkan span trace dengan log permintaan Cloud Load Balancing dan metrik Cloud Monitoring untuk menentukan asal latensi atau error.
Load balancer yang didukung
Tabel berikut mencantumkan load balancer yang mendukung pelacakan terdistribusi dan mode sampling yang didukung setiap load balancer:
| Load balancer | Skema load balancing | Pengambilan sampel probabilistik | Sampling berbasis induk |
|---|---|---|---|
| Load Balancer Aplikasi eksternal global | EXTERNAL_MANAGED |
||
| Load Balancer Aplikasi eksternal regional | EXTERNAL_MANAGED |
||
| Load Balancer Aplikasi internal regional | INTERNAL_MANAGED |
||
| Load Balancer Aplikasi internal lintas region | INTERNAL_MANAGED |
Load Balancer Aplikasi klasik tidak mendukung pelacakan terdistribusi.
Cara kerja pelacakan terdistribusi
Untuk mengonfigurasi pelacakan terdistribusi, buat resource TelemetryPolicy di Network Services API. Kebijakan telemetri menentukan hal berikut:
- Targets: aturan penerusan load balancer yang ingin Anda lacak.
- Konfigurasi pelacakan: setelan pengambilan sampel yang menentukan permintaan mana yang dilacak oleh load balancer.
Saat permintaan tiba di aturan penerusan yang ditargetkan oleh kebijakan telemetri,
load balancer akan memutuskan apakah akan mengambil sampel permintaan tersebut. Jika permintaan
diambil sampelnya, load balancer akan membuat span trace, mengirimkan span ke
Cloud Trace, dan menyebarkan konteks trace ke backend di
header permintaan traceparent W3C.
Lampiran aturan penerusan
Kebijakan telemetri menargetkan aturan penerusan load balancer, yang mewakili frontend load balancer. Dengan melampirkan pelacakan di aturan penerusan, load balancer dapat melacak semua traffic yang memasuki alamat IP virtual (VIP) dan port, termasuk permintaan yang gagal sebelum load balancer memilih backend.
Kebijakan telemetri memiliki karakteristik berikut:
- Siklus proses independen: kebijakan telemetri terpisah dari layanan backend, peta URL, dan proxy target. Anda dapat membuat, mengubah, atau menghapus kebijakan telemetri tanpa mengubah cara load balancer merutekan traffic.
- Dapat digunakan kembali di seluruh frontend: satu kebijakan telemetri dapat menargetkan beberapa aturan penerusan, sehingga Anda dapat menerapkan setelan pelacakan yang konsisten di beberapa frontend load balancer.
- Cakupan lokasi: buat kebijakan telemetri di lokasi
globaluntuk menargetkan aturan penerusan global, seperti yang digunakan oleh Load Balancer Aplikasi eksternal global dan Load Balancer Aplikasi internal lintas region. Buat kebijakan telemetri di suatu region untuk menargetkan aturan penerusan regional di region tersebut, seperti yang digunakan oleh Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional.
Mode sampling
Pelacakan terdistribusi mendukung mode pengambilan sampel berikut. Untuk mengetahui informasi selengkapnya tentang mode pengambilan sampel yang didukung setiap load balancer, dalam dokumen ini, lihat Load balancer yang didukung.
- Sampling probabilistik: load balancer mengambil sampel proporsi permintaan tetap, yang Anda tetapkan di kolom
samplingRate. Misalnya, nilai0.01mengambil sampel 1% permintaan. Sampling probabilistik didukung di semua load balancer yang didukung. Parent-based sampling: load balancer mematuhi keputusan pengambilan sampel di header
traceparentyang masuk dari klien atau layanan upstream. Anda mengonfigurasi sampling berbasis induk di kolomparentBasedSampling. Sampling berbasis induk hanya didukung di Load Balancer Aplikasi internal.Saat Anda mengaktifkan pengambilan sampel berbasis induk, load balancer akan menangani permintaan sebagai berikut:
- Jika header
traceparentyang masuk memiliki flag sampel yang ditetapkan, load balancer akan mengambil sampel permintaan pada rasio yang ditentukan di kolomparentBasedSampling.samplingRate. Misalnya, tetapkan kolom ini ke1.0untuk melacak semua permintaan yang telah diambil sampelnya oleh layanan upstream. - Jika header
traceparentyang masuk tidak memiliki flag sampel yang ditetapkan, load balancer tidak akan mengambil sampel permintaan. Perilaku ini mengikuti keputusan upstream dan spesifikasi OpenTelemetry, yang mencegah trace yang terputus muncul di Cloud Trace. - Jika permintaan tidak menyertakan header
traceparent, load balancer akan menerapkansamplingRatedasar pengukuran.
- Jika header
Penanganan header konteks trace
Load balancer menangani header traceparent W3C sebagai berikut:
- Tracing tidak diaktifkan, atau permintaan tidak diambil sampelnya: load balancer meneruskan header
traceparentyang masuk ke backend tanpa perubahan. - Permintaan diambil sampelnya dan tidak menyertakan header
traceparent: load balancer menghasilkan ID trace dan ID span baru, serta menetapkan flag trace ke03(acak dan diambil sampelnya). - Permintaan diambil sampelnya dan menyertakan header
traceparent: load balancer mempertahankan ID trace dan flag acak yang masuk, menghasilkan ID span baru, dan menetapkan flag yang diambil sampelnya.
Layanan backend yang menggunakan SDK OpenTelemetry dengan propagator W3C Trace Context
akan otomatis membaca header traceparent dan melanjutkan trace.
Untuk mengetahui informasi selengkapnya, lihat
Konteks trace.
Kasus penggunaan umum
Bagian ini menjelaskan skenario umum untuk pelacakan terdistribusi.
Memantau edge etalase
Etalase e-commerce menggunakan Load Balancer Aplikasi eksternal global untuk menerima traffic pelanggan. Untuk memantau latensi edge dan error seperti respons 404 dan kegagalan TLS, Anda melampirkan kebijakan telemetri dengan pengambilan sampel probabilistik ke aturan penerusan etalase. Frekuensi sampling yang rendah, seperti 0.01 (1%), membuat biaya penyerapan Cloud Trace dapat diprediksi selama peristiwa traffic puncak.
Mempertahankan kontinuitas trace di seluruh layanan checkout
Permintaan checkout dikirim dari storefront melalui Load Balancer Aplikasi internal ke layanan internal untuk keranjang, inventaris, dan pembayaran. Untuk memastikan bahwa permintaan checkout yang diambil sampelnya di etalase dilacak di setiap hop internal, Anda mengaktifkan pengambilan sampel berbasis induk di load balancer internal dengan parentBasedSampling.samplingRate sebesar 1.0. Traffic internal rutin yang
tidak membawa keputusan pengambilan sampel upstream akan diambil sampelnya pada nilai dasar
samplingRate.
Mengisolasi bottleneck latensi
Saat latensi checkout meningkat atau error 5xx melonjak, Anda membandingkan span load balancer di Cloud Trace dengan log permintaan load balancer dan metrik latensi. Perbandingan ini membantu Anda menentukan apakah masalah berasal dari
edge load balancer, di hop load balancer internal, atau di layanan backend.
Harga
Load balancer tidak mengenakan biaya untuk pembuatan span trace. Namun, Cloud Trace mengenakan biaya untuk penyerapan span trace sesuai dengan harga Cloud Trace.
Untuk mengelola biaya penyerapan untuk workload produksi dengan traffic tinggi, sebaiknya gunakan
samplingRate sebesar 0.01 (1%) atau 0.001 (0,1%).
Batasan
Selama Pratinjau, pelacakan terdistribusi untuk Load Balancer Aplikasi memiliki batasan berikut:
- Sampling berbasis induk tidak didukung di Load Balancer Aplikasi eksternal.
- Atribut span kustom tidak didukung.
- Anda tidak dapat mengonfigurasi pelacakan terdistribusi menggunakan Gateway API Google Kubernetes Engine atau Terraform.
- Satu kebijakan telemetri dapat menargetkan hingga 50 resource.
Pelacakan terdistribusi untuk Agent Gateway
Jika Anda menggunakan Agent Gateway untuk mengelola traffic agen AI, lihat Memantau traffic melalui Agent Gateway untuk mengetahui informasi tentang cara memantau traffic agen.