会话可观测性

会话可观测性服务公开发生在多人游戏会话中的关键事件。当前,它支持匹配器事件。

会话可观测性 API允许通过 ID 或以下过滤条件获取会话详细信息

  • 池 ID
  • 池名称
  • 队列名称
  • 区域 ID
  • 匹配票证 ID
  • 创建于
  • 更新于

会话详细信息从其创建之日起保存 30 天。

身份验证

会话可观测性服务使用服务帐户身份验证。授予项目级多人游戏会话详细信息查看器角色的服务帐户将被授权对该项目的 API 发出请求。

会话事件

Player IDs in session events are anonymized to Player 1, Player 2, etc. to comply with policies regarding retention of personal identifiable information. These anonymized IDs are consistent across one session only.

当前支持以下会话事件

事件名称描述
创建匹配匹配器创建了一个匹配。此匹配的matchId是此会话的sessionId。此事件包含此匹配中的队伍以及创建此匹配所应用的规则。
请求分配在指定区域为该会话请求了游戏服务器托管分配。
分配成功请求的游戏服务器托管分配已成功。
分配失败请求的游戏服务器托管分配已失败。
分配玩家匹配器已将玩家分配到该会话。
创建回填匹配需要启用回填。已为与该会话关联的回填票证创建了一个匹配。此事件包含此匹配中的队伍以及创建此匹配所应用的规则。
玩家已连接需要启用回填。外部匹配器的玩家已连接到该会话。匹配器使用 DGS 发送的回填更新来确定这些玩家。
玩家已断开连接需要启用回填。外部匹配器的玩家已从该会话断开连接。匹配器使用 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"
}