4.6. 拡張機能
エクステンションにより、Collector に機能が追加されます。たとえば、認証をレシーバーとエクスポーターに自動的に追加できます。
現在、Red Hat build of OpenTelemetry では、次の一般提供およびテクノロジープレビューの拡張機能が利用可能です。
4.6.1. BearerTokenAuth Extension リンクのコピーリンクがクリップボードにコピーされました!
BearerTokenAuth Extension は、HTTP および gRPC プロトコルに基づくレシーバーとエクスポーター用のオーセンティケーターです。OpenTelemetry Collector カスタムリソースを使用して、レシーバーおよびエクスポーター側で BearerTokenAuth Extension のクライアント認証とサーバー認証を設定できます。このエクステンションは、トレース、メトリクス、およびログをサポートします。
BearerTokenAuth Extension 用にクライアント認証とサーバー認証が設定された OpenTelemetry Collector カスタムリソース
# ...
config:
extensions:
bearertokenauth:
scheme: "Bearer"
token: "<token>"
filename: "<token_file>"
receivers:
otlp:
protocols:
http:
auth:
authenticator: bearertokenauth
exporters:
otlp:
auth:
authenticator: bearertokenauth
service:
extensions: [bearertokenauth]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
# ...
4.6.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>
client_secret: <client_secret>
endpoint_params:
audience: <audience>
token_url: https://example.com/oauth2/default/v1/token
scopes: ["api.metrics"]
# tls settings for the token client
tls:
insecure: true
ca_file: /var/lib/mycert.pem
cert_file: <cert_file>
key_file: <key_file>
timeout: 2s
receivers:
otlp:
protocols:
http: {}
exporters:
otlp:
auth:
authenticator: oauth2client
service:
extensions: [oauth2client]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
# ...
- 1
- アイデンティティープロバイダーによって提供されるクライアント ID。
- 2
- アイデンティティープロバイダーに対してクライアントを認証するために使用される機密キー。
- 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 エクスポーターに割り当てることができます。
4.6.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
timeout: 1s
compaction:
on_start: true
directory: /tmp/
max_transaction_size: 65_536
fsync: false
exporters:
otlp:
sending_queue:
storage: file_storage/all_settings
service:
extensions: [file_storage/all_settings]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
# ...
- 1
- テレメトリーデータを保存するディレクトリーを指定します。
- 2
- 保存されたファイルを開く際のタイムアウト期間を指定します。
- 3
- Collector が起動すると圧縮を開始します。省略した場合、デフォルトは
falseです。 - 4
- コンパクターがテレメトリーデータを保存するディレクトリーを指定します。
- 5
- 圧縮トランザクションの最大サイズを定義します。トランザクションサイズを無視するには、ゼロに設定します。省略した場合、デフォルトは
65536バイトです。 - 6
- 設定すると、各書き込み操作の後にデータベースよる
fsync呼び出しが強制的に実行されます。これにより、データベースプロセスが中断された場合にデータベースの整合性を確保できますが、パフォーマンスが低下します。 - 7
- OTLP エクスポーターデータをローカルファイルシステムにバッファーリングします。
- 8
- Collector による File Storage Extension を起動します。
4.6.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
issuer_url: https://example.com/auth/realms/opentelemetry
issuer_ca_path: /var/run/tls/issuer.pem
audience: otel-collector
username_claim: email
receivers:
otlp:
protocols:
grpc:
auth:
authenticator: oidc
exporters:
debug: {}
service:
extensions: [oidc]
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
# ...
4.6.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
remote:
endpoint: jaeger-collector:14250
file: /etc/otelcol/sampling_strategies.json
receivers:
otlp:
protocols:
http: {}
exporters:
debug: {}
service:
extensions: [jaegerremotesampling]
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
# ...
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
}
]
}
}
4.6.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
block_profile_fraction: 0
mutex_profile_fraction: 0
save_to_file: test.pprof
receivers:
otlp:
protocols:
http: {}
exporters:
debug: {}
service:
extensions: [pprof]
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
# ...
- 1
- このエクステンションがリッスンするエンドポイント。
localhost:を使用してローカルでのみ使用できるようにするか、":"を使用してすべてのネットワークインターフェイスで使用できるようにします。デフォルト値はlocalhost:1777です。 - 2
- ブロッキングイベントの一部がプロファイリングされるように設定します。プロファイリングを無効にするには、これを
0または負の整数に設定します。runtimeパッケージについては、ドキュメント を参照してください。デフォルト値は0です。 - 3
- プロファイリングされるミューテックス競合イベントの一部を設定します。プロファイリングを無効にするには、これを
0または負の整数に設定します。runtimeパッケージについては、ドキュメント を参照してください。デフォルト値は0です。 - 4
- CPU プロファイルを保存するファイルの名前。Collector が起動すると、プロファイリングが開始されます。プロファイリングは、Collector の終了時にファイルに保存されます。
4.6.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"
tls:
ca_file: "/path/to/ca.crt"
cert_file: "/path/to/cert.crt"
key_file: "/path/to/key.key"
path: "/health/status"
check_collector_pipeline:
enabled: true
interval: "5m"
exporter_failure_threshold: 5
receivers:
otlp:
protocols:
http: {}
exporters:
debug: {}
service:
extensions: [health_check]
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
# ...
4.6.8. zPages エクステンション リンクのコピーリンクがクリップボードにコピーされました!
zPages エクステンションは、計装されたコンポーネントをリアルタイムでデバッグするためのライブデータを提供する HTTP エンドポイントを提供します。このエクステンションを使用すると、外部のバックエンドに依存せずに、プロセス内の診断やトレースとメトリクスの分析を行うことができます。このエクステンションを使用すると、提供されたエンドポイントで診断情報を監視することで、OpenTelemetry Collector と関連コンポーネントの動作を監視およびトラブルシューティングできます。
zPages エクステンションはテクノロジープレビューのみ機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
zPages エクステンションが設定された OpenTelemetry Collector カスタムリソース
# ...
config:
extensions:
zpages:
endpoint: "localhost:55679"
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です。