Informations de référence sur la table OpenTelemetry pour l’ingestion Zerobus

Important

Cette fonctionnalité est en version bêta.

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"]

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 que VARIANT) et dropped_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 (as VARIANT) et dropped_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