DataCollector 개요
DataCollector 개요
DataCollector는 Project Seoul 서버의 플레이어 행동, 경제, 전투, 퀘스트, 전기 시스템 이벤트를 구조화 로그로 남기는 플러그인입니다.
기획자와 운영자는 이 로그를 Grafana/Loki에서 조회해 아래 질문에 답할 수 있습니다.
- 어떤 서버에서 유저가 접속/퇴장했는가
- 어떤 상점, 경매, 거래에서 경제 이벤트가 발생했는가
- 어떤 전투 이벤트가 많이 발생했는가
- SeoulEnergy 블록이 어디에 설치/제거되었는가
- 권한이나 Towny 제한 때문에 어떤 작업이 막혔는가
로그 흐름
Minecraft 서버 -> DataCollector -> logs/latest.log -> Promtail -> Loki -> GrafanaDataCollector는 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__\""