3.11. Transform Processor
Transform Processor を使用すると、指定したルールに基づいて、OpenTelemetry Transformation Language (OTTL) でテレメトリーデータを変更できます。このプロセッサーは、シグナルタイプごとに、特定の OTTL コンテキストタイプに関連付けられた一連の条件とステートメントを処理し、設定で指定されたとおりに、受信したテレメトリーデータに対して条件とステートメントを順番に実行します。各条件とステートメントで、さまざまな関数を使用してテレメトリーデータにアクセスおよび変更できます。そのため、条件を使用して関数を実行するかどうかを決定できます。
ステートメントは、すべて OTTL で記述します。さまざまなシグナル、トレース、メトリクス、ログに対して複数のコンテキストステートメントを設定できます。context タイプの値で、関連するステートメントを解釈するときにプロセッサーが使用する必要がある OTTL コンテキストを指定します。
Transform Processor はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
設定の概要
# ...
config:
processors:
transform:
error_mode: ignore
<trace|metric|log>_statements:
- context: <string>
conditions:
- <string>
- <string>
statements:
- <string>
- <string>
- <string>
- context: <string>
statements:
- <string>
- <string>
- <string>
# ...
Transform Processor を使用する場合の OpenTelemetry Collector カスタムリソースの例
# ...
config:
transform:
error_mode: ignore
trace_statements:
- context: resource
statements:
- keep_keys(attributes, ["service.name", "service.namespace", "cloud.region", "process.command_line"])
- replace_pattern(attributes["process.command_line"], "password\\=[^\\s]*(\\s?)", "password=***")
- limit(attributes, 100, [])
- truncate_all(attributes, 4096)
- context: span
statements:
- set(status.code, 1) where attributes["http.path"] == "/health"
- set(name, attributes["http.route"])
- replace_match(attributes["http.target"], "/user/*/list/*", "/user/{userId}/list/{listId}")
- limit(attributes, 100, [])
- truncate_all(attributes, 4096)
# ...
| シグナルステートメント | 有効なコンテキスト |
|---|---|
|
|
|
|
|
|
|
|
|
| 値 | 説明 |
|---|---|
|
| ステートメントによって返されたエラーを無視してログに記録し、次のステートメントに進みます。 |
|
| ステートメントによって返されたエラーを無視してログに記録せず、次のステートメントに進みます。 |
|
| パイプラインにエラーを返し、ペイロードをドロップします。暗黙のデフォルト設定です。 |