すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:ミニプログラム用 RUM SDK のサンプル構成

最終更新日:Mar 14, 2025

Application Real-Time Monitoring Service (ARMS) のミニプログラム用 Real User Monitoring (RUM) SDK は、ビジネス要件に合わせて幅広いカスタム構成を提供します。このトピックでは、参照用にミニプログラムの一般的な SDK 構成について説明します。

SDK パラメーター

パラメーター

タイプ

説明

必須

デフォルト値

pid

文字列

ミニプログラム ID。

はい

-

endpoint

文字列

モニタリングデータのレポート先アドレス。

はい

-

env

-

ミニプログラムの環境:

  • prod: 本番環境

  • gray: カナリアリリース環境

  • pre: プレリリース環境

  • daily: 開発環境

  • local: ローカル環境

いいえ

prod

version

文字列

ミニプログラムのバージョン。

いいえ

-

user

オブジェクト

ユーザー設定。デフォルトでは、ユーザー ID(user.id)は SDK によって生成されます。

いいえ

デフォルトでは user.id は SDK によって生成されます

collectors

オブジェクト

コレクター設定。

いいえ

-

beforeReport

関数

レポートされるデータを変更またはブロックするために、データのレポート前に呼び出される関数。

いいえ

noop

reportConfig

オブジェクト

データレポート設定。

いいえ

{

flushTime: 3000,

maxEventCount: 20

}

sessionConfig

オブジェクト

セッションのサンプリングレートとタイムアウト設定。詳細については、「SessionConfig パラメーター」をご参照ください。

いいえ

-

parseViewName

関数

ビュー名 (view.name) を解析するために使用される関数。入力パラメーターはページの URL です。

いいえ

-

parseResourceName

関数

リソース名 (resource.name) を解析するために使用される関数。入力パラメーターはリソースの URL です。

いいえ

-

evaluateApi

関数

API イベントを解析するために使用される関数。詳細については、「EvaluateAPI パラメーター」をご参照ください。

いいえ

-

filters

オブジェクト

イベントフィルタリング設定。詳細については、「filters パラメーター」をご参照ください。

いいえ

-

properties

オブジェクト

すべてのイベントに有効なカスタムプロパティ。詳細については、「properties パラメーター」をご参照ください。

いいえ

-

ユーザーパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

id

String

ユーザー ID。SDK によって生成され、変更できません。

いいえ

SDK によって生成されるデフォルト ID

tags

String

タグ。

いいえ

-

name

String

ユーザー名。

いいえ

-

説明

独自のアカウントシステムを使用する場合は、ユーザー ID(user.id)ではなく、ユーザー名(user.name)またはタグ(user.tags)を変更することをお勧めします。ユーザー ID を上書きすると、ユニーク訪問者(UV)データに影響します。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  user: {
    name: getYourUserName(),
    tags: getYourTags(),
  }
});

ReportConfig パラメーター

パラメーター

説明

必須

デフォルト値

flushTime

数値

データがレポートされる間隔

有効な値:0 ~ 10000。

いいえ

3000

maxEventCount

数値

一度にレポートされるデータエントリの最大数

有効な値:1 ~ 100。

いいえ

20

説明

ユーザー ID を上書きすると、UV データに影響します。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  reportConfig: {
    flushTime: 0, // データが即時レポートされるように指定します
    maxEventCount: 50 // 一度にレポートされるデータエントリの最大数を指定します
  }
});

SessionConfig パラメーター

パラメーター

説明

必須

デフォルト値

sampleRate

数値

サンプリングレート。有効な値: 0 ~ 1。

0.5 は 50% のサンプリングレートを示します。

いいえ

1

maxDuration

数値

セッションの最大期間。単位:ミリ秒。デフォルト値: 86400000 (24 時間)。

いいえ

86400000

overtime

数値

セッションのタイムアウト期間。単位:ミリ秒。デフォルト値: 1800000 (30 分)。

いいえ

1800000

ユーザー ID とセッション情報は、ミニプログラムのローカルキャッシュに保存されます。

  • _arms_uid: 一意のユーザー ID (user.id)。

  • _arms_session: セマンティックセッション情報。

    • sessionId: 一意のセッション ID。

    • sampled: サンプリングがトリガーされたかどうかを示します。

    • startTime: セッションの開始タイムスタンプ。

    • lastTime: セッションが最後にアクティブになったタイムスタンプ。

`${sessionId}-${sampled}-${startTime}-${lastTime}`

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  sessionConfig: {
    sampleRate: 0.5, // サンプリングレートは 50% です。
    maxDuration: 86400000,
    overtime: 3600000,
  },
});

ユーザーパラメーター

SDK は、api や静的リソースなどのコレクターを使用して、ページ モニタリング データを収集します。

パラメーター

種類

説明

必須

既定値

api

ブール値 | オブジェクト

API リクエストを追跡します。

いいえ

true

jsError

ブール値 | オブジェクト

JavaScript エラーを追跡します。

いいえ

true

コンソールエラー

ブール値 | オブジェクト

console.error によってスローされたエラーを追跡します。

いいえ

true

アクション

ブール値 | オブジェクト

ユーザーの動作を追跡します。

いいえ

true

次の例では、ユーザー操作データの収集は無効になっています。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  collectors: {
    action: false,
  }
});

EvaluateAPI パラメーター

evaluateApi 関数は、request イベントと httpRequest イベントのカスタム解析を提供します。

パラメーター

タイプ

説明

options

Object

リクエストパラメーター。 url、ヘッダー、データなど。パラメーターはリクエストメソッドによって異なります。

response

Object

リクエストのレスポンス本文。

error

Error

このパラメーターはオプションであり、リクエストが失敗した場合にのみ渡されます。

この関数は非同期的に呼び出すことができます。Promise<IApiBaseAttr> が返されます。次の表に IApiBaseAttr について説明します。

パラメーター

タイプ

説明

必須

name

String

API 名。通常は集約された URL で、最大 1,000 文字です。

たとえば、URL が /list/123 の場合、集約された name フィールドは /list/$id として表示されます。

重要

このフィールドは、parseResourceName 関数によって返されるものよりも優先されます。

いいえ

message

String

API を説明する短い文字列。最大 1,000 文字です。

いいえ

success

Number

リクエストが成功したかどうかを示します。

  • 1: リクエストは成功しました。

  • 0: リクエストは失敗しました。

  • -1: リクエストのステータスは不明です。

いいえ

duration

Number

API の合計期間。

いいえ

status_code

Number | String

状態コード。

いいえ

snapshots

String

スナップショット。

説明

スナップショットには、reqHeaders、params、resHeaders に関する情報が保存されます。スナップショットを構成するフィールドをカスタマイズできます。スナップショットは、主に例外のトラブルシューティングに使用されます。スナップショットはインデックスを持たないため、クエリまたは集約のフィルター条件として構成することはできません。最大 5,000 文字の文字列のみ可能です。

いいえ

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  evaluateApi: async (options, response, error) => {
    const respText = JSON.stringify(response);

    // 返されたフィールドはデフォルトのコンテンツを上書きします。フィールドが返されない場合は、デフォルトのコンテンツが使用されます。
    return {
      name: 'my-custom-api',
      success: error ? 0 : 1,
      snapshots: JSON.stringify({
        params: 'page=1&size=10', // 入力パラメーター
        response: respText.substring(0, 2000), // 戻り値
        reqHeaders: '', // リクエストヘッダー
        resHeaders: '' // レスポンスヘッダー
      })
    }
  }
});

フィルター パラメーター

フィルター パラメーターは、レポートする必要のないリソース イベントと例外イベントを除外します。

パラメーター

タイプ

説明

必須

resource

MatchOption | MatchOption[]

レポートする必要のない、静的リソースと XMLHttpRequest や fetch などの API に関連するイベントを除外します。

いいえ

exception

MatchOption | MatchOption[]

レポートする必要のない例外イベントを除外します。

いいえ

Matchoption

type MatchOption = string | RegExp | ((value: string) => boolean);
  • string: 指定された値で始まる URL と一致します。たとえば、https://api.aliyun.comhttps://api.aliyun.com/v1/resource と一致します。

  • RegExp: 正規表現と URL を指定します。

  • function: 関数を使用して、URL が一致するかどうかを判断します。true が返された場合、URL は一致します。

入力が MatchOption[] の場合、上記の条件が順番に評価され、いずれかの条件が満たされた場合、除外されます。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  filters: {
    // 例外イベントを除外する
    exception: [
      'Test error', // 'Test error' で始まるエラー メッセージ
      /^Script error\.?$/, // error.message と一致する正規表現
      (msg) => {
        return msg.includes('example-error');
      },
    ],
    // リソースまたは API イベントを除外する
    resource: [
      'https://example.com/', // 'https://example.com/' で始まるリソース
      /localhost/i,
      (url) => {
        return url.includes('example-resource');
      },
    ],
  },
});

properties パラメーター

RUM が提供するプロパティは、すべてのイベントに対して構成できます。

パラメーター

説明

必須

[key: 文字列]

String | Number

  • キーは JSON 仕様に準拠した文字列である必要があります。キーの最大長は 50 文字です。キーの超過部分は切り捨てられます。

  • 値が文字列でも数値でもない場合、キーと値のペアは削除されます。

いいえ

evaluateApi、sendCustom、sendException、および sendResource を使用して、イベントにプロパティを追加できます。プロパティは、そのイベントに対してのみ有効です。

グローバル プロパティとイベント プロパティは、保存時にマージされます。イベント プロパティは、グローバル プロパティよりも優先順位が高くなります。イベント プロパティのキーがグローバル プロパティのキーと同じである場合、イベント プロパティはグローバル プロパティを上書きします。マージ後のキーと値のペアの数は 20 を超えることはできません。数が 20 を超える場合、ペアはキーに基づいてソートされ、超過分は削除されます。

グローバルに構成されたプロパティは、レポートされるすべてのイベントにアタッチされます。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  properties: {
    prop_string: 'xx',
    prop_number: 2,
    // キーまたは値の長さが制限を超える場合、超過部分は削除されます
    more_than_50_key_limit_012345678901234567890123456789: 'yy',
    more_than_2000_value_limit: new Array(2003).join('1'),
    // 次の無効なキーと値のペアは削除されます
    prop_null: null,
    prop_undefined: undefined,
    prop_bool: true,
  },
});

その他の パラメーター

RUM SDK では、IP アドレスと UserAgent に基づいて解決される共通プロパティを設定できます。事前に設定されたフィールドは、自動的に解決されたフィールドよりも優先順位が高くなります。

パラメーター

タイプ

説明

必須

device

Object

デバイス情報。

いいえ

os

Object

システムとコンテナーの情報。

いいえ

geo

Object

地理位置情報。

いいえ

isp

Object

キャリア情報。

いいえ

net

Object

ネットワーク情報。

いいえ

上記のフィールドの設定項目の詳細については、「共通属性」をご参照ください。

ArmsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  geo: {
    country: 'your custom country info',
    city: 'your custom city info',
  },
});

ReportConfig パラメーター

RUM SDK は、カスタムデータの変更とレポート、および SDK 構成の動的な変更を行うための API を提供します。

構成の取得

この関数は、SDK の構成を取得するために使用できます。

Setconfig

この関数は、SDK の構成を変更するために使用できます。

// 主要な設定を指定します
ArmsRum.setConfig('env', 'pre');

// 次の内容は上書きされる可能性があります
const config = ArmsRum.getConfig();
ArmsRum.setConfig({
  ...config,
  version: '1.0.0',
  env: 'pre',
});

Sendcustom

カスタム データをレポートするには、タイプ フィールドと名前フィールドを指定する必要があります。次の表は、データ レポートに関連するパラメーターについて説明しています。ビジネス セマンティクスを定義する必要があります。

パラメーター

タイプ

説明

必須

デフォルト値

type

String

タイプ

はい

-

name

String

名前

はい

-

group

String

グループ

いいえ

-

value

Number

説明

いいえ

-

ArmsRum.sendCustom({
  type: 'CustomEvnetType1',
  name: 'customEventName2',
  group: 'customEventGroup3',
  value: 111.11
});

SendException

カスタム例外データをレポートするには、名前フィールドとメッセージフィールドを指定する必要があります。

パラメータ

タイプ

説明

必須

デフォルト値

name

String

例外名。

はい

-

message

String

例外情報。

はい

-

file

String

例外が発生したファイル。

いいえ

-

stack

String

例外に関するスタック情報。

いいえ

-

line

Number

例外が発生した行。

いいえ

-

column

Number

例外が発生した列。

いいえ

-

ArmsRUM.sendException({
  // このパラメーターは必須です
  name: 'customErrorName',
  message: 'カスタム エラー メッセージ',
  // このパラメーターは任意です
  file: 'カスタム例外ファイル名',
  stack: 'カスタム例外 error.stack',
  line: 1,
  column: 2
});

Sendresource

カスタム リソース データをレポートするには、名前、種類、および期間フィールドを指定する必要があります。

パラメータ

説明

必須

デフォルト値

name

String

リソース名。

はい

-

type

String

リソースの型。例: script、api、image。

はい

-

duration

String

応答時間。

はい

-

success

Number

リクエストが成功したかどうかを示します。

  • 1: リクエストは成功しました。

  • 0: リクエストは失敗しました。

  • -1: リクエストのステータスは不明です。

いいえ

-

method

String

リクエスト メソッド。

いいえ

-

status_code

Number | String

状態コード。

いいえ

-

message

String

返されたメッセージ。

いいえ

-

url

String

リクエスト URL。

いいえ

-

trace_id

String

トレース ID。

いいえ

-

ArmsRum.sendResource({
  // このパラメーターは必須です
  name: 'getListByPage',
  message: 'success',
  duration: 800,
  // このパラメーターは任意です
  url: 'https://www.aliyun.com/data/getListByPage',
});