第3章 Red Hat build of OpenTelemetry の設定とデプロイ
Red Hat build of OpenTelemetry Operatorは、Red Hat build of OpenTelemetry リソースを作成およびデプロイするときに使用されるアーキテクチャーと設定を定義するカスタムリソース定義 (CRD) ファイルを使用します。デフォルト設定をインストールするか、ファイルを変更できます。
3.1. OpenTelemetry Collector 設定オプション リンクのコピーリンクがクリップボードにコピーされました!
OpenTelemetry Collector は、テレメトリーデータにアクセスする 5 種類のコンポーネントで構成されます。
- レシーバー
- レシーバー (プッシュまたはプルベース) は、データが Collector に到達する方法です。通常、レシーバーは指定された形式のデータを受け入れて内部形式に変換し、それを適用可能なパイプラインで定義されるプロセッサーおよびエクスポーターに渡します。デフォルトでは、レシーバーは設定されていません。1 つまたは複数のレシーバーを設定する必要があります。レシーバーは 1 つまたは複数のデータソースをサポートする場合があります。
- プロセッサー
- オプション: プロセッサーは、データを受信してからエクスポートするまでにデータを処理します。デフォルトでは、プロセッサーは有効になっていません。プロセッサーは、すべてのデータソースに対して有効にする必要があります。すべてのプロセッサーがすべてのデータソースをサポートするわけではありません。データソースによっては、複数のプロセッサーが有効になっている可能性があります。プロセッサーの順序が重要であることに注意してください。
- エクスポーター
- エクスポーター (プッシュまたはプルベース) は、データを 1 つ以上のバックエンドまたは宛先に送信する方法です。デフォルトでは、エクスポーターは設定されていません。1 つまたは複数のエクスポーターを設定する必要があります。エクスポーターは 1 つ以上のデータソースをサポートできます。エクスポーターはデフォルト設定で使用できますが、多くの場合、少なくとも宛先およびセキュリティー設定を指定するための設定が必要です。
- コネクター
- コネクターは 2 つのパイプラインを接続します。1 つのパイプラインの終了時にエクスポーターとしてデータを消費し、別のパイプラインの開始時にレシーバーとしてデータを出力します。同じまたは異なるデータ型のデータを消費および出力できます。データを生成および出力して、消費されたデータを要約することも、単にデータを複製またはルーティングすることもできます。
- エクステンション
- エクステンションにより、Collector に機能が追加されます。たとえば、認証をレシーバーとエクスポーターに自動的に追加できます。
カスタムリソース YAML ファイルで、コンポーネントのインスタンスを複数定義できます。コンポーネントは、設定した後に YAML ファイルの spec.config.service セクションで定義されたパイプラインで有効にする必要があります。ベストプラクティスとしては、必要なコンポーネントのみを有効にします。
OpenTelemetry Collector カスタムリソースファイルの例
apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
name: cluster-collector
namespace: tracing-system
spec:
mode: deployment
observability:
metrics:
enableMetrics: true
config: |
receivers:
otlp:
protocols:
grpc:
http:
processors:
exporters:
otlp:
endpoint: jaeger-production-collector-headless.tracing-system.svc:4317
tls:
ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt"
prometheus:
endpoint: 0.0.0.0:8889
resource_to_telemetry_conversion:
enabled: true # by default resource attributes are dropped
service:
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [jaeger]
metrics:
receivers: [otlp]
processors: []
exporters: [prometheus]
- 1
- コンポーネントが設定されていても、
serviceセクションで定義されていない場合、そのコンポーネントは有効になりません。
| パラメーター | 説明 | 値 | デフォルト |
|---|---|---|---|
| レシーバーは、データが Collector に到達する方法です。デフォルトでは、レシーバーは設定されていません。設定が有効とみなされるためには、少なくとも 1 つの有効なレシーバーが必要です。レシーバーは、パイプラインに追加して有効にされます。 |
| None |
| プロセッサーは、データの受信とエクスポートの間にデータを処理します。デフォルトでは、プロセッサーは有効になっていません。 |
| None |
| エクスポーターは、1 つ以上のバックエンドまたは宛先にデータを送信します。デフォルトでは、エクスポーターは設定されていません。設定が有効とみなされるためには、少なくとも 1 つの有効なエクスポーターが必要です。エクスポーターは、パイプラインに追加して有効にされます。エクスポーターはデフォルト設定で使用できますが、多くの場合、少なくとも宛先およびセキュリティー設定を指定するための設定が必要です。 |
| None |
| コネクターはパイプラインのペアを結合します。つまり、パイプラインの終わりのエクスポーターとしてデータを消費し、パイプラインの開始レシーバーとしてデータを出力します。これを使用して、消費されたデータを要約、複製、またはルーティングすることができます。 |
| None |
| テレメトリーデータの処理を含まないタスク用のオプションのコンポーネント。 |
| None |
|
コンポーネントは、それらを | ||
|
レシーバーは、それらを | None | |
|
プロセッサーは、それらを | None | |
|
エクスポーターは、それらを | None | |
|
メトリクスのレシーバーを有効にするには、 | None | |
|
メトリクスのプロセッサーを有効にするには、 | None | |
|
メトリクスのエクスポーターを有効にするには、 | None |
3.1.1. OpenTelemetry Collector コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
3.1.1.1. レシーバー リンクのコピーリンクがクリップボードにコピーされました!
レシーバーはデータをCollector に入れます。
3.1.1.1.1. OTLP レシーバー リンクのコピーリンクがクリップボードにコピーされました!
OTLP レシーバーは、OpenTelemetry Protocol (OTLP) を使用してトレースとメトリクスを取り込みます。
OTLP レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
client_ca_file: client.pem
reload_interval: 1h
http:
endpoint: 0.0.0.0:4318
tls:
service:
pipelines:
traces:
receivers: [otlp]
metrics:
receivers: [otlp]
- 1
- OTLP gRPC エンドポイント。省略した場合、デフォルトの
0.0.0.0:4317が使用されます。 - 2
- サーバー側の TLS 設定。TLS 証明書へのパスを定義します。省略した場合、TLS は無効になります。
- 3
- サーバーがクライアント証明書を検証する TLS 証明書へのパス。これにより、
TLSConfigでClientCAsおよびClientAuthの値がRequireAndVerifyClientCertに設定されます。詳細は、Configof the Golang TLS package を参照してください。 - 4
- 証明書をリロードする間隔を指定します。この値が設定されていない場合、証明書はリロードされません。
reload_intervalは、ns、us(またはµs)、ms、s、m、hなどの有効な時間単位を含む文字列を受け入れます。 - 5
- OTLP HTTP エンドポイント。デフォルト値は
0.0.0.0:4318です。 - 6
- サーバー側の TLS 設定。詳細は、
grpcプロトコル設定セクションを参照してください。
3.1.1.1.2. Jaeger レシーバー リンクのコピーリンクがクリップボードにコピーされました!
Jaeger レシーバーは、Jaeger 形式でトレースを取り込みます。
Jaeger レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
jaeger:
protocols:
grpc:
endpoint: 0.0.0.0:14250
thrift_http:
endpoint: 0.0.0.0:14268
thrift_compact:
endpoint: 0.0.0.0:6831
thrift_binary:
endpoint: 0.0.0.0:6832
tls:
service:
pipelines:
traces:
receivers: [jaeger]
- 1
- Jaeger gRPC エンドポイント。省略した場合、デフォルトの
0.0.0.0:14250が使用されます。 - 2
- Jaeger Thrift HTTP エンドポイント。省略した場合、デフォルトの
0.0.0.0:14268が使用されます。 - 3
- Jaeger Thrift Compact エンドポイント。省略した場合、デフォルトの
0.0.0.0:6831が使用されます。 - 4
- Jaeger Thrift Binary エンドポイント。省略した場合、デフォルトの
0.0.0.0:6832が使用されます。 - 5
- サーバー側の TLS 設定。詳細は、OTLP レシーバー設定セクションを参照してください。
3.1.1.1.3. Prometheus レシーバー リンクのコピーリンクがクリップボードにコピーされました!
Prometheus レシーバーは現在、テクノロジープレビュー 機能のみとなっています。
Prometheus レシーバーはメトリクスエンドポイントをスクレイプします。
Prometheus レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'my-app'
scrape_interval: 5s
static_configs:
- targets: ['my-app.example.svc.cluster.local:8888']
service:
pipelines:
metrics:
receivers: [prometheus]
3.1.1.1.4. Zipkin レシーバー リンクのコピーリンクがクリップボードにコピーされました!
Zipkin レシーバーは、Zipkin v1 および v2 形式でトレースを取り込みます。
Zipkin レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
zipkin:
endpoint: 0.0.0.0:9411
tls:
service:
pipelines:
traces:
receivers: [zipkin]
3.1.1.1.5. Kafka レシーバー リンクのコピーリンクがクリップボードにコピーされました!
Kafka レシーバーは現在、テクノロジープレビュー 機能のみとなっています。
Kafka レシーバーは、Kafka からトレース、メトリクス、ログを OTLP 形式で受信します。
Kafka レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
kafka:
brokers: ["localhost:9092"]
protocol_version: 2.0.0
topic: otlp_spans
auth:
plain_text:
username: example
password: example
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure: false
server_name_override: kafka.example.corp
service:
pipelines:
traces:
receivers: [kafka]
- 1
- Kafka ブローカーのリスト。デフォルトは
localhost:9092です。 - 2
- Kafka プロトコルのバージョン。たとえば、
2.0.0などです。これは必須フィールドです。 - 3
- 読み取り元の Kafka トピックの名前。デフォルトは
otlp_spansです。 - 4
- 平文認証設定。省略した場合、平文認証は無効になります。
- 5
- クライアント側の TLS 設定。TLS 証明書へのパスを定義します。省略した場合、TLS 認証は無効になります。
- 6
- サーバーの証明書チェーンとホスト名の検証を無効にします。デフォルトは
falseです。 - 7
- ServerName は、仮想ホスティングをサポートするためにクライアントによって要求されたサーバーの名前を示します。
3.1.1.1.6. OpenCensus レシーバー リンクのコピーリンクがクリップボードにコピーされました!
OpenCensus レシーバーは、OpenCensus プロジェクトとの下位互換性を提供し、インストルメント化されたコードベースの移行を容易にします。gRPC または HTTP および Json を介して OpenCensus 形式でメトリクスとトレースを受信します。
OpenCensus レシーバーが有効になっている OpenTelemetry Collector カスタムリソース
config: |
receivers:
opencensus:
endpoint: 0.0.0.0:9411
tls:
cors_allowed_origins:
- https://*.<example>.com
service:
pipelines:
traces:
receivers: [opencensus]
...
3.1.1.2. プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
プロセッサーは、データの受信とエクスポートの間にデータを処理します。
3.1.1.2.1. Batch プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Batch プロセッサーは、トレースとメトリクスをバッチ処理して、テレメトリー情報の転送に必要な発信接続の数を減らします。
Batch プロセッサーを使用する場合の OpenTelemetry Collector カスタムリソースの例
config: |
processor:
batch:
timeout: 5s
send_batch_max_size: 10000
service:
pipelines:
traces:
processors: [batch]
metrics:
processors: [batch]
| パラメーター | 説明 | デフォルト |
|---|---|---|
| バッチサイズに関係なく、特定の期間後にバッチを送信します。 |
|
| 指定された数のスパンまたはメトリクスの後に、Telemetry データのバッチを送信します。 |
|
|
バッチの最大許容サイズ。 |
|
|
アクティブにすると、 |
|
|
|
|
3.1.1.2.2. Memory Limiter プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Memory Limiter プロセッサーは、Collector のメモリー使用量を定期的にチェックし、ソフトメモリーリミットに達するとデータ処理を一時停止します。このプロセッサーは、トレース、メトリクス、およびログをサポートします。先行コンポーネント (通常はレシーバー) は、同じデータの送信を再試行することが想定されており、受信データにバックプレッシャーを適用する場合があります。メモリー使用量がハードリミットを超えると、Memory Limiter プロセッサーによってガベージコレクションが強制的に実行されます。
Memory Limiter プロセッサーを使用する場合の OpenTelemetry Collector カスタムリソースの例
config: |
processor:
memory_limiter:
check_interval: 1s
limit_mib: 4000
spike_limit_mib: 800
service:
pipelines:
traces:
processors: [batch]
metrics:
processors: [batch]
| パラメーター | 説明 | デフォルト |
|---|---|---|
|
メモリー使用量の測定間の時間。最適な値は |
|
| ハードリミット。ヒープに割り当てられるメモリーの最大量 (MiB 単位)。通常、OpenTelemetry Collector の合計メモリー使用量は、この値より約 50 MiB 大きくなります。 |
|
|
スパイクリミット。これは、予想されるメモリー使用量の最大スパイク (MiB 単位) です。最適な値は、 |
|
|
|
|
|
|
|
3.1.1.2.3. Resource Detection プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Resource Detection プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Resource Detection プロセッサーは、OpenTelemetry のリソースセマンティック標準に合わせて、ホストリソースの詳細を識別します。検出された情報を使用して、テレメトリーデータ内のリソース値を追加または置換できます。このプロセッサーはトレース、メトリクスをサポートしており、Docket メタデータディテクターや OTEL_RESOURCE_ATTRIBUTES 環境変数ディテクターなどの複数のディテクターと併用できます。
Resource Detection プロセッサーに必要な OpenShift Container Platform の権限
kind: ClusterRole
metadata:
name: otel-collector
rules:
- apiGroups: ["config.openshift.io"]
resources: ["infrastructures", "infrastructures/status"]
verbs: ["get", "watch", "list"]
Resource Detection プロセッサーを使用する OpenTelemetry Collector
config: |
processor:
resourcedetection:
detectors: [openshift]
override: true
service:
pipelines:
traces:
processors: [resourcedetection]
metrics:
processors: [resourcedetection]
環境変数ディテクターを備えた Resource Detection Processor を使用する OpenTelemetry Collector
config: |
processors:
resourcedetection/env:
detectors: [env]
timeout: 2s
override: false
- 1
- 使用するディテクターを指定します。この例では、環境ディテクターが指定されています。
3.1.1.2.4. Attributes プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Attributes プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Attributes プロセッサーは、スパン、ログ、またはメトリクスの属性を変更できます。入力データをフィルタリングして照合し、特定のアクションに対してそのようなデータを含めたり除外したりするようにこのプロセッサーを設定できます。
プロセッサーはアクションのリストを操作し、設定で指定された順序でアクションを実行します。次のアクションがサポートされています。
- Insert
- 指定されたキーがまだ存在しない場合は、入力データに新しい属性を挿入します。
- Update
- キーがすでに存在する場合は、入力データの属性を更新します。
- Upsert
- 挿入アクションと更新アクションを組み合わせます。キーがまだ存在しない場合は、新しい属性を挿入します。キーがすでに存在する場合は属性を更新します。
- Delete
- 入力データから属性を削除します。
- Hash
- 既存の属性値を SHA1 としてハッシュします。
- Extract
-
正規表現ルールを使用して、ルールで定義された入力キーからターゲットキーまでの値を抽出します。ターゲットキーがすでに存在する場合は、Span プロセッサーの
to_attributes設定と同様に、既存の属性をソースとしてオーバーライドされます。 - Convert
- 既存の属性を指定された型に変換します。
Attributes プロセッサーを使用した OpenTelemetry Collector
config: |
processors:
attributes/example:
actions:
- key: db.table
action: delete
- key: redacted_span
value: true
action: upsert
- key: copy_key
from_attribute: key_original
action: update
- key: account_id
value: 2245
action: insert
- key: account_password
action: delete
- key: account_email
action: hash
- key: http.status_code
action: convert
converted_type: int
3.1.1.2.5. Resource プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Resource プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Resource プロセッサーは、リソース属性に変更を適用します。このプロセッサーは、トレース、メトリクス、およびログをサポートします。
Resource Detection プロセッサーを使用する OpenTelemetry Collector
config: |
processor:
attributes:
- key: cloud.availability_zone
value: "zone-1"
action: upsert
- key: k8s.cluster.name
from_attribute: k8s-cluster
action: insert
- key: redundant-attribute
action: delete
属性は、属性の削除、属性の挿入、または属性のアップサートなど、リソース属性に適用されるアクションを表します。
3.1.1.2.6. Span プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Span プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Span プロセッサーは、その属性に基づいてスパン名を変更するか、スパン名からスパン属性を抽出します。スパンステータスを変更することもできます。スパンを含めたり除外したりすることもできます。このプロセッサーはトレースをサポートしています。
スパンの名前変更には、from_attributes 設定を使用して、新しい名前の属性を指定する必要があります。
Span プロセッサーを使用してスパンの名前を変更する OpenTelemetry Collector
config: |
processor:
span:
name:
from_attributes: [<key1>, <key2>, ...]
separator: <value>
プロセッサーを使用して、スパン名から属性を抽出できます。
Span プロセッサーを使用してスパン名から属性を抽出する OpenTelemetry Collector
config: |
processor:
span/to_attributes:
name:
to_attributes:
rules:
- ^\/api\/v1\/document\/(?P<documentId>.*)\/update$
- 1
- このルールは、抽出の実行方法を定義します。さらにルールを定義できます。たとえば、この場合、正規表現が名前と一致すると、
documentID属性が作成されます。この例では、入力スパン名が/api/v1/document/12345678/updateの場合、出力スパン名は/api/v1/document/{documentId}/updateとなり、新しい"documentId"="12345678"属性がスパンに追加されます。
スパンステータスを変更できます。
ステータス変更に Span プロセッサーを使用する OpenTelemetry Collector
config: |
processor:
span/set_status:
status:
code: Error
description: "<error_description>"
3.1.1.2.7. Kubernetes Attributes プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Attributes プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Kubernetes Attributes プロセッサーでは、Kubernetes メタデータを使用してスパン、メトリクス、およびログリソース属性を自動設定できます。このプロセッサーは、トレース、メトリクス、およびログをサポートします。このプロセッサーは、Kubernetes リソースを自動的に識別し、そこからメタデータを抽出して、この抽出されたメタデータをリソース属性として関連するスパン、メトリクス、ログに組み込みます。Kubernetes API を利用してクラスター内で動作しているすべての Pod を検出し、IP アドレス、Pod UID、およびその他の関連メタデータの記録を維持します。
Kubernetes Attributes プロセッサーに必要な最小限の OpenShift Container Platform 権限
kind: ClusterRole
metadata:
name: otel-collector
rules:
- apiGroups: ['']
resources: ['pods', 'namespaces']
verbs: ['get', 'watch', 'list']
Kubernetes Attributes プロセッサーを使用した OpenTelemetry Collector
config: |
processors:
k8sattributes:
filter:
node_from_env_var: KUBE_NODE_NAME
3.1.1.3. Filter プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Filter プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Filter プロセッサーは、OpenTelemetry Transformation Language を活用して、テレメトリーデータを破棄する基準を確立します。これらの条件のいずれかが満たされると、テレメトリーデータは破棄されます。論理 OR 演算子を使用して条件を組み合わせることができます。このプロセッサーは、トレース、メトリクス、およびログをサポートします。
OTLP エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
processors:
filter/ottl:
error_mode: ignore
traces:
span:
- 'attributes["container.name"] == "app_container_1"'
- 'resource.attributes["host.name"] == "localhost"'
3.1.1.4. Routing プロセッサー リンクのコピーリンクがクリップボードにコピーされました!
Routing プロセッサーは現在、テクノロジープレビュー 機能のみとなっています。
Routing プロセッサーは、ログ、メトリクス、またはトレースを特定のエクスポーターにルーティングします。このプロセッサーは、受信 HTTP 要求 (gRPC またはプレーン HTTP) からヘッダーを読み取るか、リソース属性を読み取ることができ、読み取った値に従って、関連するエクスポーターにトレース情報を送信します。
OTLP エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
processors:
routing:
from_attribute: X-Tenant
default_exporters:
- jaeger
table:
- value: acme
exporters: [jaeger/acme]
exporters:
jaeger:
endpoint: localhost:14250
jaeger/acme:
endpoint: localhost:24250
オプションで、from_attribute 内での属性の検索場所を定義する attribute_source 設定を作成できます。許可される値は、HTTP ヘッダーを含むコンテキストを検索する場合は context、またはリソース属性を検索する場合は resource です。
3.1.1.5. エクスポーター リンクのコピーリンクがクリップボードにコピーされました!
エクスポーターは、1 つ以上のバックエンドまたは宛先にデータを送信します。
3.1.1.5.1. OTLP エクスポーター リンクのコピーリンクがクリップボードにコピーされました!
OTLP gRPC エクスポーターは、OpenTelemetry Protocol (OTLP) を使用してトレースとメトリクスをエクスポートします。
OTLP エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
exporters:
otlp:
endpoint: tempo-ingester:4317
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure: false
insecure_skip_verify: false #
reload_interval: 1h
server_name_override: <name>
headers:
X-Scope-OrgID: "dev"
service:
pipelines:
traces:
exporters: [otlp]
metrics:
exporters: [otlp]
- 1
- OTLP gRPC エンドポイント。
https://スキームが使用される場合、クライアントトランスポートセキュリティーが有効になり、tlsのinsecure設定をオーバーライドします。 - 2
- クライアント側の TLS 設定。TLS 証明書へのパスを定義します。
- 3
trueに設定すると、クライアントトランスポートセキュリティーは無効になります。デフォルト値はfalseです。- 4
trueに設定されている場合、証明書の検証は省略します。デフォルト値はfalseです。- 5
- 証明書をリロードする間隔を指定します。この値が設定されていない場合、証明書はリロードされません。
reload_intervalは、ns、us(またはµs)、ms、s、m、hなどの有効な時間単位を含む文字列を受け入れます。 - 6
- 要求の authority ヘッダーフィールドなど、認証局の仮想ホスト名をオーバーライドします。これをテストに使用できます。
- 7
- ヘッダーは、接続が確立されている間に実行されるすべての要求に対して送信されます。
3.1.1.5.2. OTLP HTTP エクスポーター リンクのコピーリンクがクリップボードにコピーされました!
OTLP HTTP エクスポーターは、OpenTelemetry Protocol (OTLP) を使用してトレースとメトリクスをエクスポートします。
OTLP エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
exporters:
otlphttp:
endpoint: http://tempo-ingester:4318
tls:
headers:
X-Scope-OrgID: "dev"
disable_keep_alives: false
service:
pipelines:
traces:
exporters: [otlphttp]
metrics:
exporters: [otlphttp]
3.1.1.5.3. デバッグエクスポーター リンクのコピーリンクがクリップボードにコピーされました!
デバッグエクスポーターは、トレースとメトリクスを標準出力に出力します。
デバッグエクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
exporters:
debug:
verbosity: detailed
service:
pipelines:
traces:
exporters: [logging]
metrics:
exporters: [logging]
- 1
- デバッグエクスポートの詳細度:
detailedまたはnormalまたはbasic。detailedに設定すると、パイプラインデータの詳細がログに記録されます。デフォルトはnormalです。
3.1.1.5.4. Prometheus エクスポーター リンクのコピーリンクがクリップボードにコピーされました!
Prometheus エクスポーターは現在、テクノロジープレビュー 機能のみとなっています。
Prometheus エクスポーターは、Prometheus または OpenMetrics 形式でメトリクスをエクスポートします。
Prometheus エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
ports:
- name: promexporter
port: 8889
protocol: TCP
config: |
exporters:
prometheus:
endpoint: 0.0.0.0:8889
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
namespace: prefix
const_labels:
label1: value1
enable_open_metrics: true
resource_to_telemetry_conversion:
enabled: true
metric_expiration: 180m
add_metric_suffixes: false
service:
pipelines:
metrics:
exporters: [prometheus]
- 1
- Collector Pod およびサービスから Prometheus ポートを公開します。
ServiceMonitorまたはPodMonitorカスタムリソースのポート名を使用して、Prometheus によるメトリクスのスクレイピングを有効にできます。 - 2
- メトリクスが公開されるネットワークエンドポイント。
- 3
- サーバー側の TLS 設定。TLS 証明書へのパスを定義します。
- 4
- 設定されている場合は、提供された値でメトリクスをエクスポートします。デフォルトはありません。
- 5
- エクスポートされたすべてのメトリクスに適用されるキーと値のペアのラベル。デフォルトはありません。
- 6
trueの場合、メトリクスは OpenMetrics 形式を使用してエクスポートされます。手本 (exemplar) は、OpenMetrics 形式で、ヒストグラムおよびモノトニックサムメトリクス (counterなど) に対してのみエクスポートできます。デフォルトでは無効になっています。- 7
enabledがtrueの場合、すべてのリソース属性はデフォルトでメトリクスラベルに変換されます。デフォルトでは無効になっています。- 8
- 更新なしでメトリクスが公開される期間を定義します。デフォルトは
5mです。 - 9
- メトリクスの型と単位の接尾辞を追加します。Jaeger コンソールの監視タブが有効になっている場合は、無効にする必要があります。デフォルトは
trueです。
3.1.1.5.5. Kafka エクスポーター リンクのコピーリンクがクリップボードにコピーされました!
Kafka エクスポータは現在、テクノロジープレビュー 機能のみとなっています。
Kafka エクスポータは、ログ、メトリクス、およびトレースを Kafka にエクスポートします。このエクスポーターは、メッセージをブロックしてバッチ処理しない同期プロデューサーを使用します。スループットと回復力を高めるには、バッチおよびキュー再試行プロセッサーと併用する必要があります。
Kafka エクスポーターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
exporters:
kafka:
brokers: ["localhost:9092"]
protocol_version: 2.0.0
topic: otlp_spans
auth:
plain_text:
username: example
password: example
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure: false
server_name_override: kafka.example.corp
service:
pipelines:
traces:
exporters: [kafka]
- 1
- Kafka ブローカーのリスト。デフォルトは
localhost:9092です。 - 2
- Kafka プロトコルのバージョン。たとえば、
2.0.0などです。これは必須フィールドです。 - 3
- 読み取り元の Kafka トピックの名前。デフォルトは次のとおりです。トレースの場合は
otlp_spans、メトリクスの場合はotlp_metrics、ログの場合はotlp_logsです。 - 4
- 平文認証設定。省略した場合、平文認証は無効になります。
- 5
- クライアント側の TLS 設定。TLS 証明書へのパスを定義します。省略した場合、TLS 認証は無効になります。
- 6
- サーバーの証明書チェーンとホスト名の検証を無効にします。デフォルトは
falseです。 - 7
- ServerName は、仮想ホスティングをサポートするためにクライアントによって要求されたサーバーの名前を示します。
3.1.1.6. コネクター リンクのコピーリンクがクリップボードにコピーされました!
コネクターは 2 つのパイプラインを接続します。
3.1.1.6.1. Spanmetrics コネクター リンクのコピーリンクがクリップボードにコピーされました!
Spanmetrics コネクターは現在、テクノロジープレビュー 機能のみとなっています。
Spanmetrics コネクターは、スパンデータからの Request, Error, Duration (R.E.D) OpenTelemetry メトリクスを集計します。
Spanmetrics コネクターが有効になっている OpenTelemetry Collector カスタムリソース
config: |
connectors:
spanmetrics:
metrics_flush_interval: 15s
service:
pipelines:
traces:
exporters: [spanmetrics]
metrics:
receivers: [spanmetrics]
- 1
- 生成されたメトリクスのフラッシュ間隔を定義します。デフォルトは
15sです。
3.1.1.7. エクステンション リンクのコピーリンクがクリップボードにコピーされました!
エクステンションにより、Collector に機能が追加されます。
3.1.1.7.1. BearerTokenAuth エクステンション リンクのコピーリンクがクリップボードにコピーされました!
BearerTokenAuth エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
BearerTokenAuth エクステンションは、HTTP および gRPC プロトコルに基づくレシーバーとエクスポーター用のオーセンティケーターです。OpenTelemetry Collector カスタムリソースを使用して、レシーバーおよびエクスポーター側で BearerTokenAuth エクステンションのクライアント認証とサーバー認証を設定できます。このエクステンションは、トレース、メトリクス、およびログをサポートします。
BearerTokenAuth エクステンション用に設定されたクライアントおよびサーバー認証を含む 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]
3.1.1.7.2. OAuth2Client エクステンション リンクのコピーリンクがクリップボードにコピーされました!
OAuth2Client エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
OAuth2Client エクステンションは、HTTP および gRPC プロトコルに基づくエクスポーター用のオーセンティケーターです。OAuth2Client エクステンションのクライアント認証は、OpenTelemetry Collector カスタムリソースの別のセクションで設定されます。このエクステンションは、トレース、メトリクス、およびログをサポートします。
OAuth2Client エクステンション用にクライアント認証が設定された 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 プロバイダーによって提供されるクライアント 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.1.1.7.3. Jaeger Remote Sampling エクステンション リンクのコピーリンクがクリップボードにコピーされました!
Jaeger Remote Sampling エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
Jaeger Remote Sampling エクステンションを使用すると、Jaeger のリモートサンプリング API の後にサンプリングストラテジーを提供できるようになります。このエクステンションを設定して、パイプラインの Jaeger Collector などのバッキングリモートサンプリングサーバーに、またはローカルファイルシステムから静的 JSON ファイルにリクエストをプロキシーできます。
設定された Jaeger Remote Sampling エクステンションを備えた 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:
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.1.1.7.4. パフォーマンスプロファイラーエクステンション リンクのコピーリンクがクリップボードにコピーされました!
Performance Profiler エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
Performance Profiler エクステンションにより、Go net/http/pprof エンドポイントが有効になります。これは通常、開発者がパフォーマンスプロファイルを収集し、サービスの問題を調査するために使用されます。
Performance Profiler エクステンションが設定された 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:
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.1.1.7.5. ヘルスチェックエクステンション リンクのコピーリンクがクリップボードにコピーされました!
Health Check エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
Health Check エクステンションは、OpenTelemetry Collector のステータスをチェックするための HTTP URL を提供します。このエクステンションは、OpenShift の liveness および readiness プローブとして使用できます。
ヘルスチェックエクステンションが設定された 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:
otlp:
service:
extensions: [health_check]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
- 1
- ヘルスチェックステータスを公開するためのターゲット IP アドレス。デフォルトは
0.0.0.0:13133です。 - 2
- TLS サーバー側の設定。TLS 証明書へのパスを定義します。省略した場合、TLS は無効になります。
- 3
- ヘルスチェックサーバーのパス。デフォルトは
/です。 - 4
- Collector パイプラインのヘルスチェック用の設定。
- 5
- Collector パイプラインのヘルスチェックを有効にします。デフォルトは
falseです。 - 6
- 失敗数を確認する時間間隔。デフォルトは
5mです。 - 7
- コンテナーが依然として正常であるとマークされる失敗の数のしきい値。デフォルトは
5です。
3.1.1.7.6. Memory Ballast エクステンション リンクのコピーリンクがクリップボードにコピーされました!
Memory Ballast エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
Memory Ballast エクステンションを使用すると、アプリケーションはプロセスのメモリーバラストを設定できます。
Memory Ballast エクステンションが設定された OpenTelemetry Collector カスタムリソース
config: |
extensions:
memory_ballast:
size_mib: 64
size_in_percentage: 20
receivers:
otlp:
protocols:
http:
exporters:
otlp:
service:
extensions: [memory_ballast]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
3.1.1.7.7. zPages エクステンション リンクのコピーリンクがクリップボードにコピーされました!
zPages エクステンションは現在、テクノロジープレビュー 機能のみとなっています。
zPages エクステンションは、zPages を提供するエクステンションに HTTP エンドポイントを提供します。エンドポイントでは、このエクステンションは、インストルメントされたコンポーネントをデバッグするためのライブデータを提供します。すべてのコアエクスポーターとレシーバーは、一部の zPages インストルメンテーションを提供します。
zPages は、トレースやメトリクスを調べるためにバックエンドに依存する必要がなく、プロセス内診断に役立ちます。
zPages エクステンションが設定された OpenTelemetry Collector カスタムリソース
config: |
extensions:
zpages:
endpoint: "localhost:55679"
receivers:
otlp:
protocols:
http:
exporters:
otlp:
service:
extensions: [zpages]
pipelines:
traces:
receivers: [otlp]
exporters: [otlp]
- 1
- zPages を提供する HTTP エンドポイントを指定します。
localhost:を使用してローカルでのみ使用できるようにするか、":"を使用してすべてのネットワークインターフェイスで使用できるようにします。デフォルトはlocalhost:55679です。