En este documento, se describen las reglas que usa Google Cloud Observability para determinar el
tipo de recurso supervisado de Logging para los datos de registro
que se transfieren a través de la API de Telemetry. El recurso supervisado describe la
fuente de los datos de registro y, en un LogEntry, se representa mediante
etiquetas. Google Cloud Observability determina los valores de esas etiquetas mediante los atributos de recursos de OTLP.
Estructura general de los datos de registro con formato OTLP
Cuando los datos de registro se envían a través de la API de Telemetry, estos datos deben tener un formato coherente con OTLP. Google Cloud La estructura general de estos datos es la siguiente:
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"logRecords": [...]
}
]
}
]
Ten en cuenta que OpenTelemetry procesa por lotes los registros individuales, cada uno de los cuales se representa mediante una estructura logRecord, con información sobre la fuente de esos registros, que se representa mediante la estructura resource.
Cuando Google Cloud Observability recibe un objeto resourceLogs, construye uno
LogEntry para cada logRecord. A diferencia de OTLP, que procesa por lotes la información de origen con una colección de registros individuales, cada estructura LogEntry contiene información sobre la fuente del registro y el registro en sí.
Para obtener más información sobre la estructura de los datos de registro con formato OTLP,
consulta logs.proto de OpenTelemetry.
Configura los atributos de recursos de OTLP con el Google Cloud detector de recursos
Para configurar los atributos de recursos de OTLP en tus datos de registro de OTLP, usa un Google Cloud detector de recursos. Estos detectores adjuntan a la telemetría los atributos de recursos de OTLP que describen la fuente de la telemetría:
Para la exportación basada en el recopilador, configura la detección de recursos como parte de los procesadores del recopilador. Por ejemplo, tu recopilador podría especificar dos detectores de recursos:
resourcedetection: detectors: ["env", "gcp"]En los siguientes documentos, se proporcionan ejemplos de recopiladores que exportan datos de métricas o de seguimiento:
- Implementa y usa el recopilador: Describe cómo enviar datos de métricas a la API de Telemetry.
- Implementa el recopilador de OpenTelemetry integrado en Google en Google Kubernetes Engine: Describe cómo recopilar datos de registro, métricas y seguimiento cuando se ejecuta en Google Kubernetes Engine. El recopilador envía datos de seguimiento a la API de Telemetry y datos de métricas a un exportador de Prometheus.
Si usas la exportación directa, usa el detector de recursos adecuado Google Cloud para tu lenguaje:
Cómo se configuran las etiquetas de recursos
Cada entrada de registro contiene un conjunto de etiquetas que identifica la fuente de la entrada de registro, que es también se conoce como un recurso supervisado de Logging. En la siguiente ilustración, se muestran las etiquetas de 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"
}
Como se muestra, un recurso supervisado tiene un campo type y una o más labels.
Como mínimo, las etiquetas de un recurso supervisado incluyen project_id o resource_container.
En la siguiente tabla, se describen las reglas que usa Google Cloud Observability para asignar atributos de recursos de OTLP a un recurso supervisado. La tabla está ordenada. Es decir, si los atributos de recursos incluyen cloud.platform y el valor es gcp_compute_engine, el tipo de recurso supervisado se establece en gce_instance. Para determinar el valor de la etiqueta de un recurso supervisado, Google Cloud Observability usa una lista priorizada de atributos de recursos.
El valor de una etiqueta es una cadena vacía cuando no hay ninguno de los atributos de recursos disponibles.
| Atributo OTLP y valor adjuntos a un registro de registro |
Cloud Logging tipo de recurso supervisado |
Valores de etiquetas de recursos supervisados según lo determinado a partir de los atributos de recursos de OTLP, por prioridad |
|---|---|---|
cloud.platformtiene el valor gcp_compute_engine |
gce_instance |
|
cloud.platformtiene el valor gcp_app_engine |
gae_app |
|
cloud.platformtiene el valor aws_ec2 |
aws_ec2_instance |
|
cloud.platformtiene el valor gcp_bare_metal_solution |
baremetal instance |
|
service.name yservice.instance.idno están vacíos |
generic_task |
|
faas.name yfaas.instanceno están vacíos |
generic_task |
|
k8s.cluster.name yk8s.container.nameno están vacíos |
k8s_container |
|
k8s.cluster.name yk8s.pod.nameno están vacíos |
k8s_pod |
|
k8s.cluster.name yk8s.node.nameno están vacíos |
k8s_node |
|
k8s.cluster.nameno está vacío |
k8s_cluster |
|
| No coincide con ninguna otra etiqueta | generic_node |
|
Infiere el valor de la etiqueta del ID del proyecto o del contenedor de recursos
Todos los tipos de recurso supervisado de Logging tienen una etiqueta project_id o una etiqueta resource_container.
El sistema busca los siguientes atributos, en orden, para determinar el valor de esas etiquetas:
project_idgcp.project.idgcp.project_idgcp.dest_project_idgcp.resource.containerresource_containercloud.account.idcloud.account_id