SignalFx Tracing Library for Node.jsからの移行

Splunk Distribution of OpenTelemetry JS は、非推奨の SignalFx Tracing Library for Node.js に代わるものです。Splunk Distribution of OTel JS に移行するには、次の手順に従ってください。

SignalFx Tracing Library for Node.js は廃止されており、2023 年 6 月 8 日にサポート終了となります。Splunk Distribution of OpenTelemetry JS に置き換えてください。移行方法については、以下の説明をお読みください。

Splunk Distribution of OpenTelemetry JS は、OpenTelemetry API を使用するオープンソースプロジェクトである OpenTelemetry Instrumentation for Node.js をベースにしています。

互換性と要件

Splunk Distribution of OpenTelemetry JS には Node.js 14 以降が必要です。 「Splunk OTel JS の互換性と要件」を参照してください。

SignalFx Tracing Library for Node.js から Splunk Distribution of OpenTelemetry JS への移行に関する考慮事項については、「Considerations for migrating to Splunk Distribution of OpenTelemetry JS」を参照してください。

Splunk Distribution of OpenTelemetry JS への移行

SignalFx Tracing Library for Node.js から Splunk Distribution of OpenTelemetry JS に移行するには、以下の手順に従ってください:

  1. トレースライブラリのパッケージを削除します。「SignalFx Tracing Library for Node.js の削除」を参照してください。

  2. Splunk Distribution of OpenTelemetry JS をデプロイします。「Splunk Distribution of OpenTelemetry JS をデプロイする」を参照してください。

  3. Node.js インストルメンテーションのインストールとアクティブ化」の説明に従って、ライブラリまたはフレームワークのインストルメンテーション パッケージをインストールします。サポートされているインストルメンテーション パッケージのリストについては、GitHub の「Default Instrumentation Packages」を参照してください。

  4. インストルメンテーション エントリー ポイントの更新「インストルメンテーション エントリー ポイントの更新」を参照してください。

  5. 既存の設定を移行します。「設定の移行」を参照してください。

注: 移行の際、スパン名と属性の意味上の規約が変更されます。詳細については、「SignalFx Smart Agent から Splunk Distribution of OpenTelemetry Collector への移行」を参照してください。

SignalFx Tracing Library for Node.js の削除

以下の手順に従って、トレース・ライブラリとその依存関係を削除してください:

  1. signalfx-tracing をアンインストールします:

    npm uninstall --save signalfx-tracing
  2. npm が signalfx-tracing のすべての依存関係を削除していない場合は、手動で削除してください。

  3. SignalFx Tracing Library for Node.jsに関連する追加のインストルメンテーション・パッケージを削除します。

Splunk Distribution of OpenTelemetry JS をデプロイする

Splunk Distribution of OpenTelemetry JS をインストールするには、「Splunk Observability Cloud の Node.js アプリケーションをインストルメンテーションする」を参照してください。

インストルメンテーション・エントリーポイントの更新

コードでは、SignalFxトレースのためのインストルメンテーション・エントリーポイントは、以下のようなものです:

const tracer = require('signalfx-tracing').init({
 // your options here
})

インストルメンテーション・エントリーポイントを更新するには、2つのオプションがあります:

  1. 次のコードに示すように、@splunk/otelstart() を使用するようにエントリーポイントを更新します:

    const { start } = require('@splunk/otel');
    
    start({
     // your new options here
    });
  2. SignalFx Tracing Library の代わりに Splunk Distribution of OpenTelemetry JS を使用するように、アプリケーションを自動的に更新します。これを行うには、次のコマンドを使用して Node.js を実行します。

    node -r @splunk/otel/instrument <your-app.js>
    注: Splunk Observability Cloud に直接トレースをエクスポートするには、「Splunk Observability Cloud にデータを直接送信する」を参照してください。

設定の移行

SignalFx トレース・ライブラリから Splunk Distribution of OpenTelemetry JS に設定を移行するには、以下の環境変数の名前を変更します:

SignalFx 環境変数

OpenTelemetry環境変数

SIGNALFX_ACCESS_TOKEN

SPLUNK_ACCESS_TOKEN

SIGNALFX_SERVICE_NAME

OTEL_SERVICE_NAME

SIGNALFX_ENDPOINT_URL

エンドポイント URL の更新」を参照してください。

SIGNALFX_RECORDED_VALUE_MAX_LENGTH

OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT

SIGNALFX_TRACING_DEBUG

デバッグログ設定の移行」を参照してください。

SIGNALFX_SPAN_TAGS

OTEL_RESOURCE_ATTRIBUTES をカンマ区切りのキーと値のペアで指定します。 「Splunk Observability Cloud 用の Splunk Distribution of OTel JS を設定する」を参照してください。

SIGNALFX_LOGS_INJECTION

該当なしログインジェクションは常にアクティブになります。「Node.js のトレースデータを Splunk Observability Cloud のログに接続する」を参照してください。

SIGNALFX_LOGS_INJECTION_TAGS

該当しない場合は、「Splunk Observability Cloud で Node.js のトレースデータをログに接続する」を参照してください。

SIGNALFX_ENABLED_PLUGINS

該当なしインストルメンテーション パッケージをインストールするには、「カスタム インストルメンテーションを追加する」を参照してください。

SIGNALFX_SERVER_TIMING_CONTEXT

SPLUNK_TRACE_RESPONSE_HEADER_ENABLED

SIGNALFX_TRACING_ENABLED

OTEL_TRACE_ENABLED

start() の引数として渡す設定オプションを使用している場合は、それらも更新してください。

SignalFx プロパティ

OpenTelemetry プロパティ

service

serviceName

url

endpoint

accessToken

accessToken

enabled

実際の値ではありません。環境変数 OTEL_TRACE_ENABLED を使用します。

debug

実際の値ではありません。「デバッグログ設定の移行」を参照してください。

tags

tracerConfig.resource

logInjection

logInjectionEnabled

logInjectionTags

実際の値ではありません。代わりに、tracerConfig.resource を使用してください。

flushInterval

実際の値ではありません。代わりに、環境変数 OTEL_BSP_SCHEDULE_DELAY を設定してください。

plugins

該当なしインストルメンテーション パッケージをインストールするには、「カスタム インストルメンテーションを追加する」を参照してください。

recordedValueMaxLength

該当なし代わりに、環境変数 OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT を設定してください。

enableServerTiming

serverTimingEnabled

デバッグログ設定の移行

インストルメンテーションによって生成されるデバッグログを設定する場合、SIGNALFX_TRACING_DEBUG に最も近いものは OTEL_LOG_LEVEL です。「診断ロギングの有効化」を参照してください。

エンドポイントURLの更新

デフォルトでは、Splunk Distribution of OpenTelemetry JS は Jaeger の代わりに OTLP エクスポーターを使用します。

SignalFx Tracing Library で使用していたレシーバエンドポイントが OTLP をサポートしている場合は、SIGNALFX_ENDPOINT_URL の代わりに OTEL_EXPORTER_OTLP_ENDPOINT を設定します。OTel Collector は OTLP をサポートしています。

カスタムメトリクス・コレクションの移行

SignalFx クライアントライブラリからカスタム メトリクス インストルメンテーションを移行するには、「Migrate from SignalFx metrics for Node.js」を参照してください。

インストルメンテーションの移行

SignalFx Tracing Library for Node.js でサポートされているライブラリは、すべて Splunk Distribution of OpenTelemetry JS でサポートされています。例外は、「Splunk Distribution of OpenTelemetry JS への移行の考慮点」に一覧表示されています。

同等のインストルメンテーションを見つけるには、OpenTelemetry レジストリで各インストルメンテーションを検索します。インストルメンテーションがバンドルされていない場合、カスタム インストルメンテーション パッケージを使用できます。「カスタム インストルメンテーションの追加」を参照してください。

Splunk Distribution of OpenTelemetry JS への移行の考慮点

SignalFx Tracing Library for Node.jsから移行する場合、以下の制限が適用されます:

  • Splunk Distribution of OpenTelemetry JS がサポートする Node.js バージョンのセットは、SignalFx Tracing Library がサポートするセットとは異なります。 「:ref:nodejs-otel-requirements」を参照してください。

  • デフォルトのフラッシュ間隔は、捕捉されたテレメトリデータがバックエンドに送信される頻度を定義するもので、2 秒から 500 ミリ秒に変更されており、変えることはできません。

  • 自動インストルメンテーションは以下のライブラリではご利用いただけません:
    • AdonisJS

    • amqp10

    • mongodb-core

    • sails

  • 一部のインストルメンテーションには特別な要件があります:
    • expresskoa、および hapi のインストルメンテーションは、スパンを生成するためにアクティブ http または https のインストルメンテーションを必要とします。

    • bluebirdqwhen は、AsyncLocalStorageContextManager (Node.jsのバージョンが14.8より低い場合は AsyncHooksContextManager )までサポートされています。

OpenTelemetry Registry を使用して、Splunk Distribution of OpenTelemetry JS でサポートされているライブラリの自動インストルメンテーション パッケージを検索します。