Skip to content

DataCollector 개요

DataCollector 개요

DataCollector는 Project Seoul 서버의 플레이어 행동, 경제, 전투, 퀘스트, 전기 시스템 이벤트를 구조화 로그로 남기는 플러그인입니다.

기획자와 운영자는 이 로그를 Grafana/Loki에서 조회해 아래 질문에 답할 수 있습니다.

  • 어떤 서버에서 유저가 접속/퇴장했는가
  • 어떤 상점, 경매, 거래에서 경제 이벤트가 발생했는가
  • 어떤 전투 이벤트가 많이 발생했는가
  • SeoulEnergy 블록이 어디에 설치/제거되었는가
  • 권한이나 Towny 제한 때문에 어떤 작업이 막혔는가

로그 흐름

Minecraft 서버
-> DataCollector
-> logs/latest.log
-> Promtail
-> Loki
-> Grafana

DataCollector는 DB에 직접 저장하지 않고, Minecraft 로그에 GAMEDATA 형식으로 기록합니다. Promtail이 이 로그를 Loki로 보내고, Grafana에서 조회합니다.

기본 로그 형식

GAMEDATA|event_type|{"ts":"...","server":"town","event_type":"...","player_uuid":"...","player_name":"...","ext":{...}}
필드설명
event_type이벤트 종류입니다. 예: join, economy_transaction, energy_block_action
server이벤트가 발생한 서버 ID입니다. 예: lobby, spawn, wild, town
player_uuid플레이어 UUID입니다.
player_name플레이어 이름입니다.
ext이벤트별 추가 정보입니다.

먼저 볼 Grafana/Loki 쿼리

전체 DataCollector 이벤트:

{job="minecraft"} |= "GAMEDATA|"

이벤트 타입별 조회:

{job="minecraft", event_type="energy_block_action"}

특정 플레이어 조회:

{job="minecraft"} |= "GAMEDATA|" |= "\"player_name\":\"Minzu__\""