Questo documento descrive le regole utilizzate da Google Cloud Observability per determinare il
tipo di risorsa monitorata Logging per i dati di log
inseriti dall'API Telemetry. La risorsa monitorata descrive l'origine dei dati di log e, in un LogEntry, è rappresentata dall'utilizzo di etichette. Google Cloud Observability determina i valori di queste etichette utilizzando gli attributi delle risorse OTLP.
Struttura generale dei dati di log formattati in OTLP
Quando i dati di log vengono inviati a Google Cloud utilizzando l'API Telemetry, questi dati devono essere in un formato coerente con OTLP. La struttura generale di questi dati è la seguente:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"logRecords": [...]
}
]
}
]
Tieni presente che OpenTelemetry raggruppa i singoli log, ognuno dei quali è rappresentato da
una struttura logRecord, con informazioni sull'origine di questi log,
che è rappresentata dalla struttura resource.
Quando Google Cloud Observability riceve un oggetto resourceLogs, crea un
LogEntry per ogni logRecord. A differenza di OTLP, che raggruppa le informazioni sull'origine con una raccolta di singoli log, ogni struttura LogEntry contiene informazioni sull'origine del log e sul log stesso.
Per scoprire di più sulla struttura dei dati di log in formato OTLP,
consulta la pagina logs.proto di OpenTelemetry.
Imposta gli attributi delle risorse OTLP utilizzando il rilevatore di risorse Google Cloud
Per impostare gli attributi delle risorse OTLP nei dati di log OTLP, utilizza un Google Cloud detector di risorse. Questi rilevatori collegano alla telemetria gli attributi della risorsa OTLP che descrivono l'origine della telemetria:
Per l'esportazione basata sul collettore, configura il rilevamento delle risorse come parte dei processori del collettore. Ad esempio, il tuo agente di raccolta potrebbe specificare due rilevatori di risorse:
resourcedetection: detectors: ["env", "gcp"]I seguenti documenti forniscono esempi di raccoglitori che esportano dati delle metriche o di traccia:
- Esegui il deployment e utilizza l'agente di raccolta: Descrive come inviare i dati delle metriche all'API Telemetry.
- Esegui il deployment del raccoglitore OpenTelemetry creato da Google su Google Kubernetes Engine: Descrive come raccogliere dati di log, metriche e tracce durante l'esecuzione su Google Kubernetes Engine. L'agente di raccolta invia i dati di traccia all'API Telemetry e i dati delle metriche a un esportatore Prometheus.
Se utilizzi l'esportazione diretta, utilizza il rilevatore di risorse Google Cloud appropriato per la tua lingua:
Come vengono impostate le etichette delle risorse
Ogni voce di log contiene un insieme di etichette che identificano l'origine della voce di log, ovvero una risorsa monitorata di Logging. Di seguito sono illustrate le etichette per 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"
}
Come mostrato, una risorsa monitorata ha un campo type e uno o più labels.
Come minimo, le etichette di una risorsa monitorata includono project_id o
resource_container.
La tabella seguente descrive le regole utilizzate da Google Cloud Observability per mappare gli attributi delle risorse OTLP
a una risorsa monitorata. La tabella è ordinata. ovvero, se gli attributi della risorsa includono
cloud.platform e il valore è gcp_compute_engine, il tipo di risorsa
monitorata è impostato su gce_instance. Per determinare il valore dell'etichetta di una risorsa monitorata, Google Cloud Observability utilizza un elenco prioritario di attributi della risorsa.
Il valore di un'etichetta è una stringa vuota quando nessuno degli attributi della risorsa è disponibile.
| Attributo e valore OTLP allegati a un record di log |
Tipo di risorsa monitorata Cloud Logging |
Valori delle etichette delle risorse monitorate determinati dagli attributi delle risorse OTLP, in base alla priorità |
|---|---|---|
cloud.platformhas value gcp_compute_engine |
gce_instance |
|
cloud.platformhas value gcp_app_engine |
gae_app |
|
cloud.platformhas value aws_ec2 |
aws_ec2_instance |
|
cloud.platformhas value gcp_bare_metal_solution |
baremetal instance |
|
service.name eservice.instance.idnon sono vuoti |
generic_task |
|
faas.name efaas.instancenon sono vuoti |
generic_task |
|
k8s.cluster.name ek8s.container.namenon sono vuoti |
k8s_container |
|
k8s.cluster.name ek8s.pod.namenon sono vuoti |
k8s_pod |
|
k8s.cluster.name ek8s.node.namenon sono vuoti |
k8s_node |
|
k8s.cluster.namenon è vuoto |
k8s_cluster |
|
| Nessuna altra etichetta corrisponde | generic_node |
|
Deduci il valore dell'etichetta dell'ID progetto o del container di risorse
Tutti i tipi di risorsa monitorata di Logging hanno un'etichetta
project_id o un'etichetta resource_container.
Il sistema cerca i seguenti attributi, in ordine, per determinare il valore di queste etichette:
project_idgcp.project.idgcp.project_idgcp.dest_project_idgcp.resource.containerresource_containercloud.account.idcloud.account_id