Container Service for Kubernetes (ACK) memungkinkan Anda mengaktifkan tracing untuk NGINX Ingress controller dan mengimpor data jejak ke Managed Service for OpenTelemetry. Managed Service for OpenTelemetry menyimpan data jejak dan menggabungkan serta menghitung data jejak secara real-time untuk menghasilkan data pemantauan, termasuk detail jejak dan topologi waktu nyata. Anda dapat menganalisis masalah berdasarkan data pemantauan tersebut.
Prasyarat
NGINX Ingress controller telah terpasang. Untuk informasi lebih lanjut, lihat Kelola NGINX Ingress controller.
Deskripsi versi
Dukungan untuk tracing bervariasi berdasarkan versi NGINX Ingress controller. Tabel berikut menjelaskan versi NGINX Ingress controller yang mendukung dan tidak mendukung tracing.
Versi NGINX Ingress controller | OpenTelemetry | OpenTracing |
≥ 1.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
Ikuti langkah-langkah berikut sesuai dengan versi NGINX Ingress controller yang terpasang di kluster Anda.
OpenTelemetry
Langkah 1: Dapatkan endpoint dari Managed Service for OpenTelemetry
Versi baru konsol Managed Service for OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry. Di panel navigasi sisi kiri, klik Integration Center.
Di bagian Open Source Frameworks, klik kartu OpenTelemetry.
Di panel OpenTelemetry, pilih wilayah dari mana Anda ingin mengimpor data jejak.
Catat endpoint yang digunakan untuk mengimpor data melalui gRPC.
CatatanNGINX Ingress controller diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan agen Managed Service for OpenTelemetry dalam contoh ini. Oleh karena itu, kami sarankan Anda menggunakan endpoint virtual private cloud (VPC). Jika NGINX Ingress controller dan agen Managed Service for OpenTelemetry diterapkan di wilayah yang berbeda, gunakan endpoint publik.
Versi sebelumnya konsol Managed Service for OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sisi kiri, klik Cluster Configurations. Di sisi kanan halaman yang muncul, klik tab Access point information.
Di bagian atas halaman, pilih wilayah dari mana Anda ingin mengimpor data jejak.
Pilih Show Token di bagian Cluster Information dan klik OpenTelemetry di bagian Client. Lalu, catat endpoint yang digunakan untuk mengimpor data melalui gRPC.
CatatanNGINX Ingress controller diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan agen Managed Service for OpenTelemetry dalam contoh ini. Oleh karena itu, kami sarankan Anda menggunakan endpoint VPC. Jika NGINX Ingress controller dan agen Managed Service for OpenTelemetry diterapkan di wilayah yang berbeda, gunakan endpoint publik.
Langkah 2: Aktifkan Managed Service for OpenTelemetry untuk NGINX Ingress controller
Masuk ke Konsol ACK. Di panel navigasi sisi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel sisi kiri, pilih .
Di bagian atas halaman, pilih kube-system dari daftar drop-down Namespace. Lalu, masukkan nginx-ingress-controller di kotak pencarian dan klik ikon pencarian. Temukan nginx-ingress-controller dan klik Edit di kolom Actions.
Di bagian atas halaman Edit, pilih kontainer nginx-ingress-controller. Pada tab Environments, klik Add untuk menambahkan variabel lingkungan berikut.
Tipe
Kunci Variabel
Nilai/ValueFrom
Deskripsi
Kustom
OTEL_EXPORTER_OTLP_HEADERS
authentication=<Token Otentikasi>Tentukan token otentikasi yang Anda peroleh di Langkah 1: Dapatkan endpoint dari Managed Service for OpenTelemetry. Contoh:
authentication=bfXXXXXXXe@7bXXXXXXX1_bXXXXXe@XXXXXXX1.
Setelah menambahkan variabel lingkungan, klik Update di sisi kanan halaman Edit. Di pesan yang muncul, klik Confirm.
Di panel navigasi sisi kiri, pilih .
Di bagian atas halaman ConfigMap, pilih kube-system dari daftar drop-down Namespace. Kemudian, masukkan nginx-configuration di kotak pencarian Nama dan klik ikon pencarian. Temukan nginx-configuration dan klik Edit di kolom Actions.
Di panel Edit, klik Add untuk menambahkan konfigurasi berikut dan klik OK.
Nama
Deskripsi
Nilai valid
Contoh
enable-opentelemetry
Menentukan apakah akan mengaktifkan Managed Service for OpenTelemetry.
true: mengaktifkan Managed Service for OpenTelemetry.false: tidak mengaktifkan Managed Service for OpenTelemetry.
truemain-snippet
-
env OTEL_EXPORTER_OTLP_HEADERS;env OTEL_EXPORTER_OTLP_HEADERS;otel-service-name
Masukkan nama layanan.
Konfigurasikan nilai kustom.
nginx-ingress
otlp-collector-host
Nama domain yang digunakan untuk mengimpor data melalui gRPC.
Hapus
http://dan nomor port dari endpoint VPC yang Anda peroleh di Langkah 1: Dapatkan endpoint dari Managed Service for OpenTelemetry. Contoh: tracing-analysis-XX-XX-XXXXX.aliyuncs.com.tracing-analysis-XX-XX-XXXXX.aliyuncs.comotlp-collector-port
Port yang digunakan untuk mengimpor data melalui gRPC.
Masukkan nilai berdasarkan kebutuhan bisnis Anda.
8090opentelemetry-trust-incoming-span
Menentukan apakah akan mempercayai jejak panggilan dari layanan atau sistem lain.
true: mempercayai jejak panggilan dari layanan atau sistem lain.
false: tidak mempercayai jejak panggilan dari layanan atau sistem lain.
trueopentelemetry-operation-name
Format rentang jejak panggilan.
HTTP $request_method $service_name $uriHTTP $request_method $service_name $uriotel-sampler
Aturan sampling.
Untuk informasi lebih lanjut, lihat opentelemetry.
TraceIdRatioBased
otel-sampler-ratio
Tingkat sampling.
Nilai valid: 0 hingga 1. Nilai bisa akurat hingga dua tempat desimal. Nilai 0 menunjukkan bahwa tidak ada data yang dikumpulkan. Nilai 1 menunjukkan bahwa semua data dikumpulkan. Untuk informasi lebih lanjut, lihat opentelemetry.
0.1
otel-sampler-parent-based
Menentukan apakah akan mewarisi flag sampled upstream.
false: tidak mewarisi flag sampled upstream. Ini adalah nilai default. Dalam kasus ini, otel-sampler dan otel-sampler-ratio berlaku.
true: mewarisi flag sampled upstream. Dalam kasus ini, otel-sampler dan otel-sampler-ratio tidak berlaku dan flag sampled upstream digunakan kembali.
Untuk informasi lebih lanjut, lihat opentelemetry.
false
Langkah 3: Lihat data jejak di konsol Managed Service for OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sisi kiri, klik Applications.
Di bagian atas halaman Applications, pilih wilayah dari mana Anda ingin mengimpor data jejak. Lalu, klik nginx-ingress.
Di halaman detail aplikasi, Anda dapat melihat data jejak.
Di tab Application Overview, Anda dapat melihat jumlah permintaan dan jumlah kesalahan.

Di tab Trace Analysis, Anda dapat melihat daftar jejak dan durasi rata-rata.

Di tab Trace Analysis, Anda dapat mengklik ID jejak untuk melihat detail jejak.

OpenTracing
Langkah 1: Dapatkan endpoint dari Managed Service for OpenTelemetry
Versi baru konsol Managed Service for OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry. Di panel navigasi sisi kiri, klik Integration Center.
Di bagian Open Source Frameworks, klik kartu Zipkin.
CatatanDapatkan endpoint klien yang digunakan untuk mengumpulkan data. Dalam contoh ini, klien Zipkin digunakan.
Di panel Zipkin, pilih wilayah dari mana Anda ingin mengimpor data jejak.
Catat endpoint.
CatatanNGINX Ingress controller diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan agen Managed Service for OpenTelemetry dalam contoh ini. Oleh karena itu, kami sarankan Anda menggunakan endpoint VPC. Jika NGINX Ingress controller dan agen Managed Service for OpenTelemetry diterapkan di wilayah yang berbeda, gunakan endpoint publik.
Versi sebelumnya konsol Managed Service for OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sisi kiri, klik Cluster Configurations. Di halaman yang muncul, klik tab Access point information.
Di bagian atas halaman, pilih wilayah dari mana Anda ingin mengimpor data jejak.
Pilih Show Token di bagian Cluster Information dan klik Zipkin di bagian Client. Lalu, catat endpoint.
CatatanNGINX Ingress controller diterapkan di Alibaba Cloud dan berada di wilayah yang sama dengan agen Managed Service for OpenTelemetry dalam contoh ini. Oleh karena itu, kami sarankan Anda menggunakan endpoint VPC. Jika NGINX Ingress controller dan agen Managed Service for OpenTelemetry diterapkan di wilayah yang berbeda, gunakan endpoint publik.
Langkah 2: Aktifkan Managed Service for OpenTelemetry untuk NGINX Ingress controller
Masuk ke Konsol ACK. Di panel navigasi sisi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel navigasi sisi kiri, pilih .
Di bagian atas halaman ConfigMap, pilih kube-system dari daftar drop-down Namespace. Lalu, masukkan nginx-configuration di kotak pencarian Name dan klik ikon pencarian. Temukan nginx-configuration dan klik Edit di kolom Actions.
Di panel Edit, klik Tambah untuk menambahkan konfigurasi berikut dan klik OK.
Nama
Deskripsi
Nilai valid
Contoh
enable-opentracing
Menentukan apakah akan mengaktifkan Analisis Jejak.
true: mengaktifkan Analisis Jejak.
false: tidak mengaktifkan Analisis Jejak.
true
zipkin-service-name
Nama layanan.
Konfigurasikan nilai kustom.
nginx-ingress
zipkin-collector-host
Nama domain yang digunakan untuk mengimpor data melalui gRPC.
Modifikasi informasi endpoint yang diperoleh di Langkah 1: Dapatkan endpoint dari Managed Service for OpenTelemetry. Hapus
http://dan tambahkan tanda tanya di akhir. Contoh:Informasi endpoint asli adalah
http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans.Nilai yang dimodifikasi adalah
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 akan mempercayai jejak panggilan dari layanan atau sistem lain.
true: mempercayai jejak panggilan dari layanan atau sistem lain.
false: tidak mempercayai jejak panggilan dari layanan atau sistem lain.
true
zipkin-sample-rate
Tingkat sampling.
Nilai valid: 0 hingga 1. Nilai bisa akurat hingga dua tempat desimal. Nilai 0 menunjukkan bahwa tidak ada data yang dikumpulkan. Nilai 1 menunjukkan bahwa semua data dikumpulkan.
0.1
Langkah 3: Lihat data jejak di Managed Service for OpenTelemetry konsol
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sisi kiri, klik Applications.
Di bagian atas halaman Applications, pilih wilayah dari mana Anda ingin mengimpor data jejak. Lalu, klik nginx.
Di panel navigasi sisi kiri halaman detail, klik Interface Calls. Di sisi kanan halaman, Anda dapat melihat data jejak.
Di tab Overview, Anda dapat melihat topologi jejak.

Klik tab Traces untuk melihat 100 jejak paling memakan waktu dari aplikasi. Untuk informasi lebih lanjut, lihat Pemanggilan antarmuka.

Di tab Traces, Anda dapat mengklik ID jejak untuk melihat detail jejak.

(Opsional) Ubah protokol yang digunakan oleh Managed Service for OpenTelemetry untuk mengirim data jejak
Jika Anda menggunakan Managed Service for OpenTelemetry untuk mengaktifkan tracing pada NGINX Ingress controller, Managed Service for OpenTelemetry mengirim data jejak dalam spesifikasi konteks jejak W3C ke layanan downstream. Jika aplikasi frontend dan backend menggunakan protokol lain, seperti Jaeger atau Zipkin, Anda harus mengubah protokol yang digunakan oleh Managed Service for OpenTelemetry untuk mengirim data jejak. Dengan cara ini, jejak aplikasi frontend, NGINX Ingress, dan aplikasi backend dapat disinkronkan. Contoh berikut menjelaskan cara mengubah protokol yang digunakan oleh Managed Service for OpenTelemetry untuk mengirim data jejak:
Tambahkan variabel lingkungan OTEL_PROPAGATORS di langkah keempat sub-langkah kedua. Lalu, simpan perubahan dan redeploy nginx-ingress-controller.
Kunci variabel
Nilai
Deskripsi
OTEL_PROPAGATORS
tracecontext,baggage,b3,jaeger
Protokol yang digunakan untuk mengirim data jejak. Untuk informasi lebih lanjut, lihat Tentukan format untuk mengirim data jejak.
Ubah konfigurasi main-snippet di langkah ketujuh sub-langkah kedua agar variabel lingkungan OTEL_PROPAGATORS berlaku.
Nama
Nilai
Deskripsi
main-snippet
env OTEL_EXPORTER_OTLP_HEADERS; env OTEL_PROPAGATORS;
Muat variabel lingkungan OTEL_PROPAGATORS.
Referensi
Untuk informasi lebih lanjut tentang Managed Service for OpenTelemetry, lihat Apa itu Managed Service for OpenTelemetry?
Untuk informasi lebih lanjut tentang ACK, lihat Apa itu Container Service for Kubernetes?
Untuk menggunakan klien yang berbeda untuk mengumpulkan data jejak, seperti Zipkin, Jaeger, dan SkyWalking, Anda harus mengonfigurasi parameter yang berbeda di ConfigMap nginx-configuration. Untuk informasi lebih lanjut tentang cara mengimpor data ke Managed Service for OpenTelemetry, lihat Persiapan.