OpenTelemetry ログとの統合

OpenTelemetry, 経由でログを Instana に取り込むには、アドオンや追加の設定が必要になる場合があります。 詳細については、 「ライセンスおよび利用権の要件」 を参照してください。

ホスト・エージェントが OpenTelemetry ログ・データを受信すると、いくつかの軽微な例外が表示されます。 OpenTelemetry のログは、以下の方法を使用して Instana バックエンドに取り込まれます:

  1. ログを、 OTLPotlp-acceptor プロトコルを使用して直接 Instana バックエンドに送信するか、 OpenTelemetry コレクターを経由して送信します。

  2. Instana のデータを収集する Instana エージェントを使用して、ログを取り込みます。

    OpenTelemetry Instana へのログ取り込み

Opentelemetryのログデータモデル

OpenTelemetry,では、ログレコードは以下のフィールドで構成されます:

フィールド名 説明
タイムスタンプ イベントが発生した時刻。
ObservedTimestamp イベントが監視された時刻。
TraceId 要求トレース ID。
SpanId 要求スパン ID。
TraceFlags W3C トレース・フラグ。
SeverityText 重大度テキストまたはログ・レベル。
SeverityNumber 重大度の数値。
Body ログ・レコードの本文。
リソース ログのソースを記述します。
InstrumentationScope ログを出力したリソースの一部または同じフィーチャー内のメトリック、トレース、またはログ・レコードのグループを記述します。
属性 イベントに関する追加情報。

出典: OpenTelemetry ログレコードの定義

以下のフィールドは、 Instana 向けに OpenTelemetry のログデータを変換するために使用されます:

  • TraceIdSpanId、および Body フィールドは、変更を加えることなく組み込まれています。
  • ログ記録の対象となるタイムスタンプは、 Instana へのログレコードの取り込み時のタイムスタンプです。
  • ログ・レベルは主に、フォールバックとして SeverityText フィールドおよび SeverityNumber フィールドによって決定されます。 SeverityText および SeverityNumber フィールドからログ・レベルを識別できない場合、ログ・レベルは UNKNOWNに設定されます。
  • 「リソース」 フィールドは、ログに関連付けられているエンティティー、入出力ストリーム、およびホスト情報を識別するために使用されます。
  • これらの属性は、Instana のカスタムタグを通じて、キーと値のペアとしてサポートされています。
  • 属性 」フィールドにある例外 exception.stacktrace 属性 exception.typeexception.message、、 も、 Instana でサポートされています。

Instana が OpenTelemetry のログを受け入れるには、ホストまたはエンティティの識別情報が必要です。

この要件を満たすには、次のいずれかの方法を使用してください:

  1. ログの 「リソース 」フィールドで、以下の属性のいずれかを設定してください:
    process.id
    faas.id
    service.instance.id
    container.id
    aws.ecs.container.arn
    k8s.job.uid
    k8s.cronjob.uid
    k8s.pod.uid
    k8s.node.uid
    device.id
    host.id
  2. ヘッダー x-instana-host を設定します。