Advanced customization for automatic discovery and instrumentation in Kubernetes 🔗
高度なシナリオのために Splunk のオートディスカバリーとインストルメンテーションをカスタマイズする方法を学びます。
高度なカスタマイズにより、以下のタスクを達成することができます:
注釈
Linux の高度なカスタマイズオプションについては、Linux での自動ディスカバリーのための高度なカスタマイズ を参照してください。
インストルメンテーションバージョンを変更する 🔗
デフォルトでは、Splunk Distribution of OpenTelemetry Collector は、関連するインストルメンテーションライブラリの最新バージョンを使用します。インストルメンテーションライブラリのバージョンを変更するには、以下の手順に従ってください:
values.yaml
ファイルを開きます。インストルメンテーション言語セクションで、
tag
の値を希望のバージョンに合わせて変更します。以下の例では、Javaインストルメンテーションバージョンをv1.27.0
に変更しています。clusterName: myCluster splunkObservability: realm: <splunk-realm> accessToken: <splunk-access-token> environment: prd certmanager: enabled: true operatorcrds: install: true operator: enabled: true instrumentation: spec: java: repository: ghcr.io/signalfx/splunk-otel-java/splunk-otel-java tag: v1.27.0
以下のコマンドで Splunk OTel Collector Chart を再インストールします。<CURRENT_VERSION> を現在の splunk-otel-collector-chart のバージョンに置き換えてください。
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector --version <CURRENT_VERSION> -f values.yaml
注釈
values.yaml
ファイルに java
フィールドがない場合は、バージョンを変更する前に、フィールドと repository
値を追加する必要があります。リポジトリの値は常に ghcr.io/signalfx/splunk-otel-java/splunk-otel-java
です。
各言語の旧バージョンの詳細については、以下のページをご覧ください:
Java: Javaエージェントの互換性と要件
Node.js: Splunk OTel JS の互換性と要件
デフォルトのインストルメンテーション設定をオーバーライドする 🔗
デフォルトの自動検出設定をオーバーライドして、AlwaysOn Profilingやランタイムメトリクスなどの機能を使用することができます。
AlwaysOn Profilingの設定 🔗
Kubernetes で AlwaysOn プロファイリングを設定するには、Helm チャートの values.yaml ファイルを編集します。
言語のプロファイリングを有効にするには、以下の手順に従ってください:
values.yaml ファイルを開きます。
instrumentation.spec.<language>.env
セクションに、環境変数SPLUNK_PROFILER_ENABLED="true"
、SPLUNK_PROFILER_MEMORY_ENABLED="true"
、SPLUNK_PROFILER_CALL_STACK_INTERVAL
を追加します。たとえば、次のvalues.yamlファイルは、5000ミリ秒間隔でコールスタックをサンプリングするようにAlwaysOn Profilingを設定します:operatorcrds: install: true operator: enabled: true instrumentation: spec: nodejs: env: # Activates AlwaysOn Profiling for Node.js - name: SPLUNK_PROFILER_ENABLED value: "true" - name: SPLUNK_PROFILER_MEMORY_ENABLED value: "true" # Samples call stacks from a 5000 millisecond interval. # If excluded, samples from a 10000 millisecond interval by default. - name: SPLUNK_PROFILER_CALL_STACK_INTERVAL value: 5000
以下のコマンドで Splunk OTel Collector Chart を再インストールします。<CURRENT_VERSION> を現在の splunk-otel-collector-chart のバージョンに置き換えてください。
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector --version <CURRENT_VERSION> -f values.yaml
ランタイムメトリクスコレクションを有効にする(JavaとNode.js のみ) 🔗
Kubernetes 環境で実行されている Java および Node.js アプリケーションのランタイムメトリクスコレクションを有効にできます。
以下の手順に従って、ランタイムメトリクス収集を有効にします:
values.yaml ファイルを開きます。
instrumentation.spec.<language>.env
セクションに、環境変数SPLUNK_METRICS_ENABLED=true
を追加します。たとえば、次のvalues.yamlファイルは、Javaアプリケーションの実行時メトリクス収集を有効にします:operatorcrds: install: true operator: enabled: true instrumentation: spec: java: env: # Activates runtime metrics collection for Java - name: SPLUNK_METRICS_ENABLED value: "true"
instrumentation.spec.env
セクションで、以下の環境変数と値を追加して、Collector がランタイムメトリクスを送信するエンドポイントを設定します:operatorcrds: install: true operator: enabled: true instrumentation: spec: env: - name: SPLUNK_OTEL_AGENT valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: SPLUNK_METRICS_ENDPOINT value: http://$(SPLUNK_OTEL_AGENT):9943/v2/datapoint
以下のコマンドで Splunk OTel Collector Chart を再インストールします。<CURRENT_VERSION> を現在の splunk-otel-collector-chart のバージョンに置き換えてください。
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector --version <CURRENT_VERSION> -f values.yaml
ゲートウェイモードで自動ディスカバリーを使用する 🔗
Splunk OTel Collector Chart はデフォルトでエージェントモードを使用します。ゲートウェイモードを有効にすると、OpenTelemetry Collector のインスタンスが別のコンテナに配置され、このインスタンスがクラスター全体からデータを収集します。
ゲートウェイモードについて詳細については、データ転送(ゲートウェイ)モード を参照してください。
ゲートウェイのエンドポイントにデータを送信するには、以下の手順に従ってください:
values.yaml ファイルを開きます。
instrumentation.spec.exporter.endpoint
の値をゲートウェイのエンドポイントに設定します。例:clusterName: myCluster splunkObservability: realm: <splunk-realm> accessToken: <splunk-access-token> environment: prd certmanager: enabled: true operatorcrds: install: true operator: enabled: true instrumentation: spec: exporter: endpoint: <gateway-endpoint>
以下のコマンドで Splunk OTel Collector Chart を再インストールします。<CURRENT_VERSION> を現在の splunk-otel-collector-chart のバージョンに置き換えてください。
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector --version <CURRENT_VERSION> -f values.yaml
values.yaml ファイルで agent.enabled: false
と gateway.enabled: true
を設定することで、デプロイされたゲートウェイのエンドポイントに自動的にデータを送信することもできます。例:
clusterName: myCluster
splunkObservability:
realm: <splunk-realm>
accessToken: <splunk-access-token>
environment: prd
certmanager:
enabled: true
operatorcrds:
install: true
operator:
enabled: true
agent:
enabled: false
gateway:
enabled: true
この設定を使用すると、自動ディスカバリーは自動的に実行中のゲートウェイエンドポイントにデータを送信します。
追加設定 🔗
オートディスカバリーとインストルメンテーションでカスタマイズできる設定は他にも多数あります。
各言語で変更できる設定のリストについては、以下のリソースを参照してください:
言語 |
リソース |
---|---|
Java |
|
Node.js |
Splunk Observability Cloud 用の Splunk Distribution of OTel JS を設定する |
Kubernetes の values.yaml で変更できる設定の完全なリストについては、https://github.com/signalfx/splunk-otel-collector-chart/blob/main/helm-charts/splunk-otel-collector/values.yaml を参照してください。