All Products
Search
Document Center

Alibaba Cloud Service Mesh:Aktifkan distributed tracing di ASM

Last Updated:Mar 01, 2026

Service Mesh (ASM) terintegrasi dengan Managed Service for OpenTelemetry untuk memberikan visibilitas end-to-end terhadap layanan mikro Anda. Dengan distributed tracing diaktifkan, Anda dapat melihat data jejak, menampilkan topologi jejak, menganalisis dependensi aplikasi, serta melacak jumlah permintaan lintas layanan.

Cara kerja

Proxy sidecar dalam instans ASM secara otomatis menghasilkan dan mengirim rentang (spans) untuk setiap permintaan yang melewati mesh. Namun, proxy saja tidak dapat menghubungkan rentang tersebut menjadi satu jejak end-to-end yang utuh. Untuk menghubungkannya, aplikasi Anda harus menyebarkan header konteks jejak—yaitu meneruskan header tertentu dari setiap permintaan masuk ke semua permintaan keluar yang dipicu oleh permintaan tersebut.

Tanpa penyebaran header, backend pelacakan menerima rentang terisolasi yang tidak dapat digabung menjadi satu jejak. Setiap rentang yang dihasilkan proxy muncul sebagai entri terpisah yang tidak saling terkait.

Header konteks jejak

ASM mendukung dua format propagasi: B3 dan W3C Trace Context. Format default bergantung pada versi instans ASM.

Catatan

Instans ASM versi V1.18.0.124 atau lebih lama menggunakan propagator B3 secara default. Instans ASM versi lebih baru dari V1.18.0.124 menggunakan propagator W3C Trace Context secara default.

Header propagasi B3

Teruskan header berikut saat menggunakan propagasi B3:

  • x-request-id

  • x-b3-traceid

  • x-b3-spanid

  • x-b3-parentspanid

  • x-b3-sampled

  • x-b3-flags

  • x-ot-span-context

Header W3C Trace Context

Teruskan header berikut saat menggunakan propagasi W3C Trace Context:

  • traceparent

  • tracestate

Prasyarat

Sebelum memulai, pastikan Anda telah:

Sebarkan header konteks jejak di aplikasi Anda

Aplikasi contoh Bookinfo menunjukkan cara menyebarkan header konteks jejak dalam berbagai bahasa pemrograman.

Layanan productpage (Python)

Layanan productpage menggunakan pustaka OpenTracing untuk mengekstrak dan meneruskan header B3:

def getForwardHeaders(request):
    headers = {}
    # Header x-b3-*** dapat diisi menggunakan span opentracing
    span = get_current_span()
    carrier = {}
    tracer.inject(
        span_context=span.context,
        format=Format.HTTP_HEADERS,
        carrier=carrier)
    headers.update(carrier)
    # ...

    incoming_headers = ['x-request-id']

    # ...

    for ihdr in incoming_headers:
        val = request.headers.get(ihdr)
        if val is not None:
            headers[ihdr] = val
    return headers

Layanan reviews (Java)

Layanan reviews mengekstrak header B3 dari permintaan masuk dan meneruskannya ke panggilan downstream:

@GET
@Path("/reviews/{productId}")
public Response bookReviewsById(@PathParam("productId") int productId,
                            @HeaderParam("end-user") String user,
                            @HeaderParam("x-request-id") String xreq,
                            @HeaderParam("x-b3-traceid") String xtraceid,
                            @HeaderParam("x-b3-spanid") String xspanid,
                            @HeaderParam("x-b3-parentspanid") String xparentspanid,
                            @HeaderParam("x-b3-sampled") String xsampled,
                            @HeaderParam("x-b3-flags") String xflags,
                            @HeaderParam("x-ot-span-context") String xotspan) {

  if (ratings_enabled) {
    JsonObject ratingsResponse = getRatings(Integer.toString(productId), user, xreq, xtraceid, xspanid, xparentspanid, xsampled, xflags, xotspan);

Akses aplikasi Bookinfo

Buka URL berikut di browser Anda:

http://{IP address of the ingress gateway}/productpage

Ganti {IP address of the ingress gateway} dengan alamat IP aktual gerbang masuk ASM Anda.

Lihat data jejak di konsol OpenTelemetry

Setelah Anda menerapkan aplikasi dengan penyebaran header, lihat data jejak di konsol Managed Service for OpenTelemetry.

Lihat daftar aplikasi

Halaman Applications menampilkan jumlah permintaan, error, dan durasi untuk semua aplikasi yang dipantau. Gunakan tombol Filter by Tag untuk memfilter aplikasi.

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Di panel navigasi sebelah kiri, klik Applications. Di bagian atas halaman, pilih wilayah target.

Applications list

Lihat detail aplikasi

Halaman detail aplikasi menampilkan topologi panggilan, jejak, dan metrik utama untuk setiap server tempat aplikasi diterapkan.

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Di panel navigasi sebelah kiri, klik Applications. Pilih wilayah target, lalu klik nama aplikasi.

  3. Di halaman detail aplikasi, klik tab Overview untuk melihat metrik utama, atau klik tab Trace Explorer untuk melihat jejak. Maksimal 100 jejak ditampilkan dalam urutan menurun berdasarkan waktu yang dikonsumsi.

    Call traces

Lihat grafik air terjun dari suatu jejak

Grafik air terjun menampilkan setiap rentang dalam jejak beserta waktu pembuatan log, status, alamat IP atau nama server, nama layanan, dan garis waktu. Setiap proxy sidecar menghasilkan rentang baik di sisi inbound (server) maupun outbound (client) dari suatu permintaan, sehingga satu hop antara dua layanan dalam mesh menghasilkan beberapa rentang proxy.

  1. Di halaman detail aplikasi, klik tab Trace Explorer. Di daftar jejak, klik ID jejak tersebut.

  2. Lihat grafik air terjun di halaman yang muncul.

    Catatan
    • Kolom IP Address dapat menampilkan alamat IP atau nama server tergantung pada pengaturan yang dikonfigurasi di halaman Application Settings. Untuk informasi selengkapnya, lihat Kelola aplikasi dan tag.

    • Arahkan kursor ke nama layanan untuk melihat detail rentang termasuk durasi, waktu mulai, tag, dan event log. Untuk informasi selengkapnya, lihat Detail aplikasi.

    Waterfall chart

FAQ

Mengapa saya tidak melihat data jejak setelah mengaktifkan tracing di konsol ASM?

Hal ini dapat terjadi ketika kuota penggunaan harian telah terlampaui. Saat volume data aktual melebihi batas yang dikonfigurasi, sistem menghentikan penulisan data dan tidak ada jejak yang ditampilkan.

Untuk memverifikasi dan memperbaiki masalah ini:

  1. Lihat log dorong jejak.

    1. Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster. Untuk informasi selengkapnya, lihat Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.

    2. Jalankan perintah berikut untuk melihat log dorong jejak dari Pod yang terkait dengan deployment tracing-on-external-zipkin di namespace istio-system:

      kubectl logs "$(kubectl get pods -n istio-system -l app=tracing -o jsonpath='{.items[0].metadata.name}')" -n istio-system -c nginx

      Kode status 406 dicatat dalam log dorong jejak.Logs

  2. Lihat penggunaan kuota.

    1. Masuk ke Konsol Managed Service for OpenTelemetry.

    2. Di panel navigasi sebelah kiri, perluas Cluster Configuration, lalu klik Cluster Configuration untuk melihat penggunaan kuota.

      Quota configuration

    Jika penggunaan aktual melebihi batas yang dikonfigurasi, sistem menghentikan penulisan data dan informasi jejak tidak ditampilkan.

  3. Tingkatkan kuota.

    1. Di halaman Cluster Configuration, tingkatkan nilai kuota di bawah Quota Configuration, lalu klik Save.

    2. Di dialog Note yang muncul, klik OK.

Mengapa ID jejak berubah setelah melewati gerbang masuk atau proxy sidecar?

Proxy sidecar menghasilkan ulang header propagasi saat menerima permintaan dengan konteks jejak yang tidak lengkap. Untuk mempertahankan ID jejak Anda, sertakan header minimum yang diperlukan:

  • Format B3: x-b3-traceid dan x-b3-spanid

  • Format W3C Trace Context: traceparent