既存の手動インストルメンテーションの移行

テレメトリデータを Splunk Observability Cloud リアルユーザーモニタリング(RUM)に送信するために、別のベンダー用に追加した手動インストルメンテーションを移行できます。インストルメンテーションを移行するには、OpenTelemetry の規約を使用するようにインストルメンテーション コードを編集する必要があります。

別のベンダー用に追加した手動のインストルメンテーションを移行してテレメトリデータを Splunk RUM に送信できます。インストルメンテーションを移行するには、OpenTelemetry の規約を使用するようにインストルメンテーション コードを編集する必要があります。

以下の例では、Splunk RUM でさまざまなデータソースをインストルメンテーションする方法を示しています:

アクションやイベントのインストルメンテーションを移行する

アプリケーション内のアクティビティのカスタムタイムスタンプまたは時間範囲を収集するインストルメンテーションがある場合があります。たとえば、CPU 集約型の calculateEstateTax 関数のパフォーマンスがユーザーにどのように影響しているかを知るために、手動でこの関数をインストルメンテーションしている場合です。

OpenTelemetry を使って同じ関数をインストルメンテーションする場合、スパン内の開始時刻と終了時刻をキャプチャするだけでなく、属性を使ってさらに詳細を含めることができます:

import {trace} from '@opentelemetry/api'

function calculateEstateTax(estate) {
   const span = trace.getTracer('estate').startSpan('calculateEstateTax');
   span.setAttribute('estate.jurisdictionCount', estate.jurisdictions.length);
   var taxOwed = 0;
   // ...
   span.setAttribute('isTaxOwed', taxOwed > 0);
   span.end();
   return taxOwed;
}

カスタムプロパティ、タグ、属性のインストルメンテーションを移行する

ページに関する追加のタグまたはプロパティを収集し、RUM データストリームにその情報を含める機能がある場合があります。たとえば、A/B テスト、アカウント分類、アプリケーションのリリースバージョン、または UI モードに関する詳細をキャプチャしている場合です。

このような情報は、キーと値のペアである OpenTelemetry 属性を使用して保存できます。ページの読み込み時に関連するプロパティが使用可能な場合は、globalAttributes 設定を使用します。

SplunkRum.init( {
   beaconEndpoint: '...',
   rumAccessToken: '...',
   globalAttributes: {
      'account.type': goldStatus,
      'app.release': getReleaseNumber(),
   },
});

もしプロパティが後で利用可能になったり、ページの存続期間中に変更される可能性がある場合は、次の例のように動的に更新または追加してください:

SplunkRum.setGlobalAttributes({
   'account.type': goldStatus,
   'app.release': getReleaseNumber(),
   'dark_mode.enabled': darkModeToggle.status,
});

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

コード内で収集または処理されたエラーを報告する手動インストルメンテーションがある場合があります。エラーを収集して Splunk RUM に報告するには、SplunkRum.error 関数を使用します。

try {
   doSomething();
} catch (e) {
   SplunkRum.error(e);
}

SplunkRum.error 関数は、文字列と文字列の配列、ErrorErrorEvent オブジェクトを受け付けます。詳細については、「ブラウザ RUM エージェントが収集するエラー」を参照してください。