Konteks rekaman aktivitas

Dokumen ini menjelaskan secara singkat konteks, yang merujuk pada status, dan penyebaran konteks, yang merujuk pada penerusan informasi status ke operasi turunan. Untuk pelacakan terdistribusi, ID rekaman aktivitas dan ID span yang sedang diproses harus diteruskan ke operasi turunan.

Operasi turunan membuat span dan menetapkan kolom berikut:

  • ID Span: ID unik untuk operasi turunan. Jika operasi yang sama dijalankan beberapa kali, akan ada beberapa span untuk operasi tersebut, masing-masing dengan ID unik.
  • ID Rekaman Aktivitas: ID unik operasi menyeluruh tempat operasi keseluruhan tertentu ini terjadi. Nilai kolom ini disediakan oleh induk.
  • ID span induk: ID unik span induk. Nilai kolom ini diberikan oleh induk. Untuk span root, ID ini adalah null.

Nilai kolom ID trace, ID span, dan ID span induk memungkinkan sistem pelacakan terdistribusi menautkan span dengan benar untuk membentuk trace. Misalnya, Cloud Trace menyimpan span di repositori, dan menggunakan kolom ID ini untuk mengidentifikasi span yang menyusun rekaman aktivitas.

Konteks mungkin menyertakan informasi status lain yang berguna untuk pelacakan terdistribusi. Misalnya, standar World Wide Web Consortium (W3C) menyertakan informasi tentang apakah span induk dipilih sampelnya.

Protokol untuk penerapan konteks

Bagian berikut menjelaskan cara protokol permintaan tertentu menyebarkan konteks.

Permintaan HTTP

Untuk permintaan HTTP, penerapan konteks biasanya dilakukan melalui header HTTP seperti header traceparent dan tracestate, yang diseragamkan oleh W3C. Layanan Google Cloud yang mendukung penyebaran konteks rekaman aktivitas biasanya mendukung traceparent dan header X-Cloud-Trace-Context lama.

Jika memungkinkan, sebaiknya gunakan header traceparent di aplikasi Anda. Aplikasi Anda mungkin perlu menggunakan header X-Cloud-Trace-Context lama atau mungkin perlu mendukung penerimaan konteks rekaman aktivitas dalam format yang berbeda.

Jika Anda memiliki aplikasi yang hanya mendukung header X-Cloud-Trace-Context, sebaiknya update aplikasi Anda untuk mendukung, dan memprioritaskan, header traceparent. Aplikasi Anda dapat terus menggunakan header X-Cloud-Trace-Context sebagai solusi penggantian.

Tabel berikut merangkum beberapa perbedaan signifikan antara kedua header tersebut:

Atribut Header traceparent
X-Cloud-Trace-Context
header
Pemisah tanda hubung (-) garis miring (/) dan titik koma (;)
Representasi
ID Span
Heksadesimal Desimal

Header X-Cloud-Trace-Context lama

Header X-Cloud-Trace-Context yang digunakan oleh Google Cloud sudah ada sebelum spesifikasi W3C. Untuk kompatibilitas mundur, beberapa layanan Google Cloud terus menerima, membuat, dan menyebarkan header X-Cloud-Trace-Context. Namun, kemungkinan sistem ini juga mendukung header traceparent.

Header X-Cloud-Trace-Context memiliki format berikut:

X-Cloud-Trace-Context: TRACE_ID/SPAN_ID;o=OPTIONS

Kolom header ditentukan sebagai berikut:

  • TRACE_ID adalah nilai heksadesimal 32 karakter yang mewakili angka 128-bit.
  • SPAN_ID adalah representasi desimal 64-bit dari ID span tanpa tanda tangan.
  • OPTIONS mendukung 0 (induk tidak diambil sampelnya) dan 1 (induk diambil sampelnya).

Permintaan gRPC

Untuk permintaan gRPC, penerapan konteks dilakukan menggunakan metadata gRPC, yang diterapkan di atas header HTTP. Aplikasi gRPC mungkin menggunakan header traceparent atau kunci konteks metadata yang disebut grpc-trace-bin.

Untuk komponen yang Anda miliki, sebaiknya gunakan header traceparent.

Penyebaran konteks untuk layanan Google Cloud

Layanan Google Cloud dapat bertindak sebagai inisiator atau perantara dalam pemrosesan permintaan. Misalnya, layanan berikut diketahui berpartisipasi dalam memproses permintaan:

Dukungan untuk inisiasi dan penyebaran konteks rekaman aktivitas bergantung pada layanan Google Cloud tertentu. Untuk meminta layanan Google Cloud menambahkan dukungan untuk penyebaran konteks, gunakan Pelacak Masalah Google.

Penyebaran konteks di aplikasi Anda

Beberapa library instrumentasi, seperti OpenTelemetry, otomatis menyebarkan objek context yang berisi data yang diperlukan untuk pelacakan. Jika Anda menggunakan jenis library ini, span yang dihasilkan oleh aplikasi Anda akan dikonfigurasi dengan benar. Untuk mengetahui daftar library OpenTelemetry yang mendukung pelacakan, lihat API & SDK Bahasa. Untuk contoh instrumentasi, lihat Membuat trace dan metrik dengan Go.

Jika Anda mengandalkan library open source, tentukan apakah penyebaran konteks tersedia dan apakah konfigurasi diperlukan.

Jika tidak ada library instrumentasi yang sesuai, Anda harus memastikan bahwa aplikasi Anda menyebarkan konteks rekaman aktivitas ke operasi turunan.

Langkah selanjutnya