Session observability

The Session observability service exposes key events that occurred in a multiplayer session. Currently, it supports Matchmaker events.

The Session observability API allows fetching of session details by ID or by the following filter criteria:

  • Pool ID
  • Pool Name
  • Queue Name
  • Region ID
  • Matchmaking Ticket ID
  • Created After
  • Updated After

Session details are stored for 30 days from its creation.

Authentication

The Session Observability service uses service account authentication. Service accounts that are granted the project-level Multiplayer Session Details Viewer role will be authorized to make requests to the API for that project.

Session events

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.

The following session events are currently supported:

Event nameDescription
Match CreatedA match was created by matchmaker. The matchId of this match is the sessionId of this session. This event contains the teams in this match and the rules applied to create this match.
Allocation RequestedA Multiplay Hosting allocation was requested for this session in the specified region.
Allocation SucceededThe requested Multiplay Hosting allocation was successful.
Allocation FailedThe requested Multiplay Hosting allocation has failed.
Players AssignedPlayers have been assigned to this session by the matchmaker.
Backfill Match CreatedRequires backfill to be enabled. A match has been created for the backfill ticket associated with this session. This event contains the teams in this match and the rules applied to create this match.
Players ConnectedRequires backfill to be enabled. Players external to the matchmaker have connected to the session. The matchmaker uses backfill updates sent by the DGS to determine these players.
Players DisconnectedRequires backfill to be enabled. Players external to the matchmaker have disconnected from the session. The matchmaker uses backfill updates sent by the DGS to determine these players.

Sample session detail

The following is an example of a response received from the API of a session detail where backfill is not enabled.

{
    "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"
}