Session Observability
Monitor and analyze multiplayer session performance through detailed events and session data.
読み終わるまでの所要時間 2 分最終更新 14日前
Session Observability サービスでは、マルチプレイヤーセッションで発生した主要イベントを公開します。現時点では、Matchmaker のイベントがサポートされています。 Session Observability API では、ID または以下のフィルター基準ごとにセッション詳細をフェッチできます。
- プール ID
- プール名
- キュー名
- 地域 ID
- マッチメイキングチケット ID
- 作成日時
- 更新日時
認証
Session Observability サービスでは、サービスアカウント認証 を使用します。プロジェクトレベルの Multiplayer Session Details Viewer (マルチプレイヤーセッション詳細閲覧者) ロールを付与されたサービスアカウントに、該当プロジェクトで API リクエストを実行する権限が与えられます。セッションイベント
現時点では、以下のセッションイベントがサポートされています。
イベント名 | 説明 |
|---|---|
| Match Created (マッチ作成完了) | Matchmaker によりマッチが作成されました。該当マッチの |
| Allocation Requested (割り当てリクエスト完了) | 指定地域で、このセッション用に Multiplay Hosting 割り当てがリクエストされました。 |
| Allocation Succeeded (割り当て成功) | リクエストされた Multiplay Hosting 割り当てが成功しました。 |
| Allocation Failed (割り当て失敗) | リクエストされた Multiplay Hosting 割り当てが失敗しました。 |
| Players Assigned (プレイヤー割り当て完了) | Matchmaker により、このセッションにプレイヤーが割り当てられました。 |
| Backfill Match Created (バックフィルマッチ作成完了) | バックフィルの有効化が必須です。このセッションに関連付けられているバックフィルチケットでマッチが作成されました。このイベントには、該当マッチのチームと、そのマッチの作成に適用されたルールが記録されます。 |
| Players Connected (プレイヤー接続完了) | バックフィルの有効化が必須です。Matchmaker 外部のプレイヤーがセッションに接続しました。Matchmaker は DGS から送られたバックフィル更新情報を利用して、これらのプレイヤーを特定します。 |
| Players Disconnected (プレイヤー切断完了) | バックフィルの有効化が必須です。Matchmaker 外部のプレイヤーがセッションへの接続を解除しました。Matchmaker は DGS から送られたバックフィル更新情報を利用して、これらのプレイヤーを特定します。 |
サンプルセッションの詳細
以下に、バックフィルが有効にされていない場合の、セッション詳細の API から返される応答の例を示します。{ "allocation": { "completedAt": "2024-03-19T22:12:48.237Z", "regionId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "requestedAt": "2024-03-19T22:12:47.981Z", "status": "Allocated" }, "createdAt": "2024-03-19T22:12:47.847Z", "environmentId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "gameMode": { "poolId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "poolName": "default-pool", "queueId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "queueName": "default-queue" }, "matchmakingStatus": "OpenNotBackfilling", "projectId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "sessionEvents": [ { "appliedRules": [ { "context": "Team", "teamId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "name": "Blue Team", "type": "Difference", "source": "Players.CustomData.Skill", "reference": 500, "not": false, "externalData": {} } ], "teams": [ { "id": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "name": "Red Team", "playerIds": [ "Player 1", "Player 2", "Player 3", ] }, { "id": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "name": "Blue Team", "playerIds": [ "Player 4", "Player 5", "Player 6", ] } ], "timestamp": "2024-03-19T22:12:47.847Z", "type": "match.created" }, { "regionId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "timestamp": "2024-03-19T22:12:47.981Z", "type": "allocation.requested" }, { "timestamp": "2024-03-19T22:12:48.237Z", "type": "allocation.succeeded" }, { "assignmentStatus": "Found", "players": [ { "customData": { "Skill": 2000 }, "id": "Player 3", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" }, { "customData": { "Skill": 1800 }, "id": "Player 4", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" }, { "customData": { "Skill": 2100 }, "id": "Player 5", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" }, { "customData": { "Skill": 1750 }, "id": "Player 6", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" }, { "customData": { "Skill": 1950 }, "id": "Player 1", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" }, { "customData": { "Skill": 1675 }, "id": "Player 2", "qosResults": [], "ticketId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5" } ], "timestamp": "2024-03-19T22:12:49.198Z", "type": "players.assigned" } ], "sessionId": "0e5a4f23-5e1a-4a82-80b0-a1bd80019bc5", "updatedAt": "2024-03-19T22:12:49.198Z"}