Skip to content

관측과 로그

관측과 로그

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에는 아래 값이 들어갑니다.

필드설명
actionPLACE, BREAK, INTERACT, PLACE_DENIED, INTERACT_DENIED 중 하나입니다.
block_idSeoulEnergy 내부 blockId입니다.
block_typeGENERATOR, RELAY, MACHINE, STORAGE 중 하나입니다.
provider_idNexo provider ID 또는 fallback ID입니다.
owner_town블록이 연결된 Towny 마을 이름입니다. 없으면 비어 있을 수 있습니다.
allowed작업 허용 여부입니다.
reasonOK, 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