Skema penyimpanan untuk data rekaman aktivitas

Dokumen ini menjelaskan format penyimpanan rentang rekaman aktivitas. Format data umumnya konsisten dengan file proto yang ditentukan oleh Protokol OTLP OpenTelemetry. Namun, kolom dapat dikonversi dari jenis data khusus OpenTelemetry menjadi jenis data JSON sebelum penyimpanan.

Telemetry API menggunakan OpenTelemetry OTLP Protocol. Protokol ini mengandalkan file trace_service.proto dan trace.proto. Untuk mengetahui informasi tentang batas kolom, lihat Batas Telemetry API.

Cloud Trace API tidak menggunakan OpenTelemetry OTLP Protocol dan menentukan format data eksklusif. Data rekaman aktivitas yang dikirim ke project Google Cloud Anda melalui API ini dikonversi ke format yang dijelaskan oleh dokumen ini. Namun, batas untuk Cloud Trace API berlaku.

Format penyimpanan rentang

Kolom Deskripsi
trace_id

string

ID unik global untuk trace. ID ini adalah nilai numerik 128-bit yang diformat sebagai string heksadesimal 16 byte. Sebagai contoh, 382d4f4c6b7bb2f4a972559d9085001d. Untuk mempelajari lebih lanjut ID ini, lihat trace-id W3C.

Nilai numerik nol tidak valid.

trace_id digunakan oleh alat visualisasi dan analisis untuk mengidentifikasi rentang yang terkait dengan rekaman aktivitas. Oleh karena itu, setiap operasi end-to-end harus memiliki ID unik. Jangan menggunakan kembali ID rekaman aktivitas.

span_id

string

Wajib. ID untuk span. Harus unik dalam rekaman aktivitas. ID ini adalah nilai numerik 64-bit yang diformat sebagai string heksadesimal 8 byte. Contoh, 9046a5b9f7c12500.

Nilai numerik nol tidak valid.

trace_state

string

Kolom ini sesuai dengan header tracestate, seperti yang ditentukan oleh Konteks Pelacakan W3C. Header ini berisi informasi konfigurasi yang disertakan dalam permintaan saat aplikasi diinstrumentasi untuk mengumpulkan data rekaman aktivitas. Misalnya, aplikasi dapat menentukan setelan pengambilan sampel probabilitas, atau dapat menyertakan konten khusus vendor.

Library OpenTelemetry akan otomatis mencatat nilai header tracestate saat membuat rentang.

parent_span_id

string

Opsional. Mengidentifikasi operasi yang memanggil rentang ini. Span "root" memiliki ID span induk yang ditetapkan ke null.

Hubungan induk-turunan antara rentang digunakan oleh alat visualisasi untuk membuat struktur hierarki.

name

string

Wajib. Nama operasi yang dilakukan.

Nama tersebut dapat berupa nama metode atau nama situs per panggilan lainnya. Untuk executable dan endpoint yang sama, penggunaan nama yang konsisten mempermudah korelasi rentang lintas-pelacakan. Untuk mengetahui praktik terbaik, lihat Cara Memberi Nama Rentang.

Nama rentang dibersihkan dan ditampilkan di konsol Google Cloud .

kind

integer

Menentukan tempat operasi terjadi dalam sistem. Nilai ini sesuai dengan enumerasi OpenTelemetry: Span Kind:

NilaiEnumerasi OpenTelemetry
0SPAN_KIND_UNSPECIFIED
1SPAN_KIND_INTERNAL
2SPAN_KIND_SERVER
3SPAN_KIND_CLIENT
4SPAN_KIND_PRODUCER
5SPAN_KIND_CONSUMER
start_time

Timestamp

Wajib. Waktu mulai rentang, hingga nanodetik terdekat.

start_time_unix_nano

integer

Waktu mulai dalam nanodetik, menurut epoch UNIX.

end_time

Timestamp

Wajib. Waktu berakhir rentang, hingga nanodetik terdekat.

end_time_unix_nano

integer

Waktu berakhir dalam nanodetik, menurut epoch UNIX.

receive_time

Timestamp

Wajib. Waktu penerimaan rentang, hingga nanodetik terdekat.

receive_time_unix_nano

integer

Waktu berakhir dalam nanodetik, menurut epoch UNIX.

duration_unix_nano

integer

Durasi dalam nanodetik.

attributes

JSON type

Setiap atribut adalah pasangan nilai kunci. Atribut yang tersedia untuk Anda bergantung pada data rekaman aktivitas Anda. Struktur atribut mengikuti standar OpenTelemetry. Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Atribut.

OpenTelemetry menentukan konvensi semantik untuk atribut. Untuk mempelajari konvensi ini, lihat Konvensi semantik pelacakan.

Berikut adalah contoh atribut:

"yourcompany.your.own.key": "your own value"
"network.protocol.name": "http"
"network.protocol.version": "1.1"
"http.response.status_code": "200"
"network.peer.address": "REDACTED"
dropped_attributes_count

integer

Jumlah atribut yang dibuang. Atribut dapat dihapus karena kuncinya terlalu panjang atau karena ada terlalu banyak atribut. Jika nilai ini nol, tidak ada atribut yang dihapus.

Nilai ini dapat ditetapkan oleh instrumentasi sisi klien atau oleh aplikasi. Nilai dapat ditambahkan oleh server.

events

record dengan kolom berulang

Acara titik waktu. Setiap peristiwa berisi kolom berikut.

KolomDeskripsi
time

Timestamp

time_unix_nano

integer

name

string

Wajib. Nama acara.

attributes

JSON type

Setiap atribut adalah pasangan nilai kunci. Atribut yang tersedia untuk Anda bergantung pada data rekaman aktivitas Anda. Struktur atribut mengikuti standar OpenTelemetry. Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Atribut.

dropped_attributes_count

integer

Jumlah atribut yang dibuang. Atribut dapat dihapus karena kuncinya terlalu panjang atau karena ada terlalu banyak atribut. Jika nilai ini nol, tidak ada atribut yang dihapus.

Nilai ini dapat ditetapkan oleh instrumentasi sisi klien atau oleh aplikasi. Nilai dapat ditambahkan oleh server.

dropped_events_count

integer

Jumlah peristiwa yang dibatalkan. Acara dapat dihapus karena terlalu banyak acara. Jika nilai ini nol, tidak ada peristiwa yang dibuang.

status

record tanpa kolom berulang

Kolom ini mencatat status penyelesaian untuk rentang. Nilai sub-bidang code sesuai dengan enumerasi OpenTelemetry: Span Status:

NilaiPencacahan
OpenTelemetry
Deskripsi
0 UNSET Operasi berhasil diselesaikan.
1 OK Operasi ditandai sebagai bebas error oleh manusia.
2 ERROR Operasi selesai dengan error. Misalnya, jika statusnya adalah 400 (BAD REQUEST) pada rentang klien, maka kolom ini ditetapkan ke ERROR.

Sub-kolom message, yang diformat sebagai string, berisi informasi error.

resource

record tanpa kolom berulang

Kolom ini mengidentifikasi infrastruktur atau sistem hosting tempat telemetri dikumpulkan atau yang terkait dengan telemetri. Misalnya, pertimbangkan aplikasi yang berjalan di Google Kubernetes Engine. Atribut untuk resource ini dapat mencakup nama proses dan namespace.

Kolom ini berisi sub-kolom berikut:

KolomDeskripsi
attributes

JSON type

Setiap atribut adalah pasangan nilai kunci. Atribut yang tersedia untuk Anda bergantung pada data rekaman aktivitas Anda. Struktur atribut mengikuti standar OpenTelemetry. Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Atribut.

Berikut adalah contoh atribut resource:

cloud.account.id: "my-project"
cloud.platform: "gcp_kubernetes_engine"
cloud.provider: "gcp"
cloud.region: "us-central1"
gcp.project_id: "my-project"
host.id: "REDACTED"
host.name: "gke-otel-demo"
k8s.cluster.name: "otel-demo"
k8s.deployment.name: "otel-demo-frontendproxy"
dropped_attributes_count

integer

Jumlah atribut yang dibuang. Atribut dapat dihapus karena kuncinya terlalu panjang atau karena ada terlalu banyak atribut. Jika nilai ini nol, tidak ada atribut yang dihapus.

Nilai ini dapat ditetapkan oleh instrumentasi sisi klien atau oleh aplikasi. Nilai dapat ditambahkan oleh server.

Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Sumber Daya.

instrumentation_scope

record tanpa kolom berulang

Kolom ini mengidentifikasi komponen library atau aplikasi untuk resource yang ditentukan yang mengumpulkan telemetri. Rentang mewakili operasi tertentu yang melewati cakupan tersebut, yaitu, melalui library atau komponen, dalam resource.

Misalnya, aplikasi "checkout-service" di-deploy ke Cloud Run, yang berarti resource adalah instance Cloud Run tertentu. Selain itu, asumsikan bahwa resource memiliki beberapa cakupan instrumentasi, seperti "request-authorization-library" dan "payment-processor-library".

Rentang klien, seperti "WritePaymentInfoToStripe", mungkin merupakan rentang yang dilaporkan oleh "payment-processor-library", yang ada di dalam layanan Cloud Run bernama "checkout-service".

Kolom ini berisi sub-kolom berikut:

KolomDeskripsi
name

string

version

string

attributes

JSON type

Setiap atribut adalah pasangan nilai kunci. Atribut yang tersedia untuk Anda bergantung pada data rekaman aktivitas Anda. Struktur atribut mengikuti standar OpenTelemetry. Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Atribut.

dropped_attributes_count

integer

Jumlah atribut yang dibuang. Atribut dapat dihapus karena kuncinya terlalu panjang atau karena ada terlalu banyak atribut. Jika nilai ini nol, tidak ada atribut yang dihapus.

Nilai ini dapat ditetapkan oleh instrumentasi sisi klien atau oleh aplikasi. Nilai dapat ditambahkan oleh server.

Untuk mempelajari lebih lanjut, lihat OpenTelemetry: Cakupan instrumentasi.

resource_schema_link

string

Kolom ini harus berupa URL yang diformat sebagai string.

Kolom ini berisi URL yang menampilkan file skema untuk resource. Format file skema dan data ditentukan oleh OpenTelemetry. Untuk mengetahui informasi selengkapnya, lihat OpenTelemetry: Skema.

Kolom ini hanya dapat disetel saat menggunakan Telemetry API. API tersebut tidak memvalidasi bahwa data sesuai dengan skema yang dinyatakan.

scope_schema_link

string

Kolom ini harus berupa URL yang diformat sebagai string.

Kolom ini berisi URL yang menampilkan file skema untuk cakupan. Format file skema dan data ditentukan oleh OpenTelemetry. Untuk mengetahui informasi selengkapnya, lihat OpenTelemetry: Skema.

Kolom ini hanya dapat disetel saat menggunakan Telemetry API. API tersebut tidak memvalidasi bahwa data sesuai dengan skema yang dinyatakan.

apphub

record tanpa kolom berulang

Label khusus aplikasi tersedia saat rentang rekaman aktivitas dihasilkan oleh aplikasi App Hub, saat aplikasi tersebut berjalan di infrastruktur yang didukung atau telah diinstrumentasi. Untuk mempelajari lebih lanjut Pemantauan Aplikasi dan kapan label ini tersedia, lihat Ringkasan Pemantauan Aplikasi.

Kolom ini berisi sub-kolom application, service, dan workload.

Subbidang aplikasiDeskripsi
container

string

location

string

id

string

Sub-bidang
layanan/workload
Deskripsi
id

string

environment_type

string

criticality_type

string