Container Service for Kubernetes (ACK) menyediakan fitur pelacakan yang memungkinkan Anda mengirim jejak dari komponen NGINX Ingress Controller di kluster ACK ke Managed Service for OpenTelemetry. Managed Service for OpenTelemetry.
Prasyarat
-
Anda telah mengaktifkan Managed Service for OpenTelemetry dan memberikan izin yang diperlukan.
-
Controller NGINX Ingress telah dipasang. Untuk informasi selengkapnya, lihat Mengelola controller NGINX Ingress.
Kompatibilitas versi
Dukungan pelacakan bervariasi di berbagai versi komponen NGINX Ingress controller, sehingga Anda perlu memilih metode konfigurasi yang sesuai dengan versi Anda.
|
Versi NGINX Ingress controller |
OpenTelemetry |
OpenTracing |
|
≥ v1.10.2-aliyun.1 |
Didukung |
Tidak didukung |
|
v1.9.3-aliyun.1 |
Didukung |
Didukung |
|
v1.8.2-aliyun.1 |
Didukung |
Didukung |
|
< v1.8.2-aliyun.1 |
Tidak didukung |
Didukung |
Prosedur
OpenTelemetry
Langkah 1: Dapatkan informasi titik akhir
-
Masuk ke atau konsol ARMS. Di panel navigasi sebelah kiri, klik Integration Center.
-
Di area Server-side Applications, klik kartu OpenTelemetry.
-
Pada panel OpenTelemetry yang muncul, pilih wilayah tempat Anda ingin melaporkan data.
-
Catat informasi titik akhir. Di bagian Parameters, atur Connection Method ke Alibaba Cloud Intranet dan Report Method ke gRPC. Lalu, dari bagian Endpoint Information, salin alamat titik akhir gRPC (misalnya,
http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090) dan token otentikasi.CatatanGunakan titik akhir jaringan VPC jika NGINX Ingress Controller Anda diterapkan di wilayah Alibaba Cloud yang sama dengan Managed Service for OpenTelemetry. Jika tidak, gunakan titik akhir publik.
Langkah 2: Aktifkan OpenTelemetry pada NGINX Ingress ControllerManaged Service for OpenTelemetry
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Pada halaman Deployments, atur Namespace ke kube-system. Temukan deployment
nginx-ingress-controllerdan klik Edit di kolom Actions. -
Pada halaman Edit, pilih kontainer nginx-ingress-controller. Pada tab Environment Variable, klik Add untuk menambahkan variabel lingkungan berikut.
Jenis
Nama variabel
Nilai
Deskripsi
Custom
OTEL_EXPORTER_OTLP_HEADERS
authentication=<authentication token>Gunakan token otentikasi yang Anda peroleh di Langkah 1: Dapatkan informasi titik akhir. Contoh:
authentication=bfXXXXXXXe@7bXXXXXXX1_bXXXXXe@XXXXXXX1.Setelah penambahan selesai, klik Update di sisi kanan halaman Edit, lalu klik OK pada kotak dialog yang muncul.
-
Di panel navigasi kiri, pilih Configuration > ConfigMaps.
-
Pada halaman ConfigMaps, atur Namespace ke kube-system. Temukan ConfigMap
nginx-configurationdan klik Edit di kolom Actions. -
Pada panel Edit, klik Add untuk menambahkan pasangan kunci-nilai berikut, lalu klik OK.
Parameter
Deskripsi
Nilai
Contoh
enable-opentelemetry
Menentukan apakah pelacakan OpenTelemetry diaktifkan.
-
true: Mengaktifkan pelacakan.
-
false: Menonaktifkan pelacakan.
truemain-snippet
-
env OTEL_EXPORTER_OTLP_HEADERS;env OTEL_EXPORTER_OTLP_HEADERS;otel-service-name
Nama layanan.
Nama kustom.
nginx-ingress
otlp-collector-host
Nama domain titik akhir pelaporan gRPC.
Gunakan titik akhir jaringan VPC yang Anda peroleh di Langkah 1: Dapatkan informasi titik akhir. Hapus awalan
http://dan nomor port. Contoh:tracing-analysis-XX-XX-XXXXX.aliyuncs.com.tracing-analysis-XX-XX-XXXXX.aliyuncs.comotlp-collector-port
Port titik akhir pelaporan gRPC.
Nomor port aktual.
8090opentelemetry-trust-incoming-span
Menentukan apakah jejak masuk dari layanan atau sistem lain dipercaya.
-
true: Mempercayai jejak masuk.
-
false: Tidak mempercayai jejak masuk.
trueopentelemetry-operation-name
Format rentang jejak.
HTTP $request_method $service_name $uriHTTP $request_method $service_name $uriotel-sampler
Aturan pengambilan sampel.
Untuk informasi selengkapnya, lihat dokumentasi NGINX Ingress Controller.
TraceIdRatioBased
otel-sampler-ratio
Laju sampel.
Nilai dari 0,0 hingga 1,0, dengan maksimal dua tempat desimal. Nilai 0,0 menonaktifkan pengambilan sampel, sedangkan 1,0 melakukan sampling terhadap setiap jejak.
Untuk informasi selengkapnya, lihat dokumentasi NGINX Ingress Controller.
0,1
otel-sampler-parent-based
Menentukan apakah keputusan pengambilan sampel dari layanan hulu diwariskan.
-
false: (Default) Tidak mewarisi keputusan pengambilan sampel hulu. Parameter
otel-samplerdanotel-sampler-ratioberlaku. -
true: Mewarisi dan menggunakan kembali keputusan pengambilan sampel hulu. Parameter
otel-samplerdanotel-sampler-ratiotidak berlaku.
Untuk informasi selengkapnya, lihat dokumentasi NGINX Ingress Controller.
false
-
Langkah 3: Lihat jejak di Konsol ARMS
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih .
-
Pada halaman Application List, pilih wilayah dari daftar drop-down di bagian atas. Lalu, klik nama aplikasi nginx-ingress.
-
Jelajahi informasi jejak pada halaman detail aplikasi.
-
Di tab Application Overview, lihat metrik seperti jumlah permintaan dan kesalahan.

-
Di tab Trace Explorer, Anda dapat melihat grafik jumlah panggilan, kesalahan, dan durasi di bagian atas halaman. Di bawah grafik, daftar jejak ditampilkan dengan kolom seperti TraceId, nama rentang, nama aplikasi, Durasi, dan Status (misalnya,
200atau404). -
Dari daftar jejak di tab Trace Explorer, klik TraceId untuk membuka halaman detailnya. Halaman ini menampilkan tampilan garis waktu dan informasi detail untuk setiap rentang, termasuk nama aplikasi (misalnya, nginx-ingress), nama operasi (misalnya, HTTP GET my-nginx-svc /), waktu mulai dan akhir, serta durasi. Tab Attributes menampilkan atribut HTTP seperti
http.method,http.status_code,http.host, danhttp.user_agent, serta informasi jaringan sepertinet.host.port.
-
OpenTracing
Langkah 1: Dapatkan informasi titik akhir
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, klik Integration Center.
-
Di area Server-side Applications, klik kartu Zipkin.
CatatanContoh ini menggunakan Zipkin.
-
Pada panel Zipkin yang muncul, pilih wilayah tempat Anda ingin melaporkan data.
-
Catat informasi titik akhir. Untuk Connection Method, pilih Alibaba Cloud Intranet. Halaman menampilkan dua URL titik akhir jaringan VPC: v2 endpoint dan v1 endpoint. Salin URL v1 endpoint untuk digunakan nanti.
CatatanGunakan titik akhir jaringan VPC jika NGINX Ingress Controller Anda diterapkan di wilayah Alibaba Cloud yang sama dengan Managed Service for OpenTelemetry. Jika tidak, gunakan titik akhir publik.
Langkah 2: Aktifkan OpenTracing pada NGINX Ingress ControllerManaged Service for OpenTelemetry
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Pada halaman ConfigMaps, atur Namespace ke kube-system. Temukan ConfigMap
nginx-configurationdan klik Actions di kolom Edit. -
Pada panel Edit, klik Add untuk menambahkan pasangan kunci-nilai berikut, lalu klik OK.
Parameter
Deskripsi
Nilai
Contoh
enable-opentracing
Menentukan apakah pelacakan diaktifkan.
-
true: Mengaktifkan pelacakan.
-
false: Menonaktifkan pelacakan.
true
zipkin-service-name
Nama layanan.
Nama kustom.
nginx-ingress
zipkin-collector-host
Nama domain titik akhir pelaporan.
Ubah URL titik akhir yang Anda peroleh di Langkah 1: Dapatkan informasi titik akhir. Hapus awalan
http://dan tambahkan tanda tanya (?) di akhir. Contohnya:-
Titik akhir asli:
http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans. -
Nilai yang dimodifikasi:
tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans?.
tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans?opentracing-trust-incoming-span
Menentukan apakah jejak masuk dari layanan atau sistem lain dipercaya.
-
true: Mempercayai jejak masuk.
-
false: Tidak mempercayai jejak masuk.
true
zipkin-sample-rate
Laju sampel.
Nilai dari 0 hingga 1, dengan maksimal dua tempat desimal. Nilai 0 berarti tidak ada sampling, dan 1 berarti semua data disampling.
0,1
-
Langkah 3: Lihat jejak di Konsol ARMS
-
Masuk ke Konsol ARMS. Di panel navigasi kiri, klik .
-
Pada halaman Application List, pilih wilayah dari daftar drop-down di bagian atas. Lalu, klik nama aplikasi nginx.
-
Di panel navigasi kiri halaman detail aplikasi, klik Interface Invocation.
-
Tab Overview menampilkan topologi layanan dan hubungan pemanggilan untuk aplikasi saat ini. Tab lain yang tersedia termasuk Upstream, Downstream, dan Traces.
-
Tab Traces mencantumkan hingga 100 jejak aplikasi dengan durasi terpanjang. Untuk informasi lebih lanjut tentang data jejak, lihat Interface Invocation. Tabel mencakup kolom seperti Time, span name, Host/IP, Duration, Status, TraceId, dan Actions. Anda dapat memfilter hasil berdasarkan Duration greater than dan Exception.
-
Di tab Traces, klik TraceId untuk melihat detail jejak. Halaman Trace Details menampilkan TraceId, waktu mulai, dan durasi total. Halaman ini juga menampilkan grafik air terjun yang menggambarkan hierarki dan durasi relatif setiap rentang. Misalnya, permintaan ke
/api/currencymungkin melewati layanan sepertinginx-otlp,frontendproxy,frontend, dancurrencyservice, dengan durasi total sekitar 15 ms. Setiap rentang direpresentasikan oleh bilah horizontal yang menunjukkan durasinya relatif terhadap seluruh jejak.
-
(Opsional) Ganti propagator OpenTelemetry
Secara default, saat menggunakan metode OpenTelemetry, NGINX Ingress Controller menyebarkan konteks jejak dalam format W3C Trace Context. Jika aplikasi antarmuka depan dan backend Anda menggunakan format konteks lain, seperti B3 (digunakan oleh Zipkin) atau Jaeger, Anda harus mengubah propagator agar jejak terhubung dengan benar di semua layanan. Bagian ini menjelaskan cara mengubah propagator untuk NGINX Ingress Controller.
-
Tambahkan variabel lingkungan
OTEL_PROPAGATORSmenggunakan metode yang sama seperti yang dijelaskan di Langkah 2.4 prosedur OpenTelemetry. Lalu, simpan konfigurasi dan terapkan ulangnginx-ingress-controller.Variabel lingkungan
Nilai
Deskripsi
OTEL_PROPAGATORS
tracecontext,baggage,b3,jaeger
Daftar propagator yang dipisahkan koma untuk digunakan. Untuk informasi selengkapnya, lihat Tentukan format header propagasi untuk OpenTelemetry.
-
Selanjutnya, ubah konfigurasi
main-snippetseperti yang dijelaskan di Langkah 2.7 prosedur OpenTelemetry untuk menerapkan variabel lingkunganOTEL_PROPAGATORS.Parameter
Nilai
Deskripsi
main-snippet
env OTEL_EXPORTER_OTLP_HEADERS; env OTEL_PROPAGATORS;
Memuat variabel lingkungan.
Referensi
-
Untuk informasi selengkapnya tentang Managed Service for OpenTelemetry, lihat Apa itu Managed Service for OpenTelemetry?.
-
Untuk informasi selengkapnya tentang ACK, lihat Apa itu Container Service for Kubernetes (ACK)?.
-
Kunci yang diperlukan dalam ConfigMap
nginx-configurationbervariasi tergantung pada tool pelacakan yang digunakan (misalnya, Zipkin, Jaeger, atau SkyWalking). Untuk informasi selengkapnya tentang cara menghubungkan ke Managed Service for OpenTelemetry, lihat Persiapan.