Konteks rekaman aktivitas

Dokumen ini secara singkat menjelaskan konteks, yang mengacu pada status, dan ke penerapan konteks, yang mengacu pada informasi status yang diteruskan ke operasi turunan. Untuk pelacakan terdistribusi, ID pelacakan dan ID rentang yang diproses harus diteruskan ke operasi turunan.

Operasi turunan membuat rentang dan menetapkan kolom berikut:

  • ID Rentang: ID unik untuk operasi turunan. Jika operasi yang sama dieksekusi beberapa kali, akan ada beberapa rentang untuk operasi tersebut, masing-masing dengan ID unik.
  • ID Pelacakan: ID unik operasi end-to-end tempat operasi keseluruhan tertentu ini terjadi. Nilai kolom ini disediakan oleh induk.
  • ID rentang induk: ID unik rentang induk. Nilai kolom ini disediakan oleh induk. Untuk rentang root, ID ini adalah null.

Nilai kolom ID pelacakan, ID rentang, dan ID rentang induk memungkinkan sistem pelacakan terdistribusi menautkan rentang dengan benar untuk membentuk pelacakan. Misalnya, Cloud Trace menyimpan rentang di repositori, dan menggunakan kolom ID ini untuk mengidentifikasi rentang mana yang membentuk pelacakan.

Konteks dapat mencakup informasi status lain yang berguna untuk pelacakan terdistribusi. Misalnya, standar World Wide Web Consortium (W3C) menyertakan informasi tentang apakah rentang induk diambil sampelnya.

Protokol untuk penerapan konteks

Bagian berikut menjelaskan cara protokol permintaan tertentu menerapkan konteks.

Permintaan HTTP

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

Jika memungkinkan, sebaiknya gunakan traceparent header di aplikasi Anda. Aplikasi Anda mungkin perlu menggunakan header X-Cloud-Trace-Context lama atau mungkin perlu mendukung penerimaan konteks pelacakan 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 pengganti.

Tabel berikut merangkum beberapa perbedaan signifikan antara kedua header:

Atribut traceparent
en-tête
X-Cloud-Trace-Context
header
Pemisah tanda hubung (-) garis miring (/) dan titik koma (;)
Representasi ID rentang
Heksadesimal Desimal

Header X-Cloud-Trace-Context lama

Header X-Cloud-Trace-Context yang digunakan oleh Google Cloud mendahului spesifikasi W3C. Untuk kompatibilitas mundur, beberapa Google Cloud layanan terus menerima, membuat, dan menerapkan 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 rentang tanpa tanda.
  • OPTIONS mendukung 0 (induk tidak diambil sampelnya) dan 1 (induk diambil sampelnya).

Permintaan gRPC

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

Untuk komponen yang Anda miliki, sebaiknya gunakan header traceparent.

Penerapan konteks untuk Google Cloud layanan

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

Dukungan untuk inisiasi dan penerapan konteks pelacakan adalah bergantung pada layanan tertentu. Google Cloud Untuk meminta layanan menambahkan dukungan untuk penerapan konteks, gunakan Google Issue Tracker. Google Cloud

Penerapan konteks di aplikasi Anda

Beberapa library instrumentasi, seperti OpenTelemetry, dapat menerapkan objek context yang berisi data yang diperlukan untuk pelacakan. Untuk mengetahui daftar library OpenTelemetry yang mendukung pelacakan, lihat API & SDK Bahasa.

Jika Anda mengandalkan library open source, tentukan apakah penerapan konteks tersedia dan apakah konfigurasi diperlukan. Misalnya, jika Anda menggunakan OpenTelemetry untuk menginstrumentasikan aplikasi Go, aplikasi Anda harus memanggil SetTextMapPropagator, yang mengonfigurasi konteks untuk menggunakan format traceparent W3C. Untuk contohnya, lihat contoh instrumentasi Go.

Jika tidak ada library instrumentasi yang sesuai, Anda harus memastikan bahwa aplikasi Anda menerapkan konteks pelacakan ke operasi turunan.

Langkah berikutnya