이 문서는 독자의 OS에 맞게 Machbase-neo의 Prometheus metrics endpoint를 수집하고 Grafana 대시보드를 여는 절차를 안내합니다. Linux는 host network 방식, macOS/Windows는 Docker Desktop 방식으로 나눠서 실행합니다.
- 대상 endpoint:
http://127.0.0.1:5654/debug/metrics - 수집기: Prometheus (Docker)
- 시각화: Grafana (Docker)
생성된 주요 파일:
compose.ymlcompose.linux.ymlcompose.desktop.ymlprometheus/prometheus.linux.ymlprometheus/prometheus.desktop.ymlgrafana/provisioning/datasources/datasource.ymlgrafana/provisioning/dashboards/dashboard.ymlgrafana/dashboards/machbase-neo-metrics.json
- Docker 및 Docker Compose 사용 가능
- 5654, 9090, 3000 포트 사용 가능
- Machbase-neo 실행 파일 사용 가능
- 이 문서는 프로젝트 루트에서 실행하는 기준입니다
어느 OS에서든 Machbase-neo는 호스트에서 먼저 실행합니다.
cd neo-server
./tmp/machbase-neo serve --host 0.0.0.0정상 기동 확인 포인트:
- 로그에
HTTP Listen tcp://0.0.0.0:5654 - 로그에
machbase-neo web running at: http://127.0.0.1:5654
별도 터미널에서:
curl -sS http://127.0.0.1:5654/debug/metrics | head -n 20예시로 # HELP, # TYPE, memoryfs_count 등의 Prometheus 형식 텍스트가 보여야 합니다.
Linux에서는 Prometheus를 host network로 실행합니다.
docker compose -f compose.yml -f compose.linux.yml up -d확인:
docker compose -f compose.yml -f compose.linux.yml psDocker Desktop 환경에서는 Prometheus를 포트 공개 방식으로 실행합니다.
docker compose -f compose.yml -f compose.desktop.yml up -d확인:
docker compose -f compose.yml -f compose.desktop.yml ps- Prometheus:
http://127.0.0.1:9090 - Grafana:
http://127.0.0.1:3000 - Grafana 기본 계정:
admin / admin
curl -sS http://127.0.0.1:9090/api/v1/targetsmachbase-neo target의 health 값이 up 이어야 합니다.
curl -sS 'http://127.0.0.1:9090/api/v1/query?query=up%7Bjob%3D%22machbase-neo%22%7D'value가 1인 시계열이 존재하면 수집 성공입니다.
대시보드:
Machbase Neo Metrics Demo(Neo Demo 폴더에 자동 등록)
Linux에서는 Prometheus가 host network를 사용해야 Machbase-neo의 debug endpoint가 localhost 기준으로 접근되어 403 Forbidden을 피하기 쉽습니다. macOS/Windows에서는 Docker Desktop 특성상 host network가 같은 방식으로 동작하지 않으므로, 대신 9090 포트를 공개하고 host.docker.internal을 사용합니다.
Prometheus 설정은 OS별 prometheus/prometheus.linux.yml 또는 prometheus/prometheus.desktop.yml을 사용합니다.
- 확인:
curl -sS http://127.0.0.1:9090/api/v1/targets - 원인 후보:
- Machbase-neo 미기동
- 5654 포트 충돌
- OS에 맞지 않는 compose 파일 실행
- debug 접근 제어로 인한 403
- Prometheus datasource URL 확인:
host.docker.internal:9090 - Prometheus 자체 query에서
up{job="machbase-neo"}값이 1인지 선확인
- 현상:
./tmp/machbase-neo serve --host 0.0.0.0실행 후 일정 시점에 프로세스 종료- Prometheus
up{job="machbase-neo"}값이 0으로 하락
- 즉시 복구:
cd neo-server
./tmp/machbase-neo serve --host 0.0.0.0복구 확인:
curl -sS http://127.0.0.1:5654/debug/metrics | head -n 5
curl -sS 'http://127.0.0.1:9090/api/v1/query?query=up%7Bjob%3D%22machbase-neo%22%7D'- 운영 팁:
- 데모 중에는 neo 서버 실행 터미널을 별도로 유지하고, 종료 로그 발생 시 즉시 재기동
- 장기 실행이 필요하면 systemd/supervisor 등 프로세스 관리자를 사용해 자동 재시작 정책 적용
docker compose -f compose.yml -f compose.linux.yml down또는 macOS / Windows에서는:
docker compose -f compose.yml -f compose.desktop.yml downdocker compose -f compose.yml -f compose.linux.yml down -v또는 macOS / Windows에서는:
docker compose -f compose.yml -f compose.desktop.yml down -v