Ce document décrit le format dans lequel les étendues de trace sont stockées. Le format des données est généralement conforme aux fichiers proto définis par le protocole OTLP OpenTelemetry. Toutefois, les champs peuvent être convertis d'un type de données spécifique à OpenTelemetry en type de données JSON avant d'être stockés.
L'API Telemetry utilise le protocole OpenTelemetry OTLP.
Ce protocole repose sur les fichiers trace_service.proto et trace.proto. Pour en savoir plus sur les limites de champs, consultez Limites de l'API Telemetry.
L'API Cloud Trace n'utilise pas le protocole OTLP OpenTelemetry et définit un format de données propriétaire. Les données de trace envoyées à votre projet Google Cloud via cette API sont converties au format décrit dans ce document. Toutefois, les limites de l'API Cloud Trace s'appliquent.
Format de stockage des étendues
| Champ | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trace_id |
Identifiant global unique de la trace.
Cet identifiant est une valeur numérique de 128 bits au format d'une chaîne hexadécimale de 16 octets. Exemple : Une valeur numérique égale à zéro n'est pas valide. L' |
||||||||||||||||
span_id |
Obligatoire. Identifiant de la span.
Doit être unique dans une trace.
Cet identifiant est une valeur numérique de 64 bits
mise en forme sous la forme d'une chaîne hexadécimale de 8 octets.
Exemple : Une valeur numérique égale à zéro n'est pas valide. |
||||||||||||||||
trace_state |
Ce champ correspond à l'en-tête Les bibliothèques OpenTelemetry enregistrent automatiquement la valeur de l'en-tête |
||||||||||||||||
parent_span_id |
Facultatif. Identifie l'opération qui a appelé cette étendue. L'ID du délai parent du délai "racine" est défini sur "null". La relation parent-enfant entre les portées est utilisée par les outils de visualisation pour construire la structure arborescente. |
||||||||||||||||
name |
Obligatoire. Nom de l'opération effectuée. Il peut s'agir d'un nom de méthode ou d'un autre nom de site par appel. Pour le même exécutable et le même point de terminaison, l'utilisation d'un nom cohérent facilite la corrélation des spans de trace croisés. Pour connaître les bonnes pratiques, consultez Nommer vos spans. Le nom de la portée est nettoyé et affiché dans la console Google Cloud . |
||||||||||||||||
kind |
Indique l'emplacement de l'opération dans le système. La valeur correspond à l'énumération OpenTelemetry : type de span :
|
||||||||||||||||
start_time |
Obligatoire. Heure de début de la période, à la nanoseconde près. |
||||||||||||||||
start_time_unix_nano |
Heure de début en nanosecondes, selon l'epoch UNIX. |
||||||||||||||||
end_time |
Obligatoire. Heure de fin de la période, à la nanoseconde près. |
||||||||||||||||
end_time_unix_nano |
Heure de fin en nanosecondes, selon l'epoch UNIX. |
||||||||||||||||
receive_time |
Obligatoire. Recevez la durée de la période, à la nanoseconde près. |
||||||||||||||||
receive_time_unix_nano |
Heure de fin en nanosecondes, selon l'epoch UNIX. |
||||||||||||||||
duration_unix_nano |
Durée en nanosecondes. |
||||||||||||||||
attributes |
Chaque attribut est une paire clé/valeur. Les attributs disponibles dépendent de vos données de trace. La structure des attributs suit la norme OpenTelemetry. Pour en savoir plus, consultez OpenTelemetry : Attributs. OpenTelemetry spécifie des conventions sémantiques pour les attributs. Pour en savoir plus sur ces conventions, consultez Conventions sémantiques pour les traces. Voici quelques exemples d'attributs : "yourcompany.your.own.key": "your own value" "network.protocol.name": "http" "network.protocol.version": "1.1" "http.response.status_code": "200" "network.peer.address": "REDACTED" |
||||||||||||||||
dropped_attributes_count |
Nombre d'attributs supprimés. Les attributs peuvent être supprimés si leurs clés sont trop longues ou s'il y a trop d'attributs. Lorsque cette valeur est égale à zéro, aucun attribut n'a été supprimé. Cette valeur peut être définie par l'instrumentation côté client ou par une application. La valeur peut être incrémentée par le serveur. |
||||||||||||||||
events |
Événement ponctuel. Chaque événement contient les champs suivants.
|
||||||||||||||||
dropped_events_count |
Nombre d'événements supprimés. Les événements peuvent être supprimés, car il y en a trop. Lorsque cette valeur est égale à zéro, aucun événement n'a été supprimé. |
||||||||||||||||
links |
Liens associés au segment. Les liens sont des références de cette étendue à une autre étendue dans la même trace ou dans une autre. Les liens permettent de corréler les spans d'une trace avec ceux d'une autre. Par exemple, supposons qu'une opération provoque une opération asynchrone. Dans ce scénario, il existe deux traces : une pour l'opération d'origine et une pour l'opération asynchrone. Vous pouvez utiliser des liens pour corréler les spans dans ces traces. Chaque lien contient les champs suivants.
|
||||||||||||||||
dropped_links_count |
Nombre de liens supprimés. Les liens peuvent être supprimés, car il y en a trop. Lorsque cette valeur est égale à zéro, aucun lien n'a été supprimé. |
||||||||||||||||
status |
Ce champ enregistre l'état d'achèvement d'un segment.
La valeur du sous-champ
Le sous-champ |
||||||||||||||||
resource |
Ce champ identifie l'infrastructure ou le système d'hébergement à partir duquel les données de télémétrie ont été collectées ou auxquelles elles se rapportent. Par exemple, prenons l'exemple d'une application exécutée sur Google Kubernetes Engine. Les attributs de cette ressource peuvent inclure le nom du processus et l'espace de noms. Ce champ contient les sous-champs suivants :
Pour en savoir plus, consultez OpenTelemetry : ressources. |
||||||||||||||||
instrumentation_scope |
Ce champ identifie la bibliothèque ou le composant d'application pour le Par exemple, supposons que l'application "checkout-service" soit déployée sur Cloud Run, ce qui signifie que Une portée client, comme "WritePaymentInfoToStripe", peut être une portée signalée par la "payment-processor-library", qui se trouve dans le service Cloud Run nommé "checkout-service". Ce champ contient les sous-champs suivants :
Pour en savoir plus, consultez OpenTelemetry : champ d'application de l'instrumentation. |
||||||||||||||||
resource_schema_link |
Ces champs doivent être des URL au format chaîne. Ces champs contiennent une URL qui renvoie un fichier de schéma pour une ressource. Le format du fichier de schéma et des données est défini par OpenTelemetry. Pour en savoir plus, consultez OpenTelemetry : Schémas. Ces champs ne peuvent être définis que lorsque vous utilisez l'API Telemetry. Cette API ne valide pas la conformité des données au schéma déclaré. |
||||||||||||||||
scope_schema_link |
Ces champs doivent être des URL au format chaîne. Ces champs contiennent une URL qui renvoie un fichier de schéma pour un champ d'application. Le format du fichier de schéma et des données est défini par OpenTelemetry. Pour en savoir plus, consultez OpenTelemetry : Schémas. Ces champs ne peuvent être définis que lorsque vous utilisez l'API Telemetry. Cette API ne valide pas la conformité des données au schéma déclaré. |
||||||||||||||||
apphub |
Les libellés spécifiques aux applications sont disponibles lorsque les spans de trace sont générés par les applications App Hub, lorsque ces applications s'exécutent sur une infrastructure compatible ou ont été instrumentées. Pour en savoir plus sur la surveillance des applications et sur la disponibilité de ces libellés, consultez la présentation de la surveillance des applications. Ce champ contient les sous-champs
|