Kubernetes でのオートディスカバリーとインストルメンテーションのための高度なカスタマイズ
Kubernetes 環境におけるオートディスカバリーとインストルメンテーションのデプロイをカスタマイズする方法を学びます。
高度なシナリオのために Splunk のオートディスカバリーとインストルメンテーションをカスタマイズする方法を学びます。
高度なカスタマイズにより、以下のタスクを達成することができます:
インストルメンテーションバージョンを変更する
デフォルトでは、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 チャートを再インストールします。<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 チャートを再インストールします。<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 チャートを再インストールします。<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 チャートでは、デフォルトでエージェントモードを使用します。ゲートウェイモードをアクティブ化すると、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 チャートを再インストールします。<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 を設定する |
values.yaml で変更できる、Kubernetes の設定の完全なリストについては、「https://github.com/signalfx/splunk-otel-collector-chart/blob/main/helm-charts/splunk-otel-collector/values.yaml」を参照してください。