Managed Service for OpenTelemetry memberikan visibilitas end-to-end terhadap permintaan yang mengalir melalui layanan mikro Anda. Dengan mengaktifkan Xtrace di AlbConfig, ALB menyematkan ID jejak ke setiap permintaan pada lapisan ingress—sehingga Anda dapat mengkorelasikan log akses dengan jejak terdistribusi tanpa perlu melakukan instrumentasi pada masing-masing layanan secara individual.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal ALB Ingress Controller pada kluster Anda, versi 2.11.1 atau lebih baru.
Konsol ACKKonsol ACKKluster baru: Pada halaman Component Configuration saat pembuatan kluster, pilih ALB Ingress di bidang Ingress. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola, Buat kluster khusus ACK (pembuatan kluster baru telah dihentikan), atau Buat kluster ACK serverless.
Kluster yang sudah ada: Lihat Kelola komponen untuk menginstal atau meningkatkan komponen tersebut.
(Bersyarat) Untuk kluster khusus ACK: ALB Ingress Controller telah diberikan izin akses yang diperlukan. Lihat Berikan izin akses ALB Ingress Controller ke kluster khusus ACK.
Managed Service for OpenTelemetry telah diaktifkan. Aktifkan Managed Service for OpenTelemetry sekarang.
Cara kerja
Saat permintaan memasuki pendengar ALB, ALB menghasilkan ID jejak dan menyuntikkannya ke header permintaan menggunakan algoritma pengambilan sampel Zipkin. Permintaan tersebut, bersama dengan ID jejaknya, diteruskan ke layanan backend. Log akses untuk setiap permintaan—termasuk ID jejak—ditulis ke penyimpanan log Simple Log Service (SLS). Managed Service for OpenTelemetry membaca log ini dan merekonstruksi jejak lengkap, yang kemudian dapat Anda lihat di konsol OpenTelemetry.
Xtrace dikonfigurasi pada tingkat pendengar di AlbConfig. Laju pengambilan sampel berlaku seragam untuk seluruh traffic pada pendengar tersebut.
Aktifkan Xtrace untuk ALB Ingress
Langkah 1: Aktifkan Simple Log Service untuk kluster
Aktifkan Simple Log Service untuk kluster Anda. Setelah diaktifkan, kluster secara otomatis membuat proyek SLS. Untuk petunjuknya, lihat Kumpulkan log dari kontainer kluster ACK.
Langkah 2: Dapatkan ID proyek SLS
Masuk ke Konsol ACK dan klik Clusters di panel navigasi kiri.
Klik nama kluster Anda, lalu klik Cluster Information di panel navigasi kiri.
Pada tab Basic Information, salin nilai dari bidang Simple Log Service Project. Anda akan menggunakan ID ini pada langkah berikutnya.
Langkah 3: Buat AlbConfig
AlbConfig membuat instans ALB dengan log akses Simple Log Service yang diaktifkan dan Xtrace dikonfigurasi pada pendengarnya.
Buat file
alb-test.yamldengan konten berikut:Anda hanya dapat mengubah pengaturan Xtrace setelah log akses Simple Log Service diaktifkan pada instans ALB. Jika Anda menggunakan kembali instans ALB yang sudah ada, atur
forceOverride: truedi bawahspec.configuntuk menimpa properti yang sudah ada. Lihat Gunakan kembali instans ALB yang sudah ada.Untuk petunjuk membuat vSwitch, lihat Buat dan kelola vSwitch.
Referensi parameter Xtrace
Parameter Deskripsi Default Rentang tracingEnabledMengaktifkan Xtrace pada pendengar falsetrue/falsetracingSampleLaju pengambilan sampel. 10000 = 100%, 5000 = 50%, 1 = 0,01% — 1–10000 tracingTypeAlgoritma pengambilan sampel — ZipkinapiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Intranet zoneMappings: # vSwitch harus berada di zona yang didukung ALB dan VPC yang sama dengan kluster. Pilih minimal dua vSwitch di zona berbeda untuk ketersediaan tinggi. - vSwitchId: vsw-2vc82nndnoo********** # Ganti dengan ID vSwitch Anda. - vSwitchId: vsw-2vc30f5mlhs********** accessLogConfig: logProject: "k8s-log-xz92lvykqj1siwvif****" # Ganti dengan ID proyek SLS Anda dari Langkah 2. logStore: alb_xz92lvykqj1siwvif**** # Harus diawali dengan "alb_". Dibuat otomatis jika belum ada. listeners: - port: 80 protocol: HTTP logConfig: accessLogRecordCustomizedHeadersEnabled: false accessLogTracingConfig: tracingEnabled: true # Atur ke true untuk mengaktifkan Xtrace. Default: false. tracingSample: 9999 # Laju pengambilan sampel. Rentang: 1-10000, di mana 10000 = 100%. Contoh: 9999 = 99,99%. tracingType: Zipkin # Algoritma pengambilan sampel. Hanya berlaku saat tracingEnabled bernilai true.Terapkan AlbConfig:
kubectl apply -f alb-test.yamlOutput yang diharapkan:
albconfig.alibabacloud.com/alb-demo created
Langkah 4: Buat IngressClass
Buat file
alb.yamldengan konten berikut:apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demoTerapkan IngressClass:
kubectl apply -f alb.yamlOutput yang diharapkan:
ingressclass.networking.k8s.io/alb created
Langkah 5: Sebarkan layanan dan konfigurasikan routing Ingress
Buat file
cafe-service.yamldengan konten berikut untuk menyebarkan Penyebarancoffeedan Layanancoffee-svc:apiVersion: apps/v1 kind: Deployment metadata: name: coffee spec: replicas: 2 selector: matchLabels: app: coffee template: metadata: labels: app: coffee spec: containers: - name: coffee image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: coffee-svc spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: coffee type: NodePortSebarkan Deployment dan Layanan:
kubectl apply -f cafe-service.yamlOutput yang diharapkan:
deployment.apps/coffee created service/coffee-svc createdBuat file
cafe-ingress.yamluntuk mengonfigurasi aturan routing Ingress:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: number: 80Terapkan Ingress:
kubectl apply -f cafe-ingress.yamlOutput yang diharapkan:
ingress.networking.k8s.io/cafe-ingress created
Langkah 6: Konfigurasikan resolusi nama domain
Jika Anda menetapkan domain kustom di spec.rules.host, tambahkan Rekaman CNAME untuk domain tersebut yang mengarah ke nama DNS ALB. Untuk petunjuknya, lihat Buat dan gunakan ALB Ingress untuk mengekspos Layanan ke traffic eksternal.
Langkah 7: Kirim permintaan untuk menghasilkan data jejak
Dapatkan alamat instans ALB:
kubectl get ingOutput yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE cafe-ingress alb demo.domain.ingress.top alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com 80 16mKirim permintaan ke layanan:
Jumlah permintaan yang diperlukan sebelum jejak muncul di konsol bergantung pada laju pengambilan sampel Anda. Dengan
tracingSample: 9999(99,99%), satu permintaan saja sudah cukup. Dengan laju yang lebih rendah—misalnya,tracingSample: 100(1%)—kirim minimal 100 permintaan untuk memastikan jejak tertangkap: ``bash for i in $(seq 1 100); do curl -s -o /dev/null -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffee; done``curl -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffeeTanggapan berupa halaman HTML dengan judul Hello World.
Verifikasi pelacakan
Periksa log akses SLS
Masuk ke Konsol ACK dan klik Clusters.
Klik nama kluster Anda, lalu klik Cluster Information.
Pada tab Basic Information, klik tautan di bidang Simple Log Service Project untuk membuka konsol SLS. Di panel navigasi kiri, klik penyimpanan log yang namanya diawali dengan
alb_(misalnya,alb_xz92lvykqj1siwvif****). Carixtraceuntuk memastikan permintaan berisi data Xtrace.
Lihat jejak di konsol OpenTelemetry
Masuk ke Konsol Managed Service for OpenTelemetry.
Pada halaman Applications, pilih wilayah dari bilah navigasi atas dan klik nama aplikasi Anda.
Di panel navigasi kiri, klik API Calls, lalu klik tab Trace untuk melihat data jejak. Tab ini menampilkan hingga 100 jejak dengan durasi terpanjang. Untuk informasi selengkapnya, lihat Panggilan Antarmuka.
Langkah berikutnya
Untuk menerapkan pelacakan terdistribusi dengan Nginx Ingress sebagai gantinya, lihat Terapkan Analisis Tracing untuk Komponen Nginx Ingress Controller.
Jika Anda mengalami masalah, lihat Pemecahan Masalah ALB Ingress dan FAQ ALB Ingress.