Dokumen ini memperkenalkan penggunaan
Telemetry (OTLP) API,
telemetry.googleapis.com, untuk penyerapan log berformat OTLP ke
Cloud Logging, tempat log tersebut disimpan sebagai entri log.
Untuk melihat contohnya, lihat
Menulis log berformat OTLP ke Telemetry API.
Anda juga dapat mengirim log ke Telemetry API dari aplikasi yang menggunakan SDK atau dengan menggunakan OpenTelemetry Collector.
Untuk mengetahui informasi tentang Telemetry API untuk log, metrik, dan rekaman aktivitas, lihat Referensi Telemetry (OTLP) API.
Dukungan protokol
Endpoint OTLP mendukung semua protokol OTLP, termasuk
http/protobuf, http/json, dan grpc. Saat mengekspor dari
OpenTelemetry Collector, Anda dapat menggunakan salah satu protokol. Namun, karena kurangnya dukungan untuk penggantian token dinamis di sebagian besar pengekspor SDK, jika Anda mengekspor langsung dari SDK, sebaiknya gunakan hanya pengekspor OTLP gRPC, bukan pengekspor HTTP.
Penagihan
Anda mungkin melihat perubahan pada nilai penagihan dan penyimpanan Cloud Logging saat menggunakan Telemetry API untuk menyerap log. Permintaan log berformat OTLP dalam JSON memiliki struktur umum berikut:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"scope": { ...}
"logRecords": [...]
}
]
}
]
Setiap item dalam setiap array logRecords menjadi satu entri log Cloud Logging. Perubahan terbesar pada penyimpanan dan penagihan untuk Google Cloud project
Anda terjadi jika kedua hal berikut berlaku:
Kolom
resourceberisi sejumlah besar atribut wajib untuk kunci dan nilai. Atribut resource ini digunakan untuk menentukan resource yang dipantau dalamLogEntryyang dihasilkan.Resource yang dipantau terdiri dari jenis resource yang dipantau Cloud Logging dan nilai untuk label terkaitnya. Beberapa jenis resource yang dipantau memiliki sangat sedikit label, tetapi beberapa jenis resource memiliki banyak label. Untuk mengetahui informasi selengkapnya tentang atribut yang diperlukan untuk penyerapan log berformat OTLP, lihat Pemetaan atribut OTLP ke jenis resource.
Kolom
scopeLogsberisi sejumlah besar item dalam arraylogRecords.
Untuk mendukung penyerapan log berformat OTLP, struktur
LogEntry Cloud Logging berisi kolom tambahan,
otel. Model data OTLP dan Cloud Logging tidak cocok sepenuhnya, sehingga kolom otel berisi salinan Resource, Scope, dan Entitas OTLP dari permintaan OTLP yang masuk.
Misalnya, jika Anda mengirim resourceLog OTLP seperti berikut ke
Telemetry API, setiap entri log yang dihasilkan akan berisi kolom resource
(untuk resource yang dipantau) dan kolom otel, seperti yang ditunjukkan di tab lainnya:
resourceLog
{
"resourceLogs": [
{
"resource": {
"attributes": [
{
"key": "gcp.project_id",
"value": { "stringValue": "PROJECT_ID" }
},
{
"key": "gcp.resource_type",
"value": { "stringValue": "global" }
}
]
},
"scopeLogs": [
{
"scope": {
"name": "my.library",
"version": "1.0.0",
"attributes": [
{
"key": "my.scope.attribute",
"value": { "stringValue": "some scope attribute" }
}
]
},
"logRecords": [ ... ]
}
]
}
]
}
resource
{
...
"resource": {
"labels": {
"project_id": "PROJECT_ID"
},
"type": "global"
},
...
}
otel
{
...
"otel": {
"resource": {
"attributes": {
"gcp.project_id": "PROJECT_ID",
"gcp.resource_type": "global"
}
},
"scope": {
"attributes": {
"my.scope.attribute": "some scope attribute"
},
"name": "my.library",
"version": "1.0.0"
}
},
...
}
Cloud Logging tidak dapat menautkan resource lain ke entri log, sehingga semua informasi tentang resource, cakupan, dan entitas OTLP harus disalin ke setiap entri log.
Duplikasi ini mempertahankan sebanyak mungkin informasi dari permintaan asli dalam entri log yang dihasilkan. Namun, duplikasi ini juga berarti kolom
otel mengulangi informasi resource yang juga digunakan di kolom resource yang dipantau
(resource) dalam entri log. Kolom resource entri log dapat ditagih, tetapi informasi resource yang diduplikasi di kolom otel tidak dapat ditagih.
Jika Anda menyertakan sejumlah besar catatan log dalam permintaan OTLP, informasi OTLP harus disalin ke setiap entri log yang dihasilkan, ke kolom resource dan otel. Meskipun penyimpanan untuk salinan kolom otel tidak dikenai biaya, penyimpanan untuk salinan tambahan kolom resource dikenai biaya. Jika Anda menyertakan sejumlah besar logRecords OTLP dalam permintaan, jumlah kolom resource yang dikenai biaya dalam entri log Anda akan meningkat sebanding dengan jumlah logRecords OTLP per resource per permintaan.
Untuk meminimalkan informasi tambahan yang disimpan, sebaiknya kirimkan
satu item logRecord per permintaan.
Batas dan kuota
Untuk mengetahui informasi tentang batas dan kuota yang terkait dengan penggunaan Telemetry API untuk logging, lihat Batas dan kuota untuk penyerapan log.
Kuota dan batas Cloud Logging juga berlaku saat menggunakan Telemetry API untuk penyerapan log.