Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » App とサービスのオートディスカバリー » Linux用のオートディスカバリーとゼロコードインストルメンテーション » Linux での自動ディスカバリーのための高度なカスタマイズ

Linux での自動ディスカバリーのための高度なカスタマイズ 🔗

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

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

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

デフォルトの自動インストルメンテーション設定をオーバーライドして、プロファイリングとランタイムメトリクス収集の機能を使用することができます。

AlwaysOn Profilingの有効化 🔗

インストルメンテーションの環境変数を更新することで、CPU とメモリのプロファイリングを有効にできます。AlwaysOn プロファイリングでは、スタックトレースが継続的に収集されるため、どのコード行がプロセスの速度を低下させているかがわかります。プロファイリングの詳細については、Splunk APMのAlwaysOn Profilingの概要 を参照してください。

プロファイリングをグローバルに有効にするには、インストール時に CPU プロファイリングには --enable-profiler フラグを、メモリプロファイリングには --enable-profiler-memory フラグを追加します。例:

curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-profiler --enable-profiler-memory

また、言語ごとにプロファイリングを有効にすることもできます。この方法を使用すると、プロファイリングでコールスタックを収集する言語を決定できます。

言語ごとに AlwaysOn プロファイリングを有効にするには、次の手順に従います:

  1. /etc/splunk/zeroconfig ディレクトリにある <language>.conf ファイルを開きます。

  2. CPU プロファイリングには環境変数 SPLUNK_PROFILER_ENABLED=true を、メモリプロファイリングには SPLUNK_PROFILER_MEMORY_ENABLED=true を設定します。

  3. アプリケーションを再起動します。

注釈

systemd を使用している場合、環境変数は /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf にあります。

特定の間隔からコールスタックをサンプリングするには、SPLUNK_PROFILER_CALL_STACK_INTERVAL 設定をミリ秒単位で希望の間隔に変更します。デフォルト値は 10000 です。

例えば、SPLUNK_PROFILER_CALL_STACK_INTERVAL=5000 はコールスタック間隔を 5000 ミリ秒に設定します。

ランタイムメトリクスコレクションを有効にする 🔗

インストルメンテーションの環境変数を更新することで、実行時のメトリクス収集を有効にできます。この設定は、アプリケーションから追加のメトリクスを収集するようにエージェントを設定します。

ランタイムメトリクスをグローバルに有効にするには、インストール時に --enable-metrics フラグを追加します。例:

curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --with-instrumentation --deployment-environment prod \
--realm <SPLUNK_REALM> -- <SPLUNK_ACCESS_TOKEN> \
--enable-metrics

また、個々の言語に対してランタイムメトリクスの収集を有効にすることもできます。この方法を使用すると、Collector が言語レベルで送信するランタイムメトリクスを決定できます。

個々の言語のランタイムメトリクス収集を有効にするには、以下の手順に従います:

  1. /etc/splunk/zeroconfig ディレクトリにある <language>.conf ファイルを開きます。

  2. 環境変数 SPLUNK_METRICS_ENABLED=true を設定します。

  3. アプリケーションを再起動します。

ゲートウェイモードで自動ディスカバリーを使用する 🔗

The Splunk OpenTelemetry Collector chart uses the agent mode by default. Activating gateway mode deploys an instance of the OpenTelemetry Collector in a separate container, and this instance collects data from the entire cluster.

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

Linux用のゲートウェイモードで自動検出を直接展開することはできませんが、自動検出から収集したデータを既存のゲートウェイデプロイに送信することはできます。

以下の手順に従って、OpenTelemetry Collector のゲートウェイデプロイにデータを送 信してください:

  1. /etc/splunk/zeroconfig にある <language>.conf ファイルを開きます。

  2. 環境変数 OTEL_EXPORTER_OTLP_ENDPOINT=<gateway_endpoint> を設定します。<gateway_endpoint>はゲートウェイデプロイのポートです。

  3. アプリケーションを再起動します。

Collectorはゲートウェイにデータを送信します。

サードパーティアプリケーションのディスカバリー設定をカスタマイズする 🔗

デフォルトでは、自動ディスカバリーはCollector実行可能ファイルによって提供される組み込みの設定を読み取ります。設定を変更したり、部分的な検出ステータスの場合に既存の設定を調整したりするために、独自の設定を提供できます。

ディスカバリー設定値の優先順位は、低いものから高いものへ次のようになっています:

  • Collector 実行ファイルに組み込まれている、デフォルトの bundle.d コンポーネント構成ファイル。

  • config.d/<receivers or extensions>/*.discovery.yaml コンポーネント設定ファイル

  • config.d/properties.discovery.yaml マッピングされたプロパティ・ファイルの内容

  • --set フォームを使用した config.d/properties.discovery.yaml プロパティ・ファイルの内容

  • Collector プロセスで使用可能な SPLUNK_DISCOVERY_<xyz> プロパティ環境変数

  • --set splunk.discovery.<xyz> プロパティのコマンドラインオプション

プロパティ・ファイルによりプロパティを定義する 🔗

etc/otel/collector/config.d/properties.discovery.yaml ファイルを作成することで、プロパティを上書きまたは追加することができます。ファイル内のマッピングされた各プロパティは、既存のディスカバリー設定を上書きします。例:

splunk.discovery:
  receivers:
    postgresql:
      username: "${PG_USERNAME_ENVVAR}"
      password: "${PG_PASSWORD_ENVVAR}"

--discovery-properties=<filepath.yaml> 引数を使用して、他の Collectorと共有したくないディスカバリーモード プロパティをロードできます。この引数を使用してディスカバリープロパティを指定する場合、config.d/properties.discovery.yaml に含まれるプロパティは無視されます。

カスタム設定を作成する 🔗

カスタム・ディスカバリー設定を作成するには、以下の手順に従ってください:

  1. Linuxの /etc/otel/collector/config.dconfig.d フォルダに移動します。

  2. <name>.discovery.yaml ファイルを作成し、config.d のサブディレクトリ内に置きます。例えば、extensionsreceivers のように、<name> は使用したいコンポーネントの名前です。

  3. <name>.discovery.yaml ファイルを編集して、必要な設定を追加します。たとえば、レシーバーを追加する場合、Discovery Mode は Collector 構成の receivers オブジェクト内のコンテンツをロードします。

カスタム設定は、デフォルト設定でオーバーライドしたいフィールドで構成されます。例:

# <some-receiver-type-with-optional-name.discovery.yaml>
  <receiver_type>(/<receiver_name>):
     enabled: <true | false> # true by default
     rule:
        <observer_type>(/<observer_name>): <receiver creator rule for this observer>
     config:
        default:
           <default embedded receiver config>
        <observer_type>(/<observer_name>):
           <observer-specific config items, merged with `default`>
     status:
        metrics:
           <discovery receiver metric status entries>
        statements:
           <discovery receiver statement status entries>

Collector で使用する前に、--dry-run オプションを使用して、 結果のディスカバリー構成を確認します。

詳細については、DiscoveryレシーバーのREADMEファイル を参照してください。

カスタム設定ディレクトリを定義する 🔗

ディスカバリー設定用のカスタム・ディレクトリを定義するには、例のように --config-dir オプションを使用します:

otelcol --discovery --config-dir <custom_path>

言語ランタイムの追加設定 🔗

自動インストルメンテーションを使用してカスタマイズできる設定は他にも多数あります。

各言語で変更できる設定のリストについては、以下のリソースを参照してください:

言語

リソース

Java

Splunk Observability Cloud 用の Java エージェントを設定する

Node.js

Splunk Observability Cloud 用の Splunk Distribution of OTel JS を設定する

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