3.5. エクステンション
エクステンションにより、Collector に機能が追加されます。たとえば、認証をレシーバーとエクスポーターに自動的に追加できます。
3.5.1. BearerTokenAuth Extension
BearerTokenAuth Extension は、HTTP および gRPC プロトコルに基づくレシーバーとエクスポーター用のオーセンティケーターです。OpenTelemetry Collector カスタムリソースを使用して、レシーバーおよびエクスポーター側で BearerTokenAuth Extension のクライアント認証とサーバー認証を設定できます。このエクステンションは、トレース、メトリクス、およびログをサポートします。
BearerTokenAuth Extension はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
BearerTokenAuth Extension 用にクライアント認証とサーバー認証が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: bearertokenauth: scheme: "Bearer" 1 token: "<token>" 2 filename: "<token_file>" 3 receivers: otlp: protocols: http: auth: authenticator: bearertokenauth 4 exporters: otlp: auth: authenticator: bearertokenauth 5 service: extensions: [bearertokenauth] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
3.5.2. OAuth2Client Extension
OAuth2Client Extension は、HTTP および gRPC プロトコルに基づくエクスポーター用のオーセンティケーターです。OAuth2Client Extension のクライアント認証は、OpenTelemetry Collector カスタムリソースの別のセクションで設定されます。このエクステンションは、トレース、メトリクス、およびログをサポートします。
OAuth2Client Extension はテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OAuth2Client Extension 用にクライアント認証が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: oauth2client: client_id: <client_id> 1 client_secret: <client_secret> 2 endpoint_params: 3 audience: <audience> token_url: https://example.com/oauth2/default/v1/token 4 scopes: ["api.metrics"] 5 # tls settings for the token client tls: 6 insecure: true 7 ca_file: /var/lib/mycert.pem 8 cert_file: <cert_file> 9 key_file: <key_file> 10 timeout: 2s 11 receivers: otlp: protocols: http: {} exporters: otlp: auth: authenticator: oauth2client 12 service: extensions: [oauth2client] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
- 1
- ID プロバイダーによって提供されるクライアント ID。
- 2
- ID プロバイダーに対してクライアントを認証するために使用される機密キー。
- 3
- キーと値のペア形式の追加のメタデータ。認証中に転送されます。たとえば
audience
は、アクセストークンの対象を指定し、トークンの受信者を示します。 - 4
- Collector がアクセストークンを要求する OAuth2 トークンエンドポイントの URL。
- 5
- スコープは、クライアントによって要求された特定の権限またはアクセスレベルを定義します。
- 6
- トークンクライアントの Transport Layer Security (TLS) 設定。トークンを要求するときに安全な接続を確立するために使用されます。
- 7
true
に設定すると、安全でないまたは検証されていない TLS 接続を使用して、設定されたトークンエンドポイントを呼び出すように Collector が設定されます。- 8
- TLS ハンドシェイク中にサーバーの証明書を検証するために使用される認証局 (CA) ファイルへのパス。
- 9
- クライアントが必要に応じて OAuth2 サーバーに対して自身を認証するために使用する必要があるクライアント証明書ファイルへのパス。
- 10
- 認証に必要な場合にクライアント証明書と併用されるクライアントの秘密キーファイルへのパス。
- 11
- トークンクライアントのリクエストのタイムアウトを設定します。
- 12
- オーセンティケーター設定を OTLP エクスポーターに割り当てることができます。
3.5.3. File Storage Extension
File Storage Extension は、トレース、メトリクス、およびログをサポートします。このエクステンションは、状態をローカルファイルシステムに保持できます。この拡張機能は、HTTP プロトコルおよび gRPC プロトコルに基づく OpenTelemetry Protocol (OTLP) エクスポーターの送信キューを保持します。このエクステンションには、ディレクトリーへの読み取りおよび書き込みアクセスが必要です。このエクステンションはデフォルトのディレクトリーを使用できますが、デフォルトのディレクトリーがすでに存在している必要があります。
File Storage Extension はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OTLP 送信キューを保持する File Storage Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: file_storage/all_settings: directory: /var/lib/otelcol/mydir 1 timeout: 1s 2 compaction: on_start: true 3 directory: /tmp/ 4 max_transaction_size: 65_536 5 fsync: false 6 exporters: otlp: sending_queue: storage: file_storage/all_settings 7 service: extensions: [file_storage/all_settings] 8 pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
- 1
- テレメトリーデータを保存するディレクトリーを指定します。
- 2
- 保存されたファイルを開く際のタイムアウト期間を指定します。
- 3
- Collector が起動すると圧縮を開始します。省略した場合、デフォルトは
false
です。 - 4
- コンパクターがテレメトリーデータを保存するディレクトリーを指定します。
- 5
- 圧縮トランザクションの最大サイズを定義します。トランザクションサイズを無視するには、ゼロに設定します。省略した場合、デフォルトは
65536
バイトです。 - 6
- 設定すると、各書き込み操作の後にデータベースよる
fsync
呼び出しが強制的に実行されます。これにより、データベースプロセスが中断された場合にデータベースの整合性を確保できますが、パフォーマンスが低下します。 - 7
- OTLP エクスポーターデータをローカルファイルシステムにバッファーリングします。
- 8
- Collector による File Storage Extension を起動します。
3.5.4. OIDC Auth Extension
OIDC Auth Extension は、OpenID Connect (OIDC) プロトコルを使用して、レシーバーが受信した要求を認証します。認証ヘッダー内の ID トークンを発行者に対して検証し、受信した要求の認証コンテキストを更新します。
OIDC Auth Extension はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
OIDC Auth Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: oidc: attribute: authorization 1 issuer_url: https://example.com/auth/realms/opentelemetry 2 issuer_ca_path: /var/run/tls/issuer.pem 3 audience: otel-collector 4 username_claim: email 5 receivers: otlp: protocols: grpc: auth: authenticator: oidc exporters: otlp: endpoint: <endpoint> service: extensions: [oidc] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
3.5.5. Jaeger Remote Sampling Extension
Jaeger Remote Sampling Extension を使用すると、Jaeger のリモートサンプリング API の後にサンプリングストラテジーを提供できるようになります。このエクステンションを設定して、パイプラインの Jaeger Collector などのバッキングリモートサンプリングサーバーに、またはローカルファイルシステムから静的 JSON ファイルにリクエストをプロキシーできます。
Jaeger Remote Sampling Extension はテクノロジープレビューのみ機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Jaeger Remote Sampling Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: jaegerremotesampling: source: reload_interval: 30s 1 remote: endpoint: jaeger-collector:14250 2 file: /etc/otelcol/sampling_strategies.json 3 receivers: otlp: protocols: http: {} exporters: otlp: service: extensions: [jaegerremotesampling] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
Jaeger Remote Sampling ストラテジーファイルの例
{ "service_strategies": [ { "service": "foo", "type": "probabilistic", "param": 0.8, "operation_strategies": [ { "operation": "op1", "type": "probabilistic", "param": 0.2 }, { "operation": "op2", "type": "probabilistic", "param": 0.4 } ] }, { "service": "bar", "type": "ratelimiting", "param": 5 } ], "default_strategy": { "type": "probabilistic", "param": 0.5, "operation_strategies": [ { "operation": "/health", "type": "probabilistic", "param": 0.0 }, { "operation": "/metrics", "type": "probabilistic", "param": 0.0 } ] } }
3.5.6. Performance Profiler Extension
Performance Profiler Extension により、Go net/http/pprof
エンドポイントが有効になります。このエクステンションは、開発者がパフォーマンスプロファイルを収集し、サービスの問題を調査するために使用します。
Performance Profiler Extension はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Performance Profiler Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: pprof: endpoint: localhost:1777 1 block_profile_fraction: 0 2 mutex_profile_fraction: 0 3 save_to_file: test.pprof 4 receivers: otlp: protocols: http: {} exporters: otlp: service: extensions: [pprof] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
- 1
- このエクステンションがリッスンするエンドポイント。
localhost:
を使用してローカルでのみ使用できるようにするか、":"
を使用してすべてのネットワークインターフェイスで使用できるようにします。デフォルト値はlocalhost:1777
です。 - 2
- ブロッキングイベントの一部がプロファイリングされるように設定します。プロファイリングを無効にするには、これを
0
または負の整数に設定します。runtime
パッケージについては、ドキュメント を参照してください。デフォルト値は0
です。 - 3
- プロファイリングされるミューテックス競合イベントの一部を設定します。プロファイリングを無効にするには、これを
0
または負の整数に設定します。runtime
パッケージについては、ドキュメント を参照してください。デフォルト値は0
です。 - 4
- CPU プロファイルを保存するファイルの名前。Collector が起動すると、プロファイリングが開始されます。プロファイリングは、Collector の終了時にファイルに保存されます。
3.5.7. Health Check Extension
Health Check Extension は、OpenTelemetry Collector のステータスをチェックするための HTTP URL を提供します。このエクステンションは、OpenShift の liveness および readiness プローブとして使用できます。
Health Check Extension はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Health Check Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: health_check: endpoint: "0.0.0.0:13133" 1 tls: 2 ca_file: "/path/to/ca.crt" cert_file: "/path/to/cert.crt" key_file: "/path/to/key.key" path: "/health/status" 3 check_collector_pipeline: 4 enabled: true 5 interval: "5m" 6 exporter_failure_threshold: 5 7 receivers: otlp: protocols: http: {} exporters: otlp: service: extensions: [health_check] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
3.5.8. Memory Ballast Extension
Memory Ballast Extension を使用すると、アプリケーションがプロセスのメモリーバラストを設定できるようになります。
Memory Ballast Extension はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Memory Ballast Extension が設定された OpenTelemetry Collector カスタムリソース
# ... config: | extensions: memory_ballast: size_mib: 64 1 size_in_percentage: 20 2 receivers: otlp: protocols: http: {} exporters: otlp: service: extensions: [memory_ballast] pipelines: traces: receivers: [otlp] exporters: [otlp] # ...
3.5.9. zPages エクステンション
zPages エクステンションは、計装されたコンポーネントをリアルタイムでデバッグするためのライブデータを提供する HTTP エンドポイントを提供します。このエクステンションを使用すると、外部のバックエンドに依存せずに、プロセス内の診断やトレースとメトリクスの分析を行うことができます。このエクステンションを使用すると、提供されたエンドポイントで診断情報を監視することで、OpenTelemetry Collector と関連コンポーネントの動作を監視およびトラブルシューティングできます。
zPages エクステンションはテクノロジープレビューのみ機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
zPages エクステンションが設定された OpenTelemetry Collector カスタムリソース
# ...
config: |
extensions:
zpages:
endpoint: "localhost:55679" 1
receivers:
otlp:
protocols:
http: {}
exporters:
debug:
service:
extensions: [zpages]
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
# ...
- 1
- zPages エクステンションを提供するための HTTP エンドポイントを指定します。デフォルトは
localhost:55679
です。
Red Hat build of OpenTelemetry Operator はこのルートを公開しないため、HTTP エンドポイントにアクセスするにはポート転送が必要です。
次の oc
コマンドを実行すると、ポート転送を有効にできます。
$ oc port-forward pod/$(oc get pod -l app.kubernetes.io/name=instance-collector -o=jsonpath='{.items[0].metadata.name}') 55679
Collector は診断用に次の zPages を提供します。
- ServiceZ
-
Collector サービスの概要と、PipelineZ、ExtensionZ、FeatureZ の zPages へのリンクが表示されます。このページには、ビルドバージョンとランタイムに関する情報も表示されます。このページの URL の例は、
http://localhost:55679/debug/servicez
です。 - PipelineZ
-
Collector 内のアクティブなパイプラインに関する詳細情報を表示します。このページには、パイプラインの種類、データ変更の有無、および各パイプラインに関連付けられているレシーバー、プロセッサー、エクスポーターが表示されます。このページの URL の例は、
http://localhost:55679/debug/pipelinez
です。 - ExtensionZ
-
Collector 内の現在アクティブなエクステンションを表示します。このページの URL の例は、
http://localhost:55679/debug/extensionz
です。 - FeatureZ
-
Collector 内で有効になっているフィーチャーゲートと、そのステータスおよび説明を表示します。このページの URL の例は、
http://localhost:55679/debug/featurez
です。 - TraceZ
-
レイテンシー別に分類されたスパンを表示します。使用可能な時間範囲には、0 µs、10 µs、100 µs、1 ms、10 ms、100 ms、1 s、10 s、1 m が含まれます。このページでは、エラーサンプルをすばやく検査することもできます。このページの URL の例は、
http://localhost:55679/debug/tracez
です。