기술 자료

지원

Multiplayer

Multiplayer

Session Observability

Monitor and analyze multiplayer session performance through detailed events and session data.
읽는 시간 2분최근 업데이트: 10일 전

Session Observability 서비스는 멀티플레이어 세션에서 발생한 주요 이벤트를 보여 줍니다. 현재 이 서비스는 Matchmaker 이벤트를 지원합니다. Session Observability API를 사용하면 ID나 다음 필터 기준에 따라 세션 세부 정보를 가져올 수 있습니다.
  • 풀 ID
  • 풀 이름
  • 대기열 이름
  • 영역 ID
  • 매치메이킹 티켓 ID
  • 다음 날짜 이후 생성
  • 다음 날짜 이후 업데이트
세션 세부 정보는 생성일로부터 30일 동안 저장됩니다.

Authentication

Session Observability 서비스는 서비스 계정 인증을 사용합니다. 프로젝트 레벨 멀티플레이어 세션 세부 정보 조회자 역할이 부여된 서비스 계정에 권한이 부여되어 해당 프로젝트의 API에 대한 요청을 진행할 수 있습니다.

세션 이벤트

현재 지원되는 세션 이벤트는 다음과 같습니다.

이벤트 이름

설명

Match CreatedMatchmaker를 통해 매치가 생성되었습니다. 이 매치의
matchId
는 세션의
sessionId
입니다. 이 이벤트에는 해당 매치의 팀과 매치를 생성하는 데 적용된 규칙이 포함됩니다.
Allocation Requested특정 영역에 있는 이 세션에 대해 Multiplay Hosting 할당이 요청되었습니다.
Allocation Succeeded요청된 Multiplay Hosting 할당을 성공적으로 완료했습니다.
Allocation Failed요청된 Multiplay Hosting 할당을 실패했습니다.
Players AssignedMatchmaker를 통해 플레이어가 이 세션에 지정되었습니다.
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"}