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 プロファイリングを有効にするには、次の手順に従います:
/etc/splunk/zeroconfig
ディレクトリにある <language>.conf ファイルを開きます。CPU プロファイリングには環境変数
SPLUNK_PROFILER_ENABLED=true
を、メモリプロファイリングにはSPLUNK_PROFILER_MEMORY_ENABLED=true
を設定します。アプリケーションを再起動します。
注釈
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 が言語レベルで送信するランタイムメトリクスを決定できます。
個々の言語のランタイムメトリクス収集を有効にするには、以下の手順に従います:
/etc/splunk/zeroconfig
ディレクトリにある <language>.conf ファイルを開きます。環境変数
SPLUNK_METRICS_ENABLED=true
を設定します。アプリケーションを再起動します。
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 のゲートウェイデプロイにデータを送 信してください:
/etc/splunk/zeroconfig
にある <language>.conf ファイルを開きます。環境変数
OTEL_EXPORTER_OTLP_ENDPOINT=<gateway_endpoint>
を設定します。<gateway_endpoint>はゲートウェイデプロイのポートです。アプリケーションを再起動します。
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
に含まれるプロパティは無視されます。
カスタム設定を作成する 🔗
カスタム・ディスカバリー設定を作成するには、以下の手順に従ってください:
Linuxの
/etc/otel/collector/config.d
でconfig.d
フォルダに移動します。<name>.discovery.yaml
ファイルを作成し、config.d
のサブディレクトリ内に置きます。例えば、extensions
やreceivers
のように、<name>
は使用したいコンポーネントの名前です。<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 |
|
Node.js |
Splunk Observability Cloud 用の Splunk Distribution of OTel JS を設定する |