Dokumen ini menjelaskan aturan yang digunakan Google Cloud Observability untuk menentukan
jenis resource yang dipantau Logging untuk data log
yang di-ingest oleh Telemetry API. Resource yang dipantau menjelaskan
sumber data log, dan dalam LogEntry, resource ini diwakili dengan menggunakan
label. Google Cloud Observability menentukan nilai label tersebut dengan menggunakan atribut resource OTLP.
Struktur umum data log berformat OTLP
Saat data log dikirim ke Google Cloud menggunakan Telemetry API, data ini harus dalam format yang konsisten dengan OTLP. Struktur umum untuk data ini adalah seperti yang ditunjukkan:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"logRecords": [...]
}
]
}
]
Perhatikan bahwa OpenTelemetry mengelompokkan log individual, yang masing-masing direpresentasikan oleh
struktur logRecord, dengan informasi tentang sumber log tersebut,
yang direpresentasikan oleh struktur resource.
Saat menerima objek resourceLogs, Google Cloud Observability akan membuat satu
LogEntry untuk setiap logRecord. Tidak seperti OTLP yang mengelompokkan informasi sumber dengan kumpulan log individual, setiap struktur LogEntry berisi informasi tentang sumber log dan log itu sendiri.
Untuk mempelajari lebih lanjut struktur data log berformat OTLP, lihat logs.proto OpenTelemetry.
Menetapkan atribut resource OTLP menggunakan pendeteksi resource Google Cloud
Untuk menyetel atribut resource OTLP dalam data log OTLP, gunakan detektor resourceGoogle Cloud . Detektor ini melampirkan atribut resource OTLP yang menjelaskan sumber telemetri ke telemetri:
Untuk ekspor berbasis pengumpul, konfigurasikan deteksi resource sebagai bagian dari pemroses pengumpul. Misalnya, pengumpul Anda dapat menentukan dua detektor resource:
resourcedetection: detectors: ["env", "gcp"]Dokumen berikut memberikan contoh pengumpul yang mengekspor data metrik atau data rekaman aktivitas:
- Men-deploy dan menggunakan pengumpul: Menjelaskan cara mengirim data metrik ke Telemetry API.
- Men-deploy Pengumpul OpenTelemetry Buatan Google di Google Kubernetes Engine: Menjelaskan cara mengumpulkan data log, metrik, dan rekaman aktivitas saat berjalan di Google Kubernetes Engine. Pengumpul mengirimkan data rekaman aktivitas ke Telemetry API dan data metrik ke pengekspor Prometheus.
Jika Anda menggunakan ekspor langsung, gunakan detektor resource yang sesuai untuk bahasa Anda: Google Cloud
Cara menetapkan label resource
Setiap entri log berisi serangkaian label yang mengidentifikasi sumber entri log, yang juga dikenal sebagai Resource yang dipantau untuk logging. Berikut ini menggambarkan label untuk Google Kubernetes Engine.
resource: {
labels: {
cluster_name: "my-cluster"
container_name: "server"
location: "us-central1"
namespace_name: "default"
pod_name: "my-pod"
project_id: "my-project"
}
type: "k8s_container"
}
Seperti yang ditunjukkan, resource yang dipantau memiliki kolom type dan satu atau beberapa labels.
Setidaknya, label untuk resource yang dipantau mencakup project_id atau
resource_container.
Tabel berikut menjelaskan aturan yang digunakan Google Cloud Observability untuk memetakan atribut resource OTLP ke resource yang dipantau. Tabel diurutkan. Artinya, jika atribut resource mencakup
cloud.platform dan nilainya adalah gcp_compute_engine, maka jenis
resource yang dipantau ditetapkan ke gce_instance. Untuk menentukan nilai label resource yang dipantau, Google Cloud Observability menggunakan daftar atribut resource yang diprioritaskan.
Nilai label adalah string kosong jika tidak ada atribut resource yang tersedia.
| Atribut dan nilai OTLP yang dilampirkan ke rekaman log |
Jenis resource yang dimonitor Cloud Logging |
Nilai label resource yang dipantau sebagaimana ditentukan dari atribut resource OTLP, berdasarkan prioritas |
|---|---|---|
cloud.platformmemiliki nilai gcp_compute_engine |
gce_instance |
|
cloud.platformmemiliki nilai gcp_app_engine |
gae_app |
|
cloud.platformmemiliki nilai aws_ec2 |
aws_ec2_instance |
|
cloud.platformmemiliki nilai gcp_bare_metal_solution |
baremetal instance |
|
service.name danservice.instance.idtidak kosong |
generic_task |
|
faas.name danfaas.instancetidak kosong |
generic_task |
|
k8s.cluster.name dank8s.container.nametidak kosong |
k8s_container |
|
k8s.cluster.name dank8s.pod.nametidak kosong |
k8s_pod |
|
k8s.cluster.name dank8s.node.nametidak kosong |
k8s_node |
|
k8s.cluster.nametidak kosong |
k8s_cluster |
|
| Tidak ada kecocokan label lain | generic_node |
|
Menyimpulkan nilai label ID container project atau resource
Semua jenis resource yang dimonitor Logging memiliki label project_id atau label resource_container.
Sistem menelusuri atribut berikut, secara berurutan, untuk menentukan nilai label tersebut:
project_idgcp.project.idgcp.project_idgcp.dest_project_idgcp.resource.containerresource_containercloud.account.idcloud.account_id