Questo documento descrive le regole utilizzate da Google Cloud Observability per determinare il
tipo di risorsa monitorata Logging per i dati di log
importati dall'API Telemetry. La risorsa monitorata descrive l'
origine dei dati di log e, in un LogEntry, è rappresentata tramite le
etichette. Google Cloud Observability determina i valori di queste etichette utilizzando gli attributi delle risorse OTLP.
Struttura generale dei dati di log in formato 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, 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 saperne di più sulla struttura dei dati di log in formato OTLP,
consulta logs.proto di OpenTelemetry.
Impostare gli attributi delle risorse OTLP utilizzando il Google Cloud rilevatore di risorse
Per impostare gli attributi delle risorse OTLP nei dati di log OTLP, utilizza un Google Cloud rilevatore di risorse. Questi rilevatori collegano alla telemetria gli attributi delle risorse OTLP che descrivono l'origine della telemetria:
Per l'esportazione basata su agenti di raccolta, configura il rilevamento delle risorse come parte dei processori dell'agente di raccolta. Ad esempio, l'agente di raccolta potrebbe specificare due rilevatori di risorse:
resourcedetection: detectors: ["env", "gcp"]I seguenti documenti forniscono esempi di agenti di raccolta che esportano dati di metriche o tracce:
- Deploy and use the collector: descrive come inviare i dati delle metriche all'API Telemetry.
- Deploy Google-Built OpenTelemetry Collector on Google Kubernetes Engine: descrive come raccogliere dati di log, metriche e tracce quando viene eseguito su Google Kubernetes Engine. L'agente di raccolta invia i dati delle tracce all'API Telemetry e i dati delle metriche a un esportatore Prometheus.
Se utilizzi l'esportazione diretta, utilizza il rilevatore di risorse appropriato Google Cloud per la tua lingua:
Come vengono impostate le etichette delle risorse
Ogni voce di log contiene un insieme di etichette che identifica l'origine della voce di log, che è nota anche come risorsa monitorata Logging. La seguente figura illustra 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 una o più labels.
Come minimo, le etichette per 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. Ciò significa che, se gli attributi delle risorse includono cloud.platform e il valore è gcp_compute_engine, il tipo di risorsa monitorata viene impostato su gce_instance. Per determinare il valore dell'etichetta di una risorsa monitorata, Google Cloud Observability utilizza un elenco prioritario di attributi delle risorse.
Il valore di un'etichetta è una stringa vuota quando non è disponibile nessuno degli attributi delle risorse.
| Attributo OTLP e valore allegati a un record di log |
Tipo di risorsa monitorata Cloud Logging |
Valori delle etichette delle risorse monitorate determinati dagli attributi delle risorse OTLP, per priorità |
|---|---|---|
cloud.platformha valore gcp_compute_engine |
gce_instance |
|
cloud.platformha valore gcp_app_engine |
gae_app |
|
cloud.platformha valore aws_ec2 |
aws_ec2_instance |
|
cloud.platformha valore 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 |
|
| Nessun'altra etichetta corrisponde | generic_node |
|
Inferire il valore dell'etichetta ID progetto o contenitore di risorse
Tutti i tipi di risorsa monitorata Logging hanno un'etichetta project_id o 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