4.2. OpenTelemetry 計装設定オプション


OpenTelemetry の Red Hat ビルドは、OpenTelemetry 自動インストルメンテーションライブラリーをワークロードに挿入して設定します。現在、Red Hat build of OpenTelemetry は、Go、Java、Node.js、Python、.NET、および Apache HTTP Server (httpd)のインストルメンテーションライブラリーの挿入をサポートしています。

重要

Red Hat build of OpenTelemetry Operator は、計装ライブラリーの注入メカニズムのみをサポートしています。計装ライブラリーやアップストリームイメージはサポートしていません。お客様は独自の計装イメージをビルドすることも、コミュニティーイメージを使用することもできます。

4.2.1. 計装オプション

計装オプションは、Instrumentation カスタムリソース (CR) で指定されます。

サンプル Instrumentation CR

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: instrumentation
spec:
  env:
    - name: OTEL_EXPORTER_OTLP_TIMEOUT
      value: "20"
  exporter:
    endpoint: http://production-collector.observability.svc.cluster.local:4317
  propagators:
    - tracecontext
    - baggage
  sampler:
    type: parentbased_traceidratio
    argument: "1"
  python: 
1

    env: 
2

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318
  dotnet: 
3

    env: 
4

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318
  go: 
5

    env: 
6

      - name: OTEL_EXPORTER_OTLP_ENDPOINT
        value: http://production-collector.observability.svc.cluster.local:4318
Copy to Clipboard Toggle word wrap

1
Python の自動インストルメンテーションは、デフォルトで HTTP (HTTP/proto または HTTP/protobuf)上のプロトコルバッファーを使用します。
2
エンドポイントが :4317 に設定されている場合に必要です。
3
.NET 自動インストルメンテーションは、デフォルトで HTTP/proto または HTTP/protobuf 上のプロトコルバッファーを使用します。
4
エンドポイントが :4317 に設定されている場合に必要です。
5
Go auto-instrumentation は、デフォルトで HTTP (HTTP/proto または HTTP/protobuf)を介したプロトコルバッファーを使用します。
6
エンドポイントが :4317 に設定されている場合に必要です。

プロコバッファーの詳細は、概要 (プロトコルバッファードキュメント)を参照してください。

Expand
表4.1 Operator がインストルメンテーションを定義するために使用するパラメーター
パラメーター説明

env

すべてのインストルメンテーションタイプに対する一般的な環境変数の定義。

 

exporter

エクスポーターの設定。

 

propagators

プロパゲーターは、プロセス間のコンテキスト伝播設定を定義します。

tracecontextbaggageb3b3multijaegerottracenone

resource

リソース属性の設定。

 

sampler

サンプリング設定。

 

apacheHttpd

Apache HTTP Server 計装の設定。

 

dotnet

.NET 計装の設定。

 

Go

Go 計装の設定。

 

java

Java 計装の設定。

 

nodejs

Node.js 計装の設定。

 

python

Python 計装の設定。

プログラミング言語によっては、環境変数がテレメトリーの設定で機能しない場合があります。環境変数設定をサポートしない SDK の場合は、同様の設定をコードに直接追加する必要があります。詳細は、環境変数仕様 (OpenTelemetry ドキュメント)を参照してください。

Expand
表4.2 自動計装のデフォルトプロトコル
自動計装デフォルトプロトコル

Java 1.x

otlp/grpc

Java 2.x

otlp/http

Python

otlp/http

.NET

otlp/http

Go

otlp/http

Apache HTTP サーバー

otlp/grpc

4.2.2. OpenTelemetry SDK 変数の設定

OpenTelemetry Collector カスタムリソースの instrumentation.opentelemetry.io/inject-sdk アノテーションを使用すると、Instrumentation CR に応じて、次の OpenTelemetry SDK 環境変数を Pod に注入するように Red Hat build of OpenTelemetry に指示できます。

  • OTEL_SERVICE_NAME
  • OTEL_TRACES_SAMPLER
  • OTEL_TRACES_SAMPLER_ARG
  • OTEL_PROPAGATORS
  • OTEL_RESOURCE_ATTRIBUTES
  • OTEL_EXPORTER_OTLP_ENDPOINT
  • OTEL_EXPORTER_OTLP_CERTIFICATE
  • OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE
  • OTEL_EXPORTER_OTLP_CLIENT_KEY
Expand
表4.3 instrumentation.opentelemetry.io/inject-sdk アノテーションの値
説明

"true"

現在の namespace からデフォルト名を使用して Instrumentation リソースを注入します。

"false"

Instrumentation リソースは注入されません。

"<instrumentation_name>"

現在の namespace から注入する Instrumentation リソースの名前。

"<namespace>/<instrumentation_name>"

別の namespace から注入する Instrumentation リソースの名前。

4.2.3. エクスポーターの設定

Instrumentation カスタムリソースは、シグナルごとに 1 つ以上のエクスポーターの設定をサポートしていますが、自動計装によって設定されるのは OTLP Exporter だけです。したがって、Collector 上の OTLP Receiver を参照するようにエンドポイントを設定する必要があります。

config map を使用したサンプルエクスポーターの TLS CA の設定

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
# ...
spec
# ...
  exporter:
    endpoint: https://production-collector.observability.svc.cluster.local:4317  
1

    tls:
      configMapName: ca-bundle  
2

      ca_file: service-ca.crt 
3

# ...
Copy to Clipboard Toggle word wrap

1
HTTPS スキームと TLS を使用して OTLP エンドポイントを指定します。
2
config map の名前を指定します。自動計装を注入する Pod の namespace に、config map がすでに存在している必要があります。
3
config map 内の CA 証明書を参照します。証明書がワークロードファイルシステムにすでに存在する場合は、証明書への絶対パスを参照します。

シークレットを使用したサンプルエクスポーターの mTLS の設定

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
# ...
spec
# ...
  exporter:
    endpoint: https://production-collector.observability.svc.cluster.local:4317  
1

    tls:
      secretName: serving-certs 
2

      ca_file: service-ca.crt 
3

      cert_file: tls.crt 
4

      key_file: tls.key 
5

# ...
Copy to Clipboard Toggle word wrap

1
HTTPS スキームと TLS を使用して OTLP エンドポイントを指定します。
2
ca_filecert_file、および key_file 値のシークレットの名前を指定します。自動計装を注入する Pod の namespace に、シークレットがすでに存在している必要があります。
3
シークレット内の CA 証明書を参照します。証明書がワークロードファイルシステムにすでに存在する場合は、証明書への絶対パスを参照します。
4
シークレット内のクライアント証明書を参照します。証明書がワークロードファイルシステムにすでに存在する場合は、証明書への絶対パスを参照します。
5
シークレット内のクライアント鍵を参照します。鍵がワークロードファイルシステムにすでに存在する場合は、鍵への絶対パスを参照します。
注記

CA 証明書は config map またはシークレットで提供できます。両方で指定した場合、config map がシークレットよりも優先されます。

config map と Instrumentation CR を使用した CA バンドル注入の設定例

apiVersion: v1
kind: ConfigMap
metadata:
  name: otelcol-cabundle
  namespace: tutorial-application
  annotations:
    service.beta.openshift.io/inject-cabundle: "true"
# ...
---
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: my-instrumentation
spec:
  exporter:
    endpoint: https://simplest-collector.tracing-system.svc.cluster.local:4317
    tls:
      configMapName: otelcol-cabundle
      ca: service-ca.crt
# ...
Copy to Clipboard Toggle word wrap

4.2.4. Apache HTTP Server の自動計装の設定

重要

Apache HTTP Server の自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Expand
表4.4 .spec.apacheHttpd フィールドのパラメーター
名前説明デフォルト

attrs

Apache HTTP Server に固有の属性。

 

configPath

Apache HTTP Server 設定の場所。

/usr/local/apache2/conf

env

Apache HTTP Server に固有の環境変数。

 

image

Apache SDK と自動計装を含むコンテナーイメージ。

 

resourceRequirements

コンピュートリソースの要件。

 

version

Apache HTTP Server のバージョン。

2.4

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-apache-httpd: "true"
Copy to Clipboard Toggle word wrap

4.2.5. .NET 自動計装の設定

重要

.NET 自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

重要

デフォルトでは、この機能はサポート対象外のアップストリームの計装ライブラリーを注入します。

Expand
名前説明

env

.NET に固有の環境変数。

image

.NET SDK と自動計装を含むコンテナーイメージ。

resourceRequirements

コンピュートリソースの要件。

.NET 自動計装では、エクスポーターのエンドポイントが 4317 に設定されている場合、必須の OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定する必要があります。.NET 自動計装では、デフォルトで http/proto が使用され、テレメトリーデータを 4318 ポートに設定する必要があります。

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-dotnet: "true"
Copy to Clipboard Toggle word wrap

4.2.6. Go 自動計装の設定

重要

Go 自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

重要

デフォルトでは、この機能はサポート対象外のアップストリームの計装ライブラリーを注入します。

Expand
名前説明

env

Go に固有の環境変数。

image

Go SDK と自動計装を含むコンテナーイメージ。

resourceRequirements

コンピュートリソースの要件。

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-go: "true"
instrumentation.opentelemetry.io/otel-go-auto-target-exe: "/<path>/<to>/<container>/<executable>" 
1
Copy to Clipboard Toggle word wrap

1
必要な OTEL_GO_AUTO_TARGET_EXE 環境変数の値を設定します。

OpenShift クラスターの Go 自動インストルメンテーションに必要なパーミッション

apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
metadata:
  name: otel-go-instrumentation-scc
allowHostDirVolumePlugin: true
allowPrivilegeEscalation: true
allowPrivilegedContainer: true
allowedCapabilities:
- "SYS_PTRACE"
fsGroup:
  type: RunAsAny
runAsUser:
  type: RunAsAny
seLinuxContext:
  type: RunAsAny
seccompProfiles:
- '*'
supplementalGroups:
  type: RunAsAny
Copy to Clipboard Toggle word wrap

ヒント

OpenShift クラスターで Go 自動計装の権限を適用するための CLI コマンドは次のとおりです。

$ oc adm policy add-scc-to-user otel-go-instrumentation-scc -z <service_account>
Copy to Clipboard Toggle word wrap

4.2.7. Java 自動計装の設定

重要

Java 自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

重要

デフォルトでは、この機能はサポート対象外のアップストリームの計装ライブラリーを注入します。

Expand
名前説明

env

Java に固有の環境変数。

image

Java SDK と自動計装を含むコンテナーイメージ。

resourceRequirements

コンピュートリソースの要件。

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-java: "true"
Copy to Clipboard Toggle word wrap

4.2.8. Node.js 自動計装の設定

重要

Node.js 自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

重要

デフォルトでは、この機能はサポート対象外のアップストリームの計装ライブラリーを注入します。

Expand
名前説明

env

Node.js に固有の環境変数。

image

Node.js SDK と自動計装を含むコンテナーイメージ。

resourceRequirements

コンピュートリソースの要件。

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-nodejs: "true"
Copy to Clipboard Toggle word wrap

4.2.9. Python 自動計装の設定

重要

Python 自動計装はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

重要

デフォルトでは、この機能はサポート対象外のアップストリームの計装ライブラリーを注入します。

Expand
名前説明

env

Python に固有の環境変数。

image

Python SDK と自動計装を含むコンテナーイメージ。

resourceRequirements

コンピュートリソースの要件。

Python 自動計装では、エクスポーターのエンドポイントが 4317 に設定されている場合、OTEL_EXPORTER_OTLP_ENDPOINT 環境変数を設定する必要があります。Python 自動計装では、デフォルトで http/proto が使用され、テレメトリーデータを 4318 ポートに設定する必要があります。

注入を有効化するための PodSpec アノテーション

instrumentation.opentelemetry.io/inject-python: "true"
Copy to Clipboard Toggle word wrap

4.2.10. マルチコンテナー Pod

インストルメント化は、Pod 仕様に従ってデフォルトで利用可能な最初のコンテナーに挿入されます。インジェクションのターゲットコンテナー名を指定することもできます。

Pod のアノテーション

instrumentation.opentelemetry.io/container-names: "<container_1>,<container_2>" 
1
Copy to Clipboard Toggle word wrap

1
複数のコンテナーに単一のインストルメンテーションを挿入する場合は、このアノテーションを使用します。
注記

Go 自動計装は、マルチコンテナーの自動計装注入をサポートしていません。

4.2.11. 複数の計装を使用するマルチコンテナー Pod

マルチコンテナー Pod 内の 1 つ以上のコンテナーにアプリケーション言語の計装を注入するには、次のアノテーションが必要です。

instrumentation.opentelemetry.io/<application_language>-container-names: "<container_1>,<container_2>" 
1
Copy to Clipboard Toggle word wrap
1
注入できる計装は、コンテナーごとに 1 つの言語の計装だけです。サポートされている <application_language> 値のリストについては、次の表を参照してください。
Expand
表4.5 <application_language> でサポートされている値
Language<application_language> の値

ApacheHTTPD

apache-httpd

DotNet

dotnet

Java

java

NGINX

inject-nginx

NodeJS

nodejs

Python

python

SDK

sdk

4.2.12. Service Mesh での Instrumentation CR の使用

Red Hat OpenShift Service Mesh で Instrumentation カスタムリソース(CR)を使用する場合は、b3multi プロプターを使用する必要があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat