관측과 로그
관측과 로그
SeoulEnergy는 DataCollector와 연동되어 전기 블록 관련 운영 이벤트를 구조화 로그로 남깁니다.
로그 형식
DataCollector는 Minecraft 로그에 아래 형식으로 기록합니다.
GAMEDATA|energy_block_action|{...}Promtail은 GAMEDATA|...| 패턴에서 event_type label을 자동 추출하므로 Grafana/Loki에서 바로 조회할 수 있습니다.
{job="minecraft", event_type="energy_block_action"}기록되는 이벤트
| action | 의미 |
|---|---|
PLACE | 전기 블록 설치 성공 |
BREAK | 전기 블록 제거 성공 |
INTERACT | 발전기 또는 기계 GUI 열기 성공 |
PLACE_DENIED | 권한, Towny, 발전기 수 제한 등으로 설치 거부 |
INTERACT_DENIED | 권한 또는 Towny 제한으로 사용 거부 |
Payload 필드
ext에는 아래 값이 들어갑니다.
| 필드 | 설명 |
|---|---|
action | PLACE, BREAK, INTERACT, PLACE_DENIED, INTERACT_DENIED 중 하나입니다. |
block_id | SeoulEnergy 내부 blockId입니다. |
block_type | GENERATOR, RELAY, MACHINE, STORAGE 중 하나입니다. |
provider_id | Nexo provider ID 또는 fallback ID입니다. |
owner_town | 블록이 연결된 Towny 마을 이름입니다. 없으면 비어 있을 수 있습니다. |
allowed | 작업 허용 여부입니다. |
reason | OK, NO_PERMISSION, NOT_IN_TOWN, NOT_TOWN_RESIDENT, TOWN_GENERATOR_LIMIT 같은 사유입니다. |
world, x, y, z | 이벤트가 발생한 위치입니다. |
예시 조회
전기 블록 설치/제거만 보기:
{job="minecraft", event_type="energy_block_action"} |~ "\"action\":\"PLACE\"|\"action\":\"BREAK\""권한 또는 Towny 제한으로 막힌 이벤트 보기:
{job="minecraft", event_type="energy_block_action"} |~ "DENIED"특정 블록 ID만 보기:
{job="minecraft", event_type="energy_block_action"} |= "\"block_id\":\"electric_furnace\""의도적으로 기록하지 않는 것
아래 항목은 매초 또는 매 tick 발생할 수 있어서 기본 로그로 남기지 않습니다.
- 전력 재분배 결과
- 배터리 충전/방전 tick
- 기계 작업 tick
이 값이 필요하면 일반 로그가 아니라 샘플링된 집계 이벤트나 별도 메트릭으로 설계해야 합니다.
DataCollector 설정
DataCollector에서 에너지 로그를 끄고 싶으면 plugins/DataCollector/config.yml에서 아래 값을 바꿉니다.
events: energy: false