2.59. OpenTelemetry
OpenTelemetry を使用した分散トレース
2.59.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
使用方法と設定の詳細については、上記リンクを参照してください。
2.59.2. Maven コーディネート リンクのコピーリンクがクリップボードにコピーされました!
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-opentelemetry</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>
2.59.3. Usage リンクのコピーリンクがクリップボードにコピーされました!
拡張機能は Camel OpenTelemetryTracer
を自動的に作成し、それを Camel レジストリーにバインドします。
キャプチャされたトレースをトレースシステムに送信するには、以下のような application.properties
内のいくつかのプロパティーを設定する必要があります。
使用する OpenTelemetry エクスポーターに依存関係を追加する必要があることに注意してください。
現在、Quarkus は Jaeger と OpenTelemetry Protocol Specification (OTLP) をサポートしています。
Jaeger の場合:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId> </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-jaeger</artifactId>
</dependency>
OTLP の場合:
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-opentelemetry-exporter-otlp</artifactId> </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-opentelemetry-exporter-otlp</artifactId>
</dependency>
設定オプションの完全なリストは、Quarkus OpenTelemetry ガイド を参照してください。
application.properties
で quarkus.camel.opentelemetry.exclude-patterns
という名前のプロパティーを設定することで、ルートエンドポイントをトレースから除外できます。以下に例を示します。
Exclude all direct & netty-http endpoints from tracing
# Exclude all direct & netty-http endpoints from tracing
quarkus.camel.opentelemetry.exclude-patterns=direct:*,netty-http:*
2.59.3.1. CDI Bean メソッドの実行の追跡 リンクのコピーリンクがクリップボードにコピーされました!
Camel ルートから CDI Bean メソッドの実行をインストルメント化する場合、そのようなメソッドに io.opentelemetry.extension.annotations.WithSpan
のアノテーションを付ける必要があります。@WithSpan
アノテーションが付けられたメソッドは、新しい Span を作成し、現在のトレースコンテキストと必要な関係を確立します。
たとえば、Camel ルートから CDI Bean をインストルメント化するには、まず適切なメソッドに @WithTrace
のアノテーションが付けられていることを確認します。
次に、Camel ルートで Bean を使用します。
録画したスパンのシーケンスが正しいことを確認するには、短縮された .bean()
EIP DSL メソッドではなく、完全な to("bean:")
エンドポイント URI を使用する必要があります。
CDI インストルメンテーションの詳細は、Quarkus OpenTelemetry ガイドを参照してください。
2.59.4. 追加の Camel Quarkus 設定 リンクのコピーリンクがクリップボードにコピーされました!
設定プロパティー | タイプ | デフォルト |
---|---|---|
ヘッダー名をエンコードする必要があるかどうかを設定します。OpenTelemetry プロパゲーターが、ターゲットシステムと互換性のない形式でヘッダー名の値を設定する可能性がある状況で役立ちます。たとえば、JMS の場合、仕様ではヘッダー名が有効な Java 識別子であることが義務付けられています。 |
|
|
指定されたパターンに一致するエンドポイント URI のトレースを無効にするかどうかを設定します。パターンは次の形式を取ることができます。 1.エンドポイント URI の完全一致。例: platform-http:/some/path 2.ワイルドカードマッチ。E.g platform-http:* 3.エンドポイント URI に一致する正規表現。例: platform-http:/prefix/.* |
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。