Splunk Distribution of OTel JS によって収集されたメトリクスと属性

Splunk Distribution of OpenTelemetry JS は以下のメトリクスを収集します。

Splunk Distribution of OpenTelemetry JS は、ランタイムメトリクスとカスタムメトリクスを収集します。ランタイムメトリクスの収集を有効にするには、「メトリクスの設定」を参照してください。

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

メトリクス・コレクションを有効にする

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

ランタイム・メトリクス

ランタイムメトリクスを有効にするには、「メトリクスの設定」を参照してください。次の例では、 startメソッドに runtimeMetricsEnabled 引数を渡して、ランタイム・メトリクスを有効にする方法を示します:

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);

以前のメトリクス名

Splunk Distribution of OpenTelemetry JS のバージョン 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 カスタマーサポートへのデータ提供に使用されます。

次の例では、 startメソッドに debugMetricsEnabled 引数を渡して、ランタイム・メトリクスを有効にする方法を示します:

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

ヒストグラム

コールグラフを走査し、アロケーションサンプルからスタックトレースを構築する時間。