Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta página fornece informações de referência para os esquemas de tabela opentelemetry (OTLP) e mapeamento de dados usados pelo OTLP de ingestão do Zerobus.
Esquema de tabela
Quando os dados OTLP chegam, o Zerobus Ingest converte cada registro da hierarquia aninhada de recurso/escopo/registro OTLP em uma linha simples e desnormalizada. Os atributos de recurso e as informações de escopo de instrumentação são inseridos diretamente em cada linha, tornando os dados imediatamente consultáveis sem junções.
Todos os campos de atributo (attributes, , para resource.attributesinstrumentation_scope.attributeslogs, body para métricas) são armazenados como metadata colunasVARIANT.
VARIANT é um tipo semiestruturado no Delta Lake que armazena dados JSON preservando os tipos originais.
Cada registro é aumentado com campos específicos do Databricks:
| Campo | Descrição | Fonte |
|---|---|---|
record_id |
Uma ID gerada pelo sistema para identificação exclusiva e classificação ordenada por tempo. | Gerado com base no tempo |
time |
Carimbo de data/hora em microssegundos da época unix. | Carimbo de data/hora (em microssegundos) derivado de start_time_unix_nano (intervalos) ou time_unix_nano (logs, métricas) |
date |
Coluna de partição de data, para filtragem eficiente de intervalo de tempo. | Derivado de time |
service_name |
Coluna de nível superior para filtragem eficiente por nome de serviço, conforme definido na convenção semântica OTel. | Extraído de resource.attributes["service.name"] |
Precisão numérica e tipos de sinais
Devido a algumas limitações do tipo Delta, por favor, esteja atento ao seguinte:
-
Valores inteiros de métricas perdem precisão acima de 2^53.
Gauge,Sum, eExemplarpontos de dados que reportam seu valor comoas_int, um inteiro de 64 bits, são convertidos paraDOUBLE, já que o Zerobus Ingest armazena todos os valores da métrica em uma única coluna de ponto flutuante.DOUBLErepresenta apenas inteiros exatamente até 2^53, cerca de 9 quadrilhões, então valores maioresas_intperdem precisão exata uma vez convertidos. Isso importa principalmente para contadores cumulativos muito grandes, como totais de bytes ou requisições ao longo da vida. - Campos OTLP sem assinatura são armazenados como assinados.
INTeBIGINTsão sempre assinados em Delta, mas OTLP define alguns campos numéricos como não sinalizados (uint32,uint64,fixed64) ou como contadores de largura fixa muito grandes. Campos como , , , etc., são armazenados as-is em uma coluna assinada*_time_unix_nanoflags.dropped_attributes_countINTBIGINTUm valor acima do máximo assinado (i32::MAXparaINT,i64::MAXparaBIGINT) se torna um número negativo em vez de causar erro.
Mapeamento de esquemas
Zerobus Ingest mapeia dados OTLP para colunas de tabela Delta, conforme descrito abaixo.
Desnormalização
No protocolo OTLP, os dados de telemetria são aninhados da mesma forma.
ResourceSpans (or ResourceLogs, ResourceMetrics)
└── Resource (attributes, schema_url)
└── ScopeSpans (or ScopeLogs, ScopeMetrics)
└── InstrumentationScope (name, version, attributes)
└── Span (or LogRecord, Metric)
Zerobus Ingest nivela essa hierarquia para que cada linha contenha o contexto completo:
-
resource: um struct que contém os atributos de recurso (comoVARIANT) edropped_attributes_count. -
resource_schema_url: a URL de esquema do ResourceSpans, ResourceLogs ou ResourceMetrics delimitando. -
instrumentation_scope: um struct que contém o nome do escopo, a versão, os atributos (comoVARIANT) edropped_attributes_count. -
span_schema_url/log_schema_url/metric_schema_url: a URL do esquema do EscopoSpans, ScopeLogs ou ScopeMetrics delimitador.
Codificação de ID
trace_id, span_ide parent_span_id são armazenados como cadeias de caracteres codificadas em hex minúsculas:
-
trace_id: cadeia de caracteres hexáxe de 32 caracteres (16 bytes) -
span_id: cadeia de caracteres hexáxe de 16 caracteres (8 bytes)
Codificação de enumeração
Os valores de enumeração (kind, status.code, aggregation_temporality, severity_number) são armazenados como seus nomes de cadeia de caracteres, conforme definido na especificação OTLP. Por exemplo: SPAN_KIND_SERVER, STATUS_CODE_OK, AGGREGATION_TEMPORALITY_DELTA.
Próximas Etapas
- Configurar clientes do OpenTelemetry (OTLP) para enviar dados ao Catálogo do Unity: configure um SDK ou Coletor openTelemetry para enviar rastreamentos, logs e métricas para a Ingestão do Zerobus.
- Consultar dados opentelemetry: exemplo de consultas SQL para explorar seus dados de telemetria.
- Tratamento de erros de ingestão do Zerobus: solucionar erros comuns e códigos de erro.
- Cotas de Ingeste Zerobus: Revise os limites de throughput e retenção para Ingest.