Ce document explique comment les données de journal envoyées à votre Google Cloud projet
à l'aide de l'API Telemetry (OTLP) sont mappées à une structure Cloud Logging. Cette API implémente le protocole OpenTelemetry Line. Vous pouvez envoyer
des données à cette API lorsque vous instrumentez vos applications avec un
otlphttp exportateur et un
collecteur OpenTelemetry, ou lorsque vous utilisez les SDK OpenTelemetry.
OpenTelemetry est un projet Open Source compatible avec Google CloudGoogle Cloud des ingénieurs chargés d'assurer la prise en charge de l'ingestion et de la visualisation de votre télémétrie.
Structure générale des données de journal au format OTLP
Lorsque des données de journal sont envoyées à Google Cloud à l'aide de l'API Telemetry, ces données doivent être dans un format compatible avec 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 journal au format OTLP,
consultez logs.proto OpenTelemetry.
Traitement des données de journal au format OTLP
Lorsque vous envoyez une structure resourceLogs OTLP à l'API Telemetry, Google Cloud Observability effectue les actions suivantes :
Pour chaque
logRecord, le système crée uneLogEntry.Les documents suivants décrivent comment le système remplit la
LogEntryà partir des données de journal OTLP :- Mappage des enregistrements de journal OTLP aux entrée de journal journal.
- Mappage des attributs OTLP aux types de ressources Cloud Logging.
Étant donné que chaque
LogEntrycontient des informations sur le type de ressource Cloud Logging correspondant, chaqueLogEntrypeut être plus volumineuse que lelogRecordOTLP correspondant.La conversion de la structure
resourceLogsOTLP en une série de structuresLogEntrypeut être avec pertes. Autrement dit, vous ne pourrez peut-être pas convertir la structureLogEntryen champsresourceetlogRecordd'origine.La
LogEntryest acheminée vers des récepteurs agrégés dans la hiérarchie du projet et vers des récepteurs dans le projet, exactement comme si l'entrée de journal était envoyée à votre projet à l'aide de l'API Cloud Logging.
Bonnes pratiques
Lorsque vous instrumentez vos applications pour envoyer des données de trace à votre Google Cloud projet, nous vous recommandons d'utiliser un exportateur qui écrit des données au format OTLP dans un collecteur, qui envoie ensuite vos données de trace à l'API Telemetry. Dans votre collecteur, spécifiez uniquement l'URL racine :
exporters:
otlphttp:
encoding: proto
endpoint: https://telemetry.googleapis.com
OpenTelemetry détecte le type de données et ajoute automatiquement /v1/traces, /v1/metrics ou /v1/logs, selon le cas. Pour en savoir plus, consultez
Requête OTLP/HTTP.
Pour obtenir des exemples d'exportation de données de trace ou de métriques vers l'API Telemetry, consultez les documents suivants :
- Présentation des exemples d'instrumentation basés sur un collecteur.
- Présentation de l'ingestion de métriques OTLP.
Lorsque vous ne pouvez pas utiliser de collecteur, vous pouvez utiliser une bibliothèque OpenTelemetry contenant un exportateur OTLP intégré pour envoyer des données de télémétrie à l'API Telemetry. Pour savoir comment exporter directement des données de trace, consultez Exportateur Cloud Trace vers le point de terminaison OTLP.
Authentification
Vous devez configurer vos exportateurs avec les identifiants nécessaires pour envoyer
des données à votre Google Cloud projet. Par exemple, lorsque vous utilisez des collecteurs, vous utilisez généralement aussi l'extension googleclientauth pour vous authentifier avec des identifiants Google.
Pour obtenir un exemple d'authentification lors de l'exportation directe de données de trace, consultez Configurer l'authentification. Cet exemple montre comment configurer l'exportateur avec vos Google Cloud identifiants par défaut de l'application (ADC) et ajouter une bibliothèque d'authentification Google spécifique à la langue à votre application.
Cloud Logging et résidence des données
Par défaut, Cloud Logging achemine les entrées de journal provenant d'un projet vers des buckets de journaux créés par le système. Les buckets de journaux sont des ressources régionales. Vous pouvez mettre à jour le récepteur de journal par défaut pour envoyer des entrées de journal à un bucket de journaux personnalisé situé à l'emplacement de votre choix. Pour en savoir plus, consultez Régionaliser vos journaux.
Cloud Logging fournit des paramètres que vous pouvez configurer pour les organisations et les dossiers. Ces paramètres spécifient l'emplacement des nouveaux buckets de journaux créés par le système, si ces buckets de journaux utilisent des clés de chiffrement gérées par le client (CMEK) et la configuration du récepteur de journal par défaut. Pour en savoir plus, consultez Prise en charge des organisations et des dossiers.
Où afficher les données ingérées ?
Vous pouvez afficher vos données de journal à l'aide des pages Explorateur de journaux et Analyse Observability. Pour en savoir plus, consultez les pages suivantes :
Limites
Cette section décrit les limites. Elle explique également comment Google Cloud Observability gère certains types de données.
Limites
| Description | Valeur | Remarques |
|---|---|---|
| Nombre maximal de journaux par requête OTLP | 8192 | Fait référence au nombre maximal de logRecords dans une structure
OTLP resourceLogs. Limite. |
| Taille maximale de chaque requête | 5 Mio | Limite. |
Taille maximale d'une LogEntrycréée à partir d'un enregistrement de journal OTLP |
256 Kio | Cloud Logging tronque ou supprime les données d'un enregistrement de journal OTLP si nécessaire. Limite. |
| Longueur maximale d'une clé d'attribut | 512 octets | Les clés de libellé surdimensionnées sont tronquées lorsque l'enregistrement de journal OTLP est converti
en LogEntry. Limite. |
| Longueur maximale d'une valeur d'attribut | 64 Kio | Valeurs de libellé surdimensionnées lorsque l'enregistrement de journal OTLP est converti en
LogEntry. Limite. |
| Profondeur maximale d'imbrication des attributs | 5 | Les attributs qui dépassent cette limite sont tronqués lorsque l'enregistrement de journal OTLP est
converti en LogEntry. |
| Nombre maximal d'octets d'ingestion de journaux par minute | 2,4 Go pour les régions suivantes : 300 Mo pour toutes les autres régions. |
Quota. |
Comportement
Lorsque le numéro de gravité OpenTelemetry et le texte de gravité sont définis, le système utilise le numéro de gravité pour déterminer le niveau de gravité Cloud Logging. Si l'enregistrement OTLP ne contient pas d'informations sur la gravité, le niveau de gravité Cloud Logging est défini sur
DEFAULT.Lorsqu'un enregistrement OTLP contient des clés d'attribut en double, le système conserve la première clé et supprime les attributs avec des clés en double.
Le système convertit les attributs associés à un enregistrement de journal en chaîne. Pour obtenir un exemple, consultez le champ Libellés.
Les noms de journaux doivent être compatibles avec les URL ou être encodés au format URL lors de l'ingestion. Pour en savoir plus sur la définition des noms de journaux, consultez Définition des champs
LogEntry.