Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » App とサービスのオートディスカバリー » Kubernetes用のオートディスカバリーとゼロコードインストルメンテーション » Advanced customization for automatic discovery and instrumentation in Kubernetes

Advanced customization for automatic discovery and instrumentation in Kubernetes 🔗

高度なシナリオのために Splunk のオートディスカバリーとインストルメンテーションをカスタマイズする方法を学びます。

高度なカスタマイズにより、以下のタスクを達成することができます:

注釈

Linux の高度なカスタマイズオプションについては、Linux での自動ディスカバリーのための高度なカスタマイズ を参照してください。

インストルメンテーションバージョンを変更する 🔗

デフォルトでは、Splunk Distribution of OpenTelemetry Collector は、関連するインストルメンテーションライブラリの最新バージョンを使用します。インストルメンテーションライブラリのバージョンを変更するには、以下の手順に従ってください:

  1. values.yaml ファイルを開きます。

  2. インストルメンテーション言語セクションで、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
    
  3. 以下のコマンドで 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 です。

各言語の旧バージョンの詳細については、以下のページをご覧ください:

デフォルトのインストルメンテーション設定をオーバーライドする 🔗

デフォルトの自動検出設定をオーバーライドして、AlwaysOn Profilingやランタイムメトリクスなどの機能を使用することができます。

AlwaysOn Profilingの設定 🔗

Kubernetes で AlwaysOn プロファイリングを設定するには、Helm チャートの values.yaml ファイルを編集します。

言語のプロファイリングを有効にするには、以下の手順に従ってください:

  1. values.yaml ファイルを開きます。

  2. 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
    
  3. 以下のコマンドで 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 アプリケーションのランタイムメトリクスコレクションを有効にできます。

以下の手順に従って、ランタイムメトリクス収集を有効にします:

  1. values.yaml ファイルを開きます。

  2. 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"
    
  3. 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
    
  4. 以下のコマンドで 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 のインスタンスが別のコンテナに配置され、このインスタンスがクラスター全体からデータを収集します。

ゲートウェイモードについて詳細については、データ転送(ゲートウェイ)モード を参照してください。

ゲートウェイのエンドポイントにデータを送信するには、以下の手順に従ってください:

  1. values.yaml ファイルを開きます。

  2. 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>
    
  3. 以下のコマンドで 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: falsegateway.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

Splunk Observability Cloud 用の 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 を参照してください。

このページは 2025年02月11日 に最終更新されました。