OTel JS の Splunk ディストリビューションによって収集されるメトリックと属性

OpenTelemetry JS の Splunk Distribution は、次のメトリックを収集します。

OpenTelemetry JS の Splunk Distribution は、ランタイムおよびカスタムメトリックを収集します。ランタイムメトリック収集をアクティブ化するには、 「メトリック構成」を参照してください。

さまざまなメトリックタイプについては、 「メトリックタイプ」を参照してください。

メトリックコレクションのアクティブ化

Node.js メトリックを収集するには、 「メトリックの設定」を参照してください。

ランタイムメトリック

ランタイムメトリックをアクティブ化するには、 「メトリックの設定」を参照してください。次に、 runtimeMetricsEnabled 引数を start メソッドに渡すことによって、ランタイム メトリックをアクティブにする例を示します。

const { start } = require('@splunk/otel');

start({
   serviceName: 'my-service',
   metrics: {
     runtimeMetricsEnabled: true,
   }
});

次のランタイムメトリックが自動的に収集され、エクスポートされます。

メトリック

タイプ

説明

process.runtime.nodejs.memory.heap.total

ゲージ

ヒープ合計(バイト単位)。 process.memoryUsage().heapTotalから抽出されます。

process.runtime.nodejs.memory.heap.used

ゲージ

使用されたヒープ(バイト単位)。 process.memoryUsage().heapUsedから抽出されます。

process.runtime.nodejs.memory.rss

ゲージ

常駐セットサイズ(バイト単位)。 process.memoryUsage().rssから抽出されます。

process.runtime.nodejs.memory.gc.size

累積カウンタ

ガベージコレクタによって収集された合計(バイト単位)。

process.runtime.nodejs.memory.gc.pause

累積カウンタ

ガベージコレクタの経過時間(ナノ秒単位)。

process.runtime.nodejs.memory.gc.count

累積カウンタ

ガベージコレクタの実行数。

process.runtime.nodejs.event_loop.lag.max

ゲージ

収集間隔内の最大イベントループラグ(ナノ秒単位)。

process.runtime.nodejs.event_loop.lag.min

ゲージ

収集間隔内の最小イベントループラグ(ナノ秒単位)。

Node.js の SignalFx メトリックからの移行

SignalFx クライアントライブラリからカスタム メトリック インストゥルメンテーションを移行するには、次の手順を実行します。

  1. getSignalFxClient の 依存関係を opentelemetry/api-metricsに置き換え、 start()を使用してメトリックコレクションを初期化します。以下にその例を示します。

    // SignalFx
    const { start } = require('@splunk/otel');
    const { getSignalFxClient } = start({ serviceName: 'my-service' });

    次のようになります。

    // OpenTelemetry
    const { start } = require('@splunk/otel');
    const { metrics } = require('@opentelemetry/api-metrics');
    
    start({
       serviceName: 'my-service',
       metrics: true, // activate metrics with default configuration
    });
  2. getSignalFxClient() のコールをメトリックインスタンスに置き換えます。以下にその例を示します。

    // SignalFx
    getSignalFxClient().send({
       gauges: [{ metric: 'cpu', value: 42, timestamp: 1442960607000}],
       cumulative_counters: [{ metric: 'clicks', value: 99, timestamp: 1442960607000}],
    })

    次のようになります。

    // OpenTelemetry
    const meter = metrics.getMeter('my-meter');
    meter.createObservableGauge('cpu', result => {
       result.observe(42);
    });
    const counter = meter.createCounter('clicks');
    counter.add(99);

以前のメトリック名

OpenTelemetry JS の Splunk Distribution のバージョン 2.0 のリリースにより、メトリック名は OpenTelemetry 規則に準拠するように変更されました。次の表は、現在のメトリック名と以前のメトリック名との等価を示しています。

現在のメトリック名

前のメトリック名

process.runtime.nodejs.memory.heap.total

nodejs.memory.heap.total

process.runtime.nodejs.memory.heap.used

nodejs.memory.heap.used

process.runtime.nodejs.memory.rss

nodejs.memory.rss

process.runtime.nodejs.memory.gc.size

nodejs.memory.gc.size

process.runtime.nodejs.memory.gc.pause

nodejs.memory.gc.pause

process.runtime.nodejs.memory.gc.count

nodejs.memory.gc.count

process.runtime.nodejs.event_loop.lag.max

nodejs.event_loop.lag.max

process.runtime.nodejs.event_loop.lag.min

nodejs.event_loop.lag.min

メトリックのデバッグ

デバッグメトリックをアクティブにするには、 「メトリックの設定」を参照してください。デバッグメトリックは、内部デバッグ目的で、Splunk カスタマーサポートにデータを提供するために使用されます。

次に、 debugMetricsEnabled 引数を start メソッドに渡すことによって、ランタイム メトリックをアクティブにする例を示します。

const { start } = require('@splunk/otel');

start({
   serviceName: 'my-service',
   metrics: {
     debugMetricsEnabled: true,
   }
});

次のランタイムメトリックが自動的に収集され、エクスポートされます。

メトリック

タイプ

説明

splunk.profiler.cpu.start.duration

ヒストグラム

新しい V8 プロファイリング実行を開始する時間。

splunk.profiler.cpu.stop.duration

ヒストグラム

新しいV8プロファイリングの実行を停止する時間。

splunk.profiler.cpu.process.duration

ヒストグラム

スパンアクティベーションをスタックトレースと照合し、最終出力を作成するために費やした時間。

splunk.profiler.heap.collect.duration

ヒストグラム

V8 プロファイラを介して割り当てプロファイルを提供する時間。

splunk.profiler.heap.process.duration

ヒストグラム

コールグラフを横断し、割り当てサンプルからスタックトレースを構築する時間。