3.5. コネクター
コネクターは 2 つのパイプラインを接続します。1 つのパイプラインの終了時にエクスポーターとしてデータを消費し、別のパイプラインの開始時にレシーバーとしてデータを出力します。同じまたは異なるデータ型のデータを消費および出力できます。データを生成および出力して、消費されたデータを要約することも、単にデータを複製またはルーティングすることもできます。
現在、Red Hat build of OpenTelemetry では、次の一般提供およびテクノロジープレビューのコネクターが利用可能です。
3.5.1. Count Connector
Count Connector は、エクスポーターパイプライン内のトレーススパン、トレーススパンイベント、メトリクス、メトリクスデータポイント、およびログレコードをカウントします。
Count Connector はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
デフォルトのメトリクス名は次のとおりです。
-
trace.span.count
-
trace.span.event.count
-
metric.count
-
metric.datapoint.count
-
log.record.count
カスタムメトリクス名を公開することもできます。
Count Connector が有効になっている OpenTelemetry Collector カスタムリソース (CR)
# ... config: receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 exporters: prometheus: endpoint: 0.0.0.0:8889 connectors: count: {} service: pipelines: 1 traces/in: receivers: [otlp] exporters: [count] 2 metrics/out: receivers: [count] 3 exporters: [prometheus] # ...
- 1
- パイプライン内のエクスポーターまたはレシーバーとして Count Connector を正しく設定し、生成されたメトリクスを正しいエクスポーターにエクスポートすることが重要です。
- 2
- スパンをエクスポーターとして受信するように Count Connector を設定します。
- 3
- 生成されたメトリクスをレシーバーとして送信するように Count Connector を設定します。ヒント
Count Connector が期待どおりのメトリクスを生成していない場合は、OpenTelemetry Collector が期待どおりのスパン、メトリクス、およびログを受信しているかどうか、またテレメトリーデータが期待どおりに Count Connector を介して流れているかどうかを確認してください。Debug Exporter を使用して、受信したテレメトリーデータを検査することもできます。
Count Connector は、spans
、spanevents
、metrics
、datapoints
、logs
などのフィールドを使用して設定されている場合に、定義された条件に従ってテレメトリーデータをカウントし、それらのデータをメトリクスとして公開できます。次の例を参照してください。
条件によってスパンをカウントする Count Connector の OpenTelemetry Collector CR の例
# ... config: connectors: count: spans: 1 <custom_metric_name>: 2 description: "<custom_metric_description>" conditions: - 'attributes["env"] == "dev"' - 'name == "devevent"' # ...
Count Connector は、spans
、spanevents
、metrics
、datapoints
、logs
などのフィールドを使用して設定されている場合に、定義された属性に従ってテレメトリーデータをカウントできます。次の例を参照してください。属性のキーはテレメトリーデータに注入されます。欠落している属性については、default_value
フィールドに値を定義する必要があります。
属性によってログをカウントする Count Connector の OpenTelemetry Collector CR の例
# ... config: connectors: count: logs: 1 <custom_metric_name>: 2 description: "<custom_metric_description>" attributes: - key: env default_value: unknown 3 # ...
3.5.2. Routing Connector
Routing Connector は、OpenTelemetry Transformation Language (OTTL) ステートメントとして記述されたリソース属性とルーティング条件に従って、ログ、メトリクス、およびトレースを指定されたパイプラインにルーティングします。
Routing Connector はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Routing Connector が有効になっている OpenTelemetry Collector カスタムリソース
# ... config: connectors: routing: table: 1 - statement: route() where attributes["X-Tenant"] == "dev" 2 pipelines: [traces/dev] 3 - statement: route() where attributes["X-Tenant"] == "prod" pipelines: [traces/prod] default_pipelines: [traces/dev] 4 error_mode: ignore 5 match_once: false 6 service: pipelines: traces/in: receivers: [otlp] exporters: [routing] traces/dev: receivers: [routing] exporters: [otlp/dev] traces/prod: receivers: [routing] exporters: [otlp/prod] # ...
- 1
- コネクターのルーティングテーブル。
- 2
- OTTL ステートメントとして記述されたルーティング条件。
- 3
- 一致するテレメトリーデータをルーティングするための宛先パイプライン。
- 4
- どのルーティング条件も満たさないテレメトリーデータをルーティングするための宛先パイプライン。
- 5
- エラー処理モード:
propagate
値は、エラーをログに記録し、ペイロードをドロップするためのものです。ignore
値は、条件を無視して次の条件との一致を試行するためのものです。silent
値はignore
と同じですが、エラーがログに記録されません。デフォルトはpropagate
です。 - 6
true
に設定すると、ルーティング条件が満たされた最初のパイプラインにのみペイロードがルーティングされます。デフォルトはfalse
です。
3.5.3. Forward Connector
Forward Connector は、同じタイプの 2 つのパイプラインを結合します。
Forward Connector はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Forward Connector が有効になっている OpenTelemetry Collector カスタムリソース
# ... config: receivers: otlp: protocols: grpc: jaeger: protocols: grpc: processors: batch: exporters: otlp: endpoint: tempo-simplest-distributor:4317 tls: insecure: true connectors: forward: {} service: pipelines: traces/regiona: receivers: [otlp] processors: [] exporters: [forward] traces/regionb: receivers: [jaeger] processors: [] exporters: [forward] traces: receivers: [forward] processors: [batch] exporters: [otlp] # ...
3.5.4. Spanmetrics Connector
Spanmetrics Connector は、スパンデータから Request, Error, and Duration (R.E.D) OpenTelemetry メトリクスを集計します。
Spanmetrics Collector が有効になっている OpenTelemetry Collector カスタムリソース
# ...
config:
connectors:
spanmetrics:
metrics_flush_interval: 15s 1
service:
pipelines:
traces:
exporters: [spanmetrics]
metrics:
receivers: [spanmetrics]
# ...
- 1
- 生成されたメトリクスのフラッシュ間隔を定義します。デフォルトは
15s
です。
3.5.5. 関連情報
- OpenTelemetry Protocol (OTLP) (OpenTelemetry ドキュメント)