メインコンテンツまでスキップ

Zerobus Ingest の OpenTelemetry テーブル参照

このページでは、Zerobus Ingest OTLPで使用されるOpenTelemetry(OTLP)テーブルスキーマとデータマッピングに関する参考情報を提供します。

テーブルスキーマ​

OTLPデータが到着すると、Zerobus IngestはネストされたOTLP/scope/record階層の各レコードをフラットな非正規化行に変換します。 リソース属性と計測範囲情報は各行に直接埋め込まれているため、結合することなくデータを即座にクエリできます。

すべての属性フィールド(ログの場合はattributes 、 resource.attributes 、 instrumentation_scope.attributes 、 body 、メトリクスの場合はmetadata )はVARIANT列として保存されます。VARIANTは Delta Lake の半構造化型で、JSON データを格納しつつ元の型を保持します。

各レコードには、Databricks固有のフィールドが追加されています。

フィールド

説明

ソース

record_id

一意の識別と時間順ソートのための、システム生成ID。

時間に基づいて生成されます

time

Unixエポックからのマイクロ秒単位のタイムスタンプ。

タイムスタンプ(マイクロ秒単位)。 start_time_unix_nano (スパン)またはtime_unix_nano (ログ、メトリクス)から取得。

date

日付パーティション列は、効率的な時間範囲フィルタリングに使用されます。

由来 time

service_name

OTelセマンティック規約で定義されているサービス名による効率的なフィルタリングのための最上位列。

から抽出 resource.attributes["service.name"]

フィールド

説明

ソース

record_id

一意の識別と時間順ソートのための、システム生成ID。

時間に基づいて生成されます

time

Unixエポックからのマイクロ秒単位のタイムスタンプ。

タイムスタンプ(マイクロ秒単位)。 start_time_unix_nano (スパン)またはtime_unix_nano (ログ、メトリクス)から取得。

date

日付パーティション列は、効率的な時間範囲フィルタリングに使用されます。

由来 time

service_name

OTelセマンティック規約で定義されているサービス名による効率的なフィルタリングのための最上位列。

から抽出 resource.attributes["service.name"]

数値の精度と符号付き型​

Delta 型の制限により、以下の点にご注意ください:

  • 整数メトリクス値は 2^53 を超えると精度が失われます。 Gauge、Sum、および Exemplar のデータポイントは、その値を 64 ビット整数である as_int として報告する場合、DOUBLE に変換されます。これは、Zerobus Ingest がすべてのメトリクス値を単一の浮動小数点列に格納するためです。DOUBLE は 2^53(約 9000 兆)までの整数しか正確に表現できないため、それより大きい as_int 値は変換されると正確な精度が失われます。これは主に、生涯バイト数やリクエスト総数などの非常に大きな累積カウンターにおいて重要となります。
  • 符号なしOTLPフィールドは符号付きとして格納されます。 INT と BIGINT はDeltaでは常に符号付きですが、OTLPでは一部の数値フィールドが符号なし (uint32、uint64、fixed64) または非常に大きな固定幅カウンターとして定義されています。*_time_unix_nano、flags、dropped_attributes_count などのフィールドは、符号付きの INT または BIGINT 列にそのまま格納されます。符号付き最大値 (INT の場合は i32::MAX、BIGINT の場合は i64::MAX) を超える値は、エラーにならずに負の数にラップされます。

スキーママッピング​

Zerobus Ingestは、以下に説明するように、OTLPデータをDeltaテーブルの列にマッピングします。

非正規化​

OTLPプロトコルでは、テレメトリデータは次のようにネストされます。

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

Zerobus Ingestはこの階層構造を平坦化し、各行に完全なコンテキストが含まれるようにします。

  • resourceリソース属性( VARIANT )とdropped_attributes_countを含む構造体。
  • resource_schema_url: 囲んでいる ResourceSpans、ResourceLogs、または ResourceMetrics のスキーマ URL。
  • instrumentation_scope: スコープ名、バージョン、属性 ( VARIANTとして)、およびdropped_attributes_countを含む構造体。
  • span_schema_url / log_schema_url / metric_schema_url : 囲んでいる ScopeSpans、ScopeLogs、または ScopeMetrics のスキーマ URL。

IDエンコーディング​

trace_id``span_id 、 parent_span_idは小文字の16進数エンコードされた文字列として格納されます。

  • trace_id: 32文字の16進数文字列(16バイト)
  • span_id: 16文字の16進数文字列(8バイト)

列挙型エンコーディング​

列挙値( kind 、 status.code 、 aggregation_temporality 、 severity_number )は、OTLP仕様で定義されている文字列名として格納されます。例えば、 SPAN_KIND_SERVER 、 STATUS_CODE_OK 、 AGGREGATION_TEMPORALITY_DELTA 。

次のステップ​