Ce document décrit les règles que Google Cloud Observability utilise pour déterminer le
type de ressource surveillée Logging pour les données de journalisation
ingérées par l'API Telemetry. La ressource surveillée décrit la
source des données de journalisation. Dans une LogEntry, elle est représentée à l'aide de
libellés. Google Cloud Observability détermine les valeurs de ces libellés à l'aide des attributs de ressource OTLP.
Structure générale des données de journalisation au format OTLP
Lorsque des données de journalisation sont envoyées à Google Cloud l'aide de l'API Telemetry, ces données doivent être au format OTLP. La structure générale de ces données est la suivante :
"resourceLogs": [
{
"resource": {
"attributes": [...]
},
"scopeLogs": [
{
"logRecords": [...]
}
]
}
]
Notez qu'OpenTelemetry regroupe les journaux individuels, chacun étant représenté par une structure logRecord, avec des informations sur la source de ces journaux, représentée par la structure resource.
Lorsque Google Cloud Observability reçoit un objet resourceLogs, il crée un
LogEntry pour chaque logRecord. Contrairement à OTLP, qui regroupe les informations sur la source avec une collection de journaux individuels, chaque structure LogEntry contient des informations sur la source du journal et le journal lui-même.
Pour en savoir plus sur la structure des données de journalisation au format OTLP,
consultez la section logs.proto d'OpenTelemetry.
Définir les attributs de ressource OTLP à l’aide du Google Cloud détecteur de ressources
Pour définir les attributs de ressource OTLP dans vos données de journalisation OTLP, utilisez un Google Cloud détecteur de ressources. Ces détecteurs associent à la télémétrie les attributs de ressource OTLP qui décrivent la source de la télémétrie :
Pour l'exportation basée sur un collecteur, configurez la détection des ressources dans le cadre des processeurs du collecteur. Par exemple, votre collecteur peut spécifier deux détecteurs de ressources :
resourcedetection: detectors: ["env", "gcp"]Les documents suivants fournissent des exemples de collecteurs qui exportent des données de métriques ou de trace :
- Déployer et utiliser le collecteur: explique comment envoyer des données de métriques à l'API Telemetry.
- Déployer le collecteur OpenTelemetry conçu par Google sur Google Kubernetes Engine: explique comment collecter des données de journalisation, de métriques et de trace lorsque vous exécutez des applications sur Google Kubernetes Engine. Le collecteur envoie des données de trace à l'API Telemetry et des données de métriques à un exportateur Prometheus.
Si vous utilisez l'exportation directe, utilisez le détecteur de ressources approprié Google Cloud pour votre langage :
Définir les libellés de ressource
Chaque entrée de journal contient un ensemble de libellés qui identifient la source de l'entrée de journal, également appelée une ressource surveillée Logging. L'illustration suivante présente les libellés 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"
}
Comme indiqué, une ressource surveillée comporte un champ type et un ou plusieurs labels.
Au minimum, les libellés d'une ressource surveillée incluent project_id ou resource_container.
Le tableau suivant décrit les règles que Google Cloud Observability utilise pour mapper les attributs de ressource OTLP à une ressource surveillée. Le tableau est ordonné. Autrement dit, si les attributs de ressource incluent cloud.platform et que la valeur est gcp_compute_engine, le type de ressource surveillée est défini sur gce_instance. Pour déterminer la valeur du libellé d'une ressource surveillée, Google Cloud Observability utilise une liste priorisée d'attributs de ressource.
La valeur d'un libellé est une chaîne vide lorsqu'aucun des attributs de ressource n'est disponible.
| Attribut OTLP et valeur associés à un enregistrement de journal |
Cloud Logging type de ressource surveillée |
Valeurs des libellés de ressource surveillée déterminées à partir des attributs de ressource OTLP, par ordre de priorité |
|---|---|---|
cloud.platforma la valeur gcp_compute_engine |
gce_instance |
|
cloud.platforma la valeur gcp_app_engine |
gae_app |
|
cloud.platforma la valeur aws_ec2 |
aws_ec2_instance |
|
cloud.platforma la valeur gcp_bare_metal_solution |
baremetal instance |
|
service.name etservice.instance.idne sont pas vides |
generic_task |
|
faas.name etfaas.instancene sont pas vides |
generic_task |
|
k8s.cluster.name etk8s.container.namene sont pas vides |
k8s_container |
|
k8s.cluster.name etk8s.pod.namene sont pas vides |
k8s_pod |
|
k8s.cluster.name etk8s.node.namene sont pas vides |
k8s_node |
|
k8s.cluster.namen'est pas vide |
k8s_cluster |
|
| Aucun autre libellé ne correspond | generic_node |
|
Déduire la valeur du libellé d'ID de projet ou de conteneur de ressources
Tous les types de ressources surveillées Logging comportent un libellé project_id ou un libellé resource_container.
Le système recherche les attributs suivants, dans l'ordre, pour déterminer la valeur de ces libellés :
project_idgcp.project.idgcp.project_idgcp.dest_project_idgcp.resource.containerresource_containercloud.account.idcloud.account_id