Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page fournit des informations de référence sur les schémas de table OpenTelemetry (OTLP) et le mappage de données utilisés par Zerobus Ingest OTLP.
Schéma de table
Lorsque les données OTLP arrivent, Zerobus Ingest convertit chaque enregistrement de la hiérarchie de ressources/étendue/d’enregistrements OTLP imbriquée en ligne plate et dénormalisée. Les attributs de ressource et les informations d’étendue d’instrumentation sont incorporés directement dans chaque ligne, ce qui rend les données immédiatement interrogeables sans jointures.
Tous les champs d’attribut (, , pour attributes les journaux, resource.attributes pour les métriques) sont stockés sous forme de instrumentation_scope.attributesbodycolonnes. metadataVARIANT
VARIANT est un type semi-structuré dans Delta Lake qui stocke les données JSON tout en préservant les types d’origine.
Chaque enregistrement est augmenté avec des champs spécifiques à Databricks :
| Champ | Description | Origine |
|---|---|---|
record_id |
ID généré par le système pour l’identification unique et le tri chronologique. | Généré en fonction de l’heure |
time |
Horodatage en microsecondes de l’époque Unix. | Horodatage (en microsecondes) dérivé start_time_unix_nano (étendues) ou time_unix_nano (journaux, métriques) |
date |
Colonne de partition de date, pour un filtrage d’intervalle de temps efficace. | Dérivé de time |
service_name |
Colonne de niveau supérieur pour un filtrage efficace par nom de service, tel que défini dans la convention sémantique OTel. | Extrait de resource.attributes["service.name"] |
Précision numérique et types signés
En raison de certaines limitations de type Delta, veuillez tenir compte des éléments suivants :
-
Les valeurs métriques entières perdent leur précision au-delà de 2^53.
Gauge,Sum, etExemplarles points de données qui rapportent leur valeur commeas_int, un entier de 64 bits, sont convertis enDOUBLE, puisque l’ingestion de Zerobus stocke toutes les valeurs des métriques dans une seule colonne en virgule flottante.DOUBLEne représente que des entiers exactement jusqu’à 2^53, soit environ 9 quadrillions, donc des valeurs plus grandesas_intperdent une précision exacte une fois converties. Cela concerne principalement les compteurs cumulatifs très importants, comme les totaux d’octets à vie ou de requêtes. - Les champs OTLP non signés sont stockés comme signés.
INTetBIGINTsont toujours signés en Delta, mais OTLP définit certains champs numériques comme non signés (uint32,uint64,fixed64) ou comme des compteurs à largeur fixe très grands. Des champs tels que*_time_unix_nano,flags,dropped_attributes_count, etc., sont stockés as-is dans une colonne signéeINTBIGINT. Une valeur supérieure au maximum signé (i32::MAXpourINT,i64::MAXpourBIGINT) s’enroule vers un nombre négatif au lieu de provoquer une erreur.
Mappage de schéma
Zerobus Ingest mappe les données OTLP aux colonnes de table Delta, comme décrit ci-dessous.
Dénormalisation
Dans le protocole OTLP, les données de télémétrie sont imbriquées comme suit.
ResourceSpans (or ResourceLogs, ResourceMetrics)
└── Resource (attributes, schema_url)
└── ScopeSpans (or ScopeLogs, ScopeMetrics)
└── InstrumentationScope (name, version, attributes)
└── Span (or LogRecord, Metric)
Zerobus Ingestion aplatit cette hiérarchie afin que chaque ligne contienne le contexte complet :
-
resource: struct contenant les attributs de ressource (en tant queVARIANT) etdropped_attributes_count. -
resource_schema_url: URL de schéma à partir des ResourceSpans, ResourceLogs ou ResourceMetrics englobants. -
instrumentation_scope: struct contenant le nom d’étendue, la version, les attributs (asVARIANT) etdropped_attributes_count. -
span_schema_url/log_schema_url/metric_schema_url: URL de schéma à partir des étendues englobantes, ScopeLogs ou ScopeMetrics.
Encodage d’ID
trace_id, span_idet parent_span_id sont stockés sous forme de chaînes encodées en minuscules :
-
trace_id: chaîne hexadécimal de 32 caractères (16 octets) -
span_id: chaîne hexadécimal de 16 caractères (8 octets)
Encodage enum
Les valeurs enum (kind, , status.code, aggregation_temporalityseverity_number) sont stockées en tant que noms de chaînes définis dans la spécification OTLP. Par exemple : SPAN_KIND_SERVER, STATUS_CODE_OK, AGGREGATION_TEMPORALITY_DELTA.
Étapes suivantes
- Configurez les clients OpenTelemetry (OTLP) pour envoyer des données au catalogue Unity : configurez un kit SDK OpenTelemetry ou un collecteur pour envoyer des traces, des journaux et des métriques à Zerobus Ingest.
- Interroger des données OpenTelemetry : exemples de requêtes SQL pour explorer vos données de télémétrie.
- Gestion des erreurs d’ingestion zerobus : résolvez les erreurs courantes et les codes d’erreur.
- Quotas d’ingestion Zerobus : Examinez les limites de débit et de rétention pour l’ingestion Zerobus.