서버사이드
개요
서버사이드에서 수집하는 유저의 행동로그를 수집하는 파이프라인에 로그를 기록하는 방법과 로그 규약에 대한 가이드 입니다.
연동 기본 규약
로그 규약
로그 시스템은 게임과 관련된 모든 로그를 통합 수집/관리/분석 하는 시스템으로 대량 로그 특성상 반드시 준수해야 하는 규칙이 있습니다.
로그는 반드시 건당 단일
JSON
Type 이어야 합니다. (JSON
root는 배열이 아니어야 합니다.)JSON
은 로그 데이터 구별을 위해 반드시 아래 필드가 있어야 합니다. (인사이트랩에서 제공하는 로그 명세서 규칙을 따르니, 보다 자세한 정보는 로그 명세서를 참고 바랍니다.)log_type
로그를 구별하기 위한 로그 이름로그 이름은 대문자로 한다.
모든 서버 유저 행동 로그는
log_type
을 지정하여 다른 로그와 충돌이 발생하지 않도록 합니다.
service_id
게임에 부여되는 Service ID가 로그에 포함 되어야 합니다.
cre_time
로그 발생 시간을 ISO 8601 표준 시간으로 기록합니다. (예:
2024-02-07T14:00:00.000Z
)
환경 변수
연동 인프라는 Endpoint가 변경 될 수 있어 빌드의 배포 시점에 주입이 가능하도록 되도록 환경 변수를 통해 입력 받는 것을 추천합니다.
개발 환경
온프레미스 환경에서 개발 진행 시 아래 샘플 데이터로 테스트 진행 하실 수 있습니다.
연동 기술
Kinesis
Amazon Kinesis는 스트리밍 데이터를 처리하는 솔루션입니다. Kinesis를 통해 유입되는 로그 스트림을 처리하여 실시간 조회 환경과 분석 시스템으로 이관됩니다.
레퍼런스 참고 자료
레코드를 기록하는 API 가이드
Kinesis Data Stream은 데이터 생성자(스트림을 전송하는 AWS SDK Client)의 수에 따라 서버 샤드 수가 비례하여 증가 되어야 합니다.
단일 샤드가 처리 할 수 있는 요청 수와 용량이 고정되어 있기 때문에 과도하게 많은 AWS SDK Client를 선언 하거나 소량의 로그를 매우 빈번하게 요청 하는 경우 샤드가 처리할 수 있는 용량이 많이 남아 있음에도 많은 수의 샤드를 구성하여야 합니다.
되도록 풀을 구성하고, 다수의 로그를 모아서 스트리밍 하는 것이 인프라 구성 및 통신 부하 감소 측면에서 도움이 됩니다.
파티션 키
파티션 키는 레코드를 데이터 스트림의 다른 샤드에 격리하는 기준 값입니다. 여러 샤드 균등하게 분리하기 위해 랜덤키나 회원 번호등 해싱 하였을 때 비교적 균등하게 분포되는 값을 활용합니다.
일반적으로 회원 번호(IMID)나 세션 키와 같이 동일 샤드에서 처리 순서 보장의 이점이 있는 값을 사용하는 것을 추천합니다.
유저 행동 로그 조회
실시간 조회 환경
OpenSearch Dashboard를 통해 유저 행동 로그를 실시간으로 조회 할 수 있습니다.
Last updated