Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Automatic discovery of apps and services » Automatic discovery for Linux » Advanced customization for automatic discovery in Linux

Advanced customization for automatic discovery in Linux 🔗

Learn how to customize automatic discovery and zero-code instrumentation for advanced scenarios.

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

Override default automatic instrumentation settings 🔗

You can override default automatic instrumentation settings to use features for profiling and runtime metrics collection.

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 ミリ秒に設定します。

Activate runtime metrics collection 🔗

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

ランタイムメトリクスをグローバルに有効にするには、インストール時に --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. アプリケーションを再起動します。

Use automatic discovery with gateway mode 🔗

Splunk OTel Collector Chart はデフォルトでエージェントモードを使用します。ゲートウェイモードを有効にすると、OpenTelemetry Collector のインスタンスが別のコンテナに配置され、このインスタンスがクラスター全体からデータを収集します。

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

You can’t directly deploy automatic discovery in gateway mode for Linux, but you can send collected data from automatic discovery to an existing gateway deployment.

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

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

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

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

The Collector now sends data to your gateway deployment.

Customize discovery settings for third-party applications 🔗

By default, automatic discovery reads the built-in configuration provided by the Collector executable. You can provide your own configuration to modify settings or adjust the existing configuration in case of a partial discovery status.

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

  • 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>

Additional settings for language runtimes 🔗

There are many other settings you can customize using automatic instrumentation.

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

言語

リソース

Java

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

Node.js

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

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