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

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

最終更新日:Jun 11, 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 によって生成されます。

いいえ

-

beforeReport

関数

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

いいえ

-

reportConfig

オブジェクト

データレポート設定。詳細については、「reportConfig パラメーター」をご参照ください。

いいえ

-

sessionConfig

オブジェクト

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

いいえ

-

collectors

オブジェクト

コレクター設定。詳細については、「コレクターパラメーター」をご参照ください。

いいえ

-

parseResourceName

関数

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

いいえ

-

evaluateApi

関数

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

いいえ

-

filters

オブジェクト

イベントフィルタリング設定。詳細については、フィルター構成を参照してください。

いいえ

-

properties

オブジェクト

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

いいえ

-

ユーザーパラメーター

パラメーター

タイプ

説明

必須

デフォルト値

id

String

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

いいえ

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

tags

String

タグ。

いいえ

-

name

String

ユーザー名。

いいえ

-

説明

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

armsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  user: {
    name: 'your user.name',
    tags: 'your user.tags',
  },
});

reportConfig パラメーター

パラメーター

タイプ

説明

必須

デフォルト値

flushTime

数値

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

有効な値: 0 ~ 10000。

いいえ

3000

maxEventCount

数値

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

有効な値: 1 ~ 100。

いいえ

20

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

数値

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

いいえ

3600000

パラメーター

タイプ

説明

必須

デフォルト値

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 や例外などのコレクターを使用して、ミニゲームのモニタリングデータを収集します。

パラメータ

種類

説明

必須

デフォルト値

perf

ブール値 | オブジェクト

ミニゲームのパフォーマンスデータを追跡します。

いいえ

true

api

ブール値 | オブジェクト

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

いいえ

true

staticResource

ブール値 | オブジェクト

静的リソースのリクエストを追跡します。

いいえ

true

consoleError

ブール値 | オブジェクト

コンソールエラーを追跡します。

いいえ

true

jsError

ブール値 | オブジェクト

JavaScript エラーを追跡します。

いいえ

true

action

ブール値 | オブジェクト

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

いいえ

true

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

armsRum.init({
  pid: "your app id", // アプリID
  endpoint: "your endpoint", // エンドポイント
  collectors: {
    api: false, // API 収集を無効化
  },
});

evaluateApi パラメーター

evaluateApi 関数は、API リクエストイベントのカスタム解析を提供します。

パラメーター

タイプ

説明

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 文字以内の API を説明する短い文字列です。

いいえ

success

Number

リクエストが成功したかどうかを示します。有効な値:

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

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

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

いいえ

duration

Number

リクエストの合計時間。

いいえ

status_code

Number | string

状態コード。

いいえ

snapshots

String

スナップショット。

説明

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

いいえ

armsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  evaluateApi: async (options, response, error) => {
    // 返されたフィールドはデフォルトのコンテンツを上書きします。フィールドが返されない場合は、デフォルトのコンテンツが使用されます。
    return {
      name: 'my-custom-api',
      success: error ? 0 : 1,
      // オプション。
      snapshots: JSON.stringify({
        params: 'page=1&size=10', // 入力パラメーター。
        response: '', // 戻り値。
        reqHeaders: '', // リクエストヘッダー。
        resHeaders: '', // レスポンスヘッダー。
      }),
      properties: {
        prop_msg: 'custom msg',
        prop_num: 1,
      },
    };
  },
});

フィルター パラメーター

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

パラメータ

種類

説明

必須

resource

MatchOption | MatchOption[]

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

いいえ

exception

MatchOption | MatchOption[]

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

いいえ

MatchOption

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

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

  • function: 関数を使用して、URL が一致するかどうかを判断します。true が返された場合、URL は一致します。例外をフィルタリングする場合、2 番目のパラメーター(Error オブジェクト)が渡されます。

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

armsRum.init({
  pid: "your app id",
  endpoint: "your endpoint",
  filters: {
    // 例外イベントを除外する
    exception: [
      'Test error', // 'Test error' で始まるエラーメッセージをフィルタリングします。
      /^Script error\.?$/, // 正規表現を指定します。
      (msg, error) => {
        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 文字です。キーの超過部分は切り捨てられます。

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

いいえ

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

その他の パラメーター

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

パラメータ

種類

説明

必須

device

Object

デバイス情報。

いいえ

os

Object

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

いいえ

geo

Object

地理位置情報。

いいえ

isp

Object

ISP 情報。

いいえ

net

Object

ネットワーク情報。

いいえ

上記のパラメーターの設定項目の詳細については、「共通属性」をご参照ください。

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

SDK API

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

getConfig

この関数を使用して、SDK 構成を取得できます。

setConfig

この関数を使用して、SDK 構成を変更できます。

// 特定のキーを設定する
armsRum.setConfig('env', 'pre');

// 次の設定を上書きする
const config = armsRum.getConfig();
armsRum.setConfig({
  ...config,
  version: '1.0.0',
  env: 'pre',
});

sendCustom

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

パラメータ

タイプ

説明

必須

type

String

タイプ。

はい

name

String

名前。

はい

group

String

グループ。

いいえ

value

Number

値。

いいえ

properties

Object

カスタム プロパティ。

いいえ

armsRum.sendCustom({
  // 必須。
  type: 'CustomEvnetType1',
  name: 'customEventName2',
  // オプション。
  group: 'customEventGroup3',
  value: 111.11,
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});

sendException

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

パラメータ

タイプ

説明

必須

name

String

例外名。

はい

message

String

例外メッセージ。

はい

file

String

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

いいえ

stack

String

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

いいえ

line

Number

例外が発生した行。

いいえ

column

Number

例外が発生した列。

いいえ

properties

Object

カスタムプロパティ。

いいえ

armsRum.sendException({
  // 必須。
  name: 'customErrorName',
  message: 'custom error message',
  // オプション。
  file: 'custom exception filename',
  stack: 'custom exception error.stack',
  line: 1,
  column: 2,
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});

sendResource

カスタムリソースデータをレポートするには、名前、タイプ、および期間パラメーターを指定する必要があります。

パラメータ

タイプ

説明

必須

name

String

リソース名。

はい

type

String

リソースのタイプ。例: css、javascript、xmlhttprequest、fetch、api、image、および font。

はい

duration

String

応答時間。

はい

success

Number

リクエストが成功したかどうかを示します。有効な値:

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

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

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

いいえ

method

String

リクエストメソッド。

いいえ

status_code

Number | string

状態コード。

いいえ

message

String

返されたメッセージ。

いいえ

url

String

リクエスト URL。

いいえ

trace_id

String

トレース ID。

いいえ

properties

Object

カスタムプロパティ。

いいえ

armsRum.sendResource({
  // 必須。
  name: 'getListByPage',
  message: 'success',
  duration: 800,
  // オプション。
  url: 'https://www.aliyun.com/data/getListByPage',
  properties: {
    prop_msg: 'custom msg',
    prop_num: 1,
  },
});