ALB mendukung tracing. Setelah fitur ini diaktifkan, ALB secara otomatis menyisipkan header trace saat meneruskan permintaan, sehingga Anda dapat memperoleh data tracing lengkap—termasuk sumber permintaan, node yang dilalui, dan waktu respons—untuk mengidentifikasi serta mengatasi bottleneck kinerja dalam arsitektur terdistribusi dengan cepat.
Informasi latar belakang
Analisis tracing menyediakan bagi pengembang aplikasi terdistribusi berbagai alat, seperti rekonstruksi rantai panggilan lengkap, statistik volume permintaan, visualisasi topologi, dan analisis ketergantungan aplikasi, guna membantu mendiagnosis dan menganalisis bottleneck kinerja dalam arsitektur aplikasi terdistribusi secara efisien.
Satu catatan trace berkorespondensi dengan rantai panggilan (Trace). Secara umum, rantai panggilan merepresentasikan jalur eksekusi suatu transaksi atau alur kerja melalui sistem terdistribusi. Rantai ini merupakan graf asiklik terarah (DAG) yang terdiri dari beberapa rentang (span), di mana setiap rentang merepresentasikan segmen eksekusi berkelanjutan yang bernama dan diukur durasinya dalam rantai panggilan tersebut.
Setelah tracing ALB diaktifkan, ALB secara otomatis menyisipkan atau memperbarui header trace HTTP saat meneruskan permintaan dan melaporkan data trace ke Alibaba Cloud Managed Service for OpenTelemetry. Tracing ALB mendukung metode tracing OpenTelemetry dan Zipkin.
Metode tracing
OpenTelemetry
Ketika tracing ALB diaktifkan dan tipe OpenTelemetry dipilih, ALB menambahkan atau memperbarui bidang traceparent dalam Header HTTP sebelum meneruskan permintaan ke server backend. Format bidang traceparent adalah {version}-{traceid}-{parentid}-{traceflags}. Tabel berikut menjelaskan setiap bagian.
Field | Description | Format |
| Versi OpenTelemetry yang digunakan. | Selalu |
| ID yang mengidentifikasi trace ini. | Bilangan heksadesimal 32 digit. |
| ID yang mengidentifikasi node saat ini pada rantai trace. | Bilangan heksadesimal 16 digit. |
| Menunjukkan apakah permintaan ini disampel. |
|
Skenario 1: Permintaan tidak membawa traceparent
Ketika header permintaan yang dikirim oleh klien tidak mencantumkan bidang traceparent, ALB menghasilkan bidang traceparent lengkap dan menyisipkannya ke dalam Header HTTP.
Skenario 2: Permintaan sudah membawa traceparent
Jika layanan hulu (upstream) sudah membawa bidang traceparent dalam header permintaan, ALB mewarisi nilai version, traceid, dan traceflags, serta hanya menghasilkan parentid baru.
Tabel berikut membandingkan nilai-nilai bidang:
Part | Upstream request value | ALB forwarded value | Processing |
|
|
| Inherited |
|
|
| Inherited |
|
|
| Newly generated |
|
|
| Inherited |
Zipkin
Ketika tracing ALB diaktifkan dan tipe Zipkin dipilih, ALB menambahkan atau memperbarui bidang X-B3-* dalam Header HTTP sebelum meneruskan permintaan ke server backend. Tabel berikut menjelaskan setiap bidang.
Field | Description | Format |
| ID yang mengidentifikasi trace ini. | Bilangan heksadesimal 16 digit. |
| ID yang mengidentifikasi node saat ini pada rantai trace. | Bilangan heksadesimal 16 digit. |
| ID yang mengidentifikasi node sebelumnya pada rantai trace. | Bilangan heksadesimal 16 digit. |
| Menunjukkan apakah permintaan ini disampel. |
|
Skenario 1: Permintaan tidak membawa header trace
Jika header permintaan yang dikirim oleh klien tidak membawa bidang X-B3-*, ALB bertindak sebagai node asal (origin) dari rantai trace dan menghasilkan bidang X-B3-TraceId, X-B3-SpanId, dan X-B3-Sampled, lalu menyisipkannya ke dalam Header HTTP. Karena tidak ada node hulu pada rantai tersebut, permintaan yang diteruskan tidak berisi bidang X-B3-ParentSpanId.
Skenario 2: Permintaan sudah membawa header trace
Jika layanan hulu (upstream) sudah membawa bidang lengkap X-B3-* dalam header permintaan, ALB mewarisi nilai X-B3-TraceId dan X-B3-Sampled, menghasilkan X-B3-SpanId baru, dan meneruskan X-B3-SpanId dari permintaan hulu ke server backend sebagai X-B3-ParentSpanId.
Tabel berikut membandingkan nilai-nilai bidang:
Field | Upstream request value | ALB forwarded value | Processing |
|
|
| Inherited |
|
|
| Newly generated |
|
|
| Uses the upstream SpanId |
|
|
| Inherited |
Lingkup penerapan
Hanya instans ALB Edisi Standar dan Edisi Enhanced WAF yang mendukung tracing. Instans ALB Edisi Dasar tidak mendukung fitur ini.
Anda telah membuat instans ALB dan membuat grup server.
Anda telah mengonfigurasi pendengar (listener) untuk instans tersebut dan mengaitkannya dengan grup server.
Anda telah membuat instans ECS sebagai server backend, menerapkan layanan Nginx pada instans ECS tersebut, dan menambahkan instans ECS ke dalam grup server.
Langkah 1: Aktifkan tracing
Masuk ke Konsol ALB, pilih wilayah tempat instans Anda berada, temukan instans target, lalu klik ID instans tersebut.
Klik tab Listener, temukan listener target, lalu klik ID listener tersebut.
Pada bagian Tracing di tab Listener Details, aktifkan sakelar Tracing.
Pada kotak dialog Enable Tracing, lengkapi konfigurasi berikut lalu klik Save.
Activate Service
Activate Managed Service for OpenTelemetry: Jika ini pertama kalinya Anda menggunakan layanan ini, pilih perjanjian layanan untuk mengonfirmasi aktivasi.
Create Access Log (jika belum dibuat untuk instans ALB target)
Project: Unit manajemen resource di Simple Log Service yang digunakan untuk isolasi dan kontrol resource.
-
Select Project: Pilih proyek yang sudah ada dari daftar drop-down.
-
Create Project: Masukkan nama proyek di kolom tersebut.
-
Logstore: Unit di Simple Log Service untuk pengumpulan, penyimpanan, dan kueri data log.
-
Select Logstore: Pilih Logstore yang sudah ada dari daftar drop-down.
-
Create Logstore: Masukkan nama Logstore di kolom tersebut. Jika Anda memilih Create Project, Anda juga harus memilih Create Logstore.
-
Enable Tracing Analysis
Tracing Type: Anda dapat memilih OpenTelemetry(W3C) atau Zipkin(B3).
Sampling Rate: Nilai yang valid berkisar antara 1 hingga 100, dengan nilai default 100. Sesuaikan laju sampel untuk mengontrol volume data trace yang dilaporkan.
Notes on Creating Service-linked Role: Saat menjalankan operasi ini, sistem akan secara otomatis membuat peran terkait layanan.
Langkah 2: Lihat data trace
Masuk ke terminal klien dan uji konektivitas dengan server backend. Untuk informasi lebih lanjut, lihat Implementasi cepat load balancing IPv4 dengan ALB.
Masuk ke Konsol ALB, pilih wilayah tempat instans Anda berada, temukan instans target, lalu klik ID instans tersebut.
Klik tab Listener, temukan listener target, lalu klik ID listener tersebut.
Pada bagian Tracing di tab Listener Details, klik View di samping Trace Analysis dan buka konsol Managed Service for OpenTelemetry untuk melihat data jejak.
Bilah kueri di bagian atas halaman secara otomatis menyertakan filter
attributes.app_lb_iddanattributes.slb_vport. Panel filter cepat di sebelah kiri memungkinkan Anda memfilter berdasarkan status, rentang durasi, dan nama aplikasi.
Informasi tambahan
Nonaktifkan tracing
Tracing bergantung pada log akses. Menonaktifkan log akses menyebabkan tracing tidak tersedia, jadi lakukan dengan hati-hati. Setelah Anda menonaktifkan tracing, log akses tetap diaktifkan. Jika Anda tidak lagi membutuhkannya, nonaktifkan secara manual.
Ketika tracing dinonaktifkan untuk semua listener di bawah instans ALB, ALB berhenti mengirimkan data trace ke Managed Service for OpenTelemetry.
Penagihan
Saat Anda menggunakan tracing, Alibaba Cloud secara otomatis mengaktifkan Managed Service for OpenTelemetry dan layanan log akses. Setelah diaktifkan, Anda dikenai biaya untuk pelaporan data, penyimpanan trace, dan layanan log.
Wilayah yang didukung untuk tracing ALB
Wilayah cloud publik
Area | Region |
China | China (Hangzhou), China (Shanghai), China (Shenzhen), China (Chengdu), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Hong Kong), China (Guangzhou), dan China (Heyuan) |
Asia-Pasifik | Singapura, Malaysia (Kuala Lumpur), Jepang (Tokyo), Indonesia (Jakarta) |
Eropa dan Amerika | Inggris (London), Jerman (Frankfurt), AS (Virginia), dan AS (Silicon Valley) |