OpenTelemetry ログとの統合
OpenTelemetry, 経由でログを Instana に取り込むには、アドオンや追加の設定が必要になる場合があります。 詳細については、 「ライセンスおよび利用権の要件」 を参照してください。
ホスト・エージェントが OpenTelemetry ログ・データを受信すると、いくつかの軽微な例外が表示されます。 OpenTelemetry のログは、以下の方法を使用して Instana バックエンドに取り込まれます:
ログを、 OTLP
otlp-acceptorプロトコルを使用して直接 Instana バックエンドに送信するか、 OpenTelemetry コレクターを経由して送信します。Instana のデータを収集する Instana エージェントを使用して、ログを取り込みます。
Opentelemetryのログデータモデル
OpenTelemetry,では、ログレコードは以下のフィールドで構成されます:
| フィールド名 | 説明 |
|---|---|
| タイムスタンプ | イベントが発生した時刻。 |
| ObservedTimestamp | イベントが監視された時刻。 |
| TraceId | 要求トレース ID。 |
| SpanId | 要求スパン ID。 |
| TraceFlags | W3C トレース・フラグ。 |
| SeverityText | 重大度テキストまたはログ・レベル。 |
| SeverityNumber | 重大度の数値。 |
| Body | ログ・レコードの本文。 |
| リソース | ログのソースを記述します。 |
| InstrumentationScope | ログを出力したリソースの一部または同じフィーチャー内のメトリック、トレース、またはログ・レコードのグループを記述します。 |
| 属性 | イベントに関する追加情報。 |
以下のフィールドは、 Instana 向けに OpenTelemetry のログデータを変換するために使用されます:
- TraceId、 SpanId、および Body フィールドは、変更を加えることなく組み込まれています。
- ログ記録の対象となるタイムスタンプは、 Instana へのログレコードの取り込み時のタイムスタンプです。
- ログ・レベルは主に、フォールバックとして SeverityText フィールドおよび SeverityNumber フィールドによって決定されます。 SeverityText および SeverityNumber フィールドからログ・レベルを識別できない場合、ログ・レベルは
UNKNOWNに設定されます。 - 「リソース」 フィールドは、ログに関連付けられているエンティティー、入出力ストリーム、およびホスト情報を識別するために使用されます。
- これらの属性は、Instana のカスタムタグを通じて、キーと値のペアとしてサポートされています。
- 「属性 」フィールドにある例外
exception.stacktrace属性exception.type、exception.message、、 も、 Instana でサポートされています。
Instana が OpenTelemetry のログを受け入れるには、ホストまたはエンティティの識別情報が必要です。
この要件を満たすには、次のいずれかの方法を使用してください:
- ログの 「リソース 」フィールドで、以下の属性のいずれかを設定してください:
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 - ヘッダー
x-instana-hostを設定します。