Referência da tabela OpenTelemetry para Ingest de Zerobus

Importante

Este recurso está em versão Beta.

Esta página fornece informações de referência para os esquemas de tabelas do OpenTelemetry (OTLP) e o mapeamento de dados usados pelo Zerobus Ingest OTLP.

Esquema da tabela

Quando chegam dados OTLP, o Zerobus Ingest converte cada registo da hierarquia aninhada de recurso/escopo/registo OTLP numa linha plana e desnormalizada. Os atributos dos recursos e a informação do âmbito da instrumentação estão incorporados diretamente em cada linha, tornando os dados imediatamente consultáveis sem joins.

Todos os campos de atributos (attributes, resource.attributes, instrumentation_scope.attributes, body para logs, metadata para métricas) são armazenados como VARIANT colunas. VARIANT é um tipo semi-estruturado em Delta Lake que armazena dados JSON preservando os tipos originais.

Cada registo é complementado com campos específicos de Databricks:

Campo Descrição Fonte
record_id Um ID gerado pelo sistema para identificação única e ordenação temporal. Gerado com base no tempo
time Carimbo temporal em microssegundos da época Unix. Carimbo temporal (em microssegundos) derivado de start_time_unix_nano (spans) ou time_unix_nano (logs, métricas)
date Coluna de partição de datas, para filtragem eficiente por intervalo temporal. Derivado de time
service_name Coluna de topo para filtragem eficiente pelo nome do serviço, conforme definido na convenção semântica OTel. Extraído de resource.attributes["service.name"]

Mapeamento de esquema

O Zerobus Ingest mapeia dados OTLP para colunas da tabela Delta, conforme descrito abaixo.

Desnormalização

No protocolo OTLP, os dados de telemetria são aninhados assim.

ResourceSpans (or ResourceLogs, ResourceMetrics)
  └── Resource (attributes, schema_url)
       └── ScopeSpans (or ScopeLogs, ScopeMetrics)
            └── InstrumentationScope (name, version, attributes)
                 └── Span (or LogRecord, Metric)

O Zerobus Ingest achata esta hierarquia de modo que cada linha contém o contexto completo:

  • resource: Uma estrutura contendo os atributos de recurso (como VARIANT) e dropped_attributes_count.
  • resource_schema_url: A URL do esquema dos ResourceSpans, ResourceLogs ou ResourceMetrics que anexam.
  • instrumentation_scope: Uma estrutura contendo o nome do escopo, a versão, os atributos (como VARIANT), e dropped_attributes_count.
  • span_schema_url / log_schema_url / metric_schema_url: A URL do esquema dos ScopeSpans, ScopeLogs ou ScopeMetrics que os envolvem.

Codificação de ID

trace_id, span_id, e parent_span_id são armazenadas como cadeias minúsculas codificadas em hexadecimais:

  • trace_id: cadeia hexadecimal de 32 caracteres (16 bytes)
  • span_id: cadeia hexadecimal de 16 caracteres (8 bytes)

Codificação enum

Os valores de enum (kind, status.code, aggregation_temporality, severity_number) são armazenados como os seus nomes de cadeia conforme definido na especificação OTLP. Por exemplo: SPAN_KIND_SERVER, STATUS_CODE_OK, AGGREGATION_TEMPORALITY_DELTA.

Passos seguintes