Splunk Observability Cloud 用の Splunk Distribution of OTel JS を設定する
Splunk Distribution of OpenTelemetry JS を、トレースとログの関連付け、エクスポーターの有効化など、インストルメンテーションのニーズに合わせて設定します。
Splunk Distribution of OpenTelemetry JS は、インストルメンテーションのニーズに合わせて設定できます。ほとんどの場合、基本設定を調整するだけで開始するには十分です。テスト中。
以下のセクションでは、Splunk Distribution of OpenTelemetry JS 独自の新機能を有効にするためのオプションを含め、Node.js 用 OpenTelemetry を設定するために利用可能なすべての設定について説明します。
設定方法
Splunk Distribution of OpenTelemetry JS を設定するには、環境変数と start() 関数に渡す引数を組み合わせて使用します:
-
環境変数
例:
export OTEL_SERVICE_NAME='test-service' -
start()関数に渡される引数例:
start({ serviceName: 'my-node-service', });
メトリクススやトレースなど、サポートされている各データ・タイプのコンフィギュレーションは、コンフィギュレーション・オブジェクトの追加プロパティを使用して設定します:
start({
// general options like `serviceName` and `endpoint`
metrics: {
// configuration passed to metrics signal
},
profiling: {
// configuration passed to profiling signal
},
tracing: {
// configuration passed to tracing signal
},
});
オブジェクトの代わりにブーリアン値を渡すことで、特定のデータ型の収集をアクティブにすることもできます。例:
start({
// general options like `serviceName` and `endpoint`
metrics: true, // turn metrics on with default options
profiling: true, // turn profiling on with default options
});
一般設定
以下の設定は、Splunk Distribution of OpenTelemetry JS 固有のものです:
カテゴリ
設定
general
{「keys」:「識別子」、「description」:「説明」、「instrumented_components」:「コンポーネント」、「signals」:「シグナル」、「env」:「環境変数」、「default」:「デフォルト」、「type」:「タイプ」、「property」:「start() の引数」}
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
インストルメンテーション構成
以下の設定は、どのインストルメンテーションをアクティブにするかを制御します:
設定
カテゴリ
general
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
たとえば、デフォルトのインストルメンテーションをすべてオフにし、bunyan インストルメンテーションだけをオンにするには、以下の環境変数を設定します:
export OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=false
export OTEL_INSTRUMENTATION_BUNYAN_ENABLED=true
前の設定は、デフォルトで Splunk Distribution of OpenTelemetry JS によってロードされたインストルメンテーションにのみ適用されます。プログラム API を使用してユーザー指定のインストルメンテーションのリストを提供する場合、以前の設定は効果がありません。
トレース設定
以下の設定は、トレースの制限と属性を制御します:
|
環境変数 |
start()の引数 |
説明 |
|---|---|---|
|
OTEL_TRACE_ENABLED |
該当なし |
トレーサの作成と自動インストルメンテーションを有効にします。デフォルト値は |
|
OTEL_SERVICE_NAME |
|
インストルメンテーションしているサービスまたはアプリケーションの名前。 |
|
OTEL_RESOURCE_ATTRIBUTES |
該当なし |
報告されたスパンごとに追加されるリソース属性のカンマ区切りリスト。たとえば、 |
|
OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT |
該当なし |
スパンごとの属性の最大数。デフォルト値は無制限です。 |
|
OTEL_SPAN_EVENT_COUNT_LIMIT |
該当なし |
スパンあたりの最大イベント数。デフォルト値は無制限です。 |
|
OTEL_SPAN_LINK_COUNT_LIMIT |
該当なし |
スパンあたりの最大リンク数。デフォルト値は |
|
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT |
該当なし |
属性値の文字列の最大長。上限より大きい値は切り捨てられます。デフォルト値は |
サンプラーの設定
以下の設定はトレースサンプリングをコントロールします:
|
環境変数 |
説明 |
|---|---|
|
OTEL_TRACES_SAMPLER |
使用するサンプラー。デフォルト値は |
|
OTEL_TRACES_SAMPLER_ARG |
|
エクスポーターの設定
以下の設定は、トレースエクスポーターとそのエンドポイントをコントロールします:
カテゴリ
設定
exporter
{「keys」:「識別子」、「description」:「説明」、「instrumented_components」:「コンポーネント」、「signals」:「シグナル」、「env」:「環境変数」、「default」:「デフォルト」、「type」:「タイプ」、「property」:「start() の引数」}
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
Jaeger エクスポーター
Jaeger エクスポーターを使うには、以下の例のように @opentelemetry/exporter-jaeger パッケージを追加します:
const { start } = require('@splunk/otel');
const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
start({
serviceName: 'my-node-service',
tracing: {
spanExporterFactory: (options) => {
return new JaegerExporter({
serviceName: options.serviceName,
// Additional config
})
}
},
});
プロパゲータの構成
以下の設定はトレース伝搬をコントロールします:
カテゴリ
設定
プロパゲータ
{「keys」:「識別子」、「description」:「説明」、「instrumented_components」:「コンポーネント」、「signals」:「シグナル」、「env」:「環境変数」、「default」:「デフォルト」、「type」:「タイプ」、「property」:「start() の引数」}
exporter
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
SignalFx Tracing Library for Node.jsとの後方互換性のために、b3multiトレースプロパゲータを使用してください:
- Linux
-
export OTEL_PROPAGATORS=b3multi - Windows PowerShell
-
$env:OTEL_PROPAGATORS=b3multi
AlwaysOn Profilingの Node.js 設定
以下の設定は、Node.js エージェントの AlwaysOn Profiling機能を制御します:
カテゴリ
設定
profiler
{「keys」:「識別子」、「description」:「説明」、「instrumented_components」:「コンポーネント」、「signals」:「シグナル」、「env」:「環境変数」、「default」:「デフォルト」、「type」:「タイプ」、「property」:「start() の引数」}
exporter
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
プログラムで AlwaysOn Profilingを設定するには、次の例のように start 関数に引数を渡します:
start({
serviceName: '<service-name>',
profiling: true,
tracing: {
// configuration passed to tracing signal
},
});
メトリクスの設定
以下の設定は、ランタイム・メトリクスの収集を有効にします:
カテゴリ
設定
メトリック
{「keys」:「識別子」、「description」:「説明」、「instrumented_components」:「コンポーネント」、「signals」:「シグナル」、「env」:「環境変数」、「default」:「デフォルト」、「type」:「タイプ」、「property」:「start() の引数」}
exporter
https://raw.githubusercontent.com/splunk/o11y-gdi-metadata/main/apm/splunk-otel-js/metadata.yaml
start() 関数を使用します。既存のメトリクス・クライアントを設定してカスタムメトリクスを送信する
カスタムメトリクスの送信には、新しいクライアントを作成して設定する代わりに、既存のSignalFxクライアントを使用できます。
既存のクライアントを設定するには、start() 関数に以下のデータを渡します:
-
signalfx:オプションのclientおよびdimensionsフィールドを持つ Javascript オブジェクト。dimensionsオブジェクトは、各データポイントに事前定義されたディメンションを追加します。dimensionsの形式は{key: value, ...}です。
以下は、デフォルトで追加されるディメンションのリストです:
-
service:「トレース設定」の「serviceName」を参照してください。 -
metric_source:splunk-otel-js -
node_version:process.versions.node例えば16.10.0
サーバートレース情報
モバイルおよび Web アプリケーションからのリアルユーザーモニタリング(RUM) リクエストをサーバーのトレースデータに接続するには、以下の環境変数を設定して Splunk のトレース・レスポンス・ヘッダーを有効にします:
- Linux
-
export SPLUNK_TRACE_RESPONSE_HEADER_ENABLED=true - Windows PowerShell
-
$env:SPLUNK_TRACE_RESPONSE_HEADER_ENABLED=true
この環境変数を設定すると、アプリケーション・インストルメンテーションはHTTPレスポンスに以下のレスポンス・ヘッダーを追加します。
Access-Control-Expose-Headers: Server-Timing
Server-Timing: traceparent;desc="00-<serverTraceId>-<serverSpanId>-01"
Server-Timing ヘッダーには traceId と spanId が traceparent 形式で含まれます。詳しくは、W3C Web サイトの Server-Timing と traceparent のドキュメントを参照してください。