Docs » Splunk Observability Cloud でサポートされているインテグレーション » モバイルおよび Web アプリケーションを Splunk RUM でインストルメンテーションする » Splunk RUM でブラウザベースの Web アプリケーションをインストルメンテーションする » 既存の手動インストルメンテーションの移行

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

テレメトリデータを 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エージェントが収集したエラー を参照してください。

このページは 2024年05月14日 に最終更新されました。