2026년 OpenClaw Gateway Prometheus 지표와 Grafana 보기: 원격 물리 Mac 7×24에서 /metrics 스크랩·알림 임계값·전형적 오탐 분기(복붙 scrape·패널 쿼리 + FAQ)
플랫폼·SRE 팀이 원격 물리 Mac에 OpenClaw Gateway를 올리면 SSH로는 멀쩡해 보이는데 Prometheus는 up=0이거나, Grafana에서 새벽 p95 스파이크가 전원을 깨우는 일이 잦습니다. 본문은 스크랩 토폴로지·알림 관용도 의사결정 매트릭스, 7단계 재현 런북, 복붙 scrape·PromQL·알림 조각, FAQ를 제시합니다.
1. 도입·메트릭 이름 접두 규칙
이 글은 임대 물리 Mac(예: ZoneMac 노드)에서 OpenClaw를 돌리는 팀을 대상으로 합니다. HTTP 지연, 오류율, 프로세스 상태를 SSH curl 한 번이 아니라 질의·감사·알림 가능한 시계열로 두고 싶을 때의 런북입니다.
메트릭 이름은 OpenClaw 버전·런타임(Node.js prom-client, OpenTelemetry, 게이트웨이 내장 통계)에 따라 다릅니다. 아래 PromQL은 일반적인 HTTP 서버 메트릭(예: http_request_duration_seconds_*, http_requests_total, *_bucket/_sum/_count)을 가정합니다. 호스트에서 curl -s localhost:<port>/metrics | grep -E 'http_|process_'로 확인한 뒤 쿼리의 이름을 실제에 맞게 바꾸세요.
프로세스 기준선·데몬 쪽을 먼저 다듬는다면 2026년 OpenClaw Gateway 7×24 끊김과 데몬 트러블슈팅: install-daemon, launchd와 openclaw health 재현 가능 런북을 함께 보세요. 컨테이너와 베어메탈 중 어디에 메트릭을 둘지 고민이면 2026년 원격 Mac 노드의 OpenClaw: Docker와 베어메탈 중 무엇을 쓸까? Compose 헬스 프로브, 지속 볼륨, 재현 가능한 오류 FAQ에서 스크랩 경로(호스트 vs 브리지)를 먼저 고정하는 편이 안전합니다.
2. 페인 포인트
- 제약: 바인드 주소 vs Prometheus 위치. 게이트웨이가
127.0.0.1에만 있고 Prometheus가 컨테이너나 별도 관측 호스트에 있으면 스크랩은 실패(up=0)하지만 Mac 로컬 curl은 성공합니다. - 숨은 비용: 고카디널리티 라벨·과도한 scrape_interval. 경로나 API 키 조각을 라벨에 넣으면 TSDB 카디널리티가 폭발하고, 1초 스크랩·Wi‑Fi·터널은 지터가 Grafana 차트에 “털”로 남습니다.
- 안정성·오탐: macOS 절전·배포 창. 디스플레이 절전, 디스크 절전, 핫 리로드가 p95를 잠깐 올릴 수 있고
for: 0s알림은 새벽 온콜을 시끄럽게 합니다.
3. 스크랩·알림 의사결정 매트릭스
가동 전에 「누가 어떤 네트워크 네임스페이스에서 스크랩하는지」와 알림이 업무 시간을 존중할지 합의하세요.
| 차원 | 로컬 Prometheus / vmagent | 중앙 원격 Prometheus |
|---|---|---|
| 네트워크 경로 | 게이트웨이와 동일 머신 또는 브리지—127.0.0.1 쓰기 쉬움 |
LAN에 리슨하거나 역프록시/Tailscale로 읽기 전용 메트릭 노출 |
| 운영 부담 | 노드마다 설정, 업그레이드 시 파일 다수 | 규칙·대시보드 한곳, 도달성 안정 필요 |
| 전형적 적합 | 단일 테넌트, 격리 강함, 첫 관측 루프 | 다중 리전 풀, 통합 SLO·알림 라우팅 |
| 알림 스타일 | 잘 맞는 경우 | 주 리스크 |
|---|---|---|
| for: 2–5m + rate 기반 식 | HTTP 5xx, 타임아웃, 오류 비율 상승 | 지속 장애 감지가 몇 분 늦음(SLA 허용 시) |
| for: 0 + up 프로브 | 프로세스 소멸, 포트 미응답 | 롤링 재시작 시 시끄러움—침묵·병합 필요 |
| 시간대 침묵 | 알려진 유지보수, 백업, GC 스파이크 | 잊힌 침묵이 실제 사고를 가림 |
4. 7단계 런북(원격 물리 Mac)
- 엔드포인트·바인드 확인. 게이트웨이 설정에서 메트릭 활성화,
metrics_path(보통/metrics)와 리슨 IP 확인. 원격 스크랩이면 스크래퍼와 네임스페이스를 공유하지 않는 한127.0.0.1전용은 피합니다. - 로컬 스모크.
curl -sS http://127.0.0.1:<port>/metrics | head -n 40로 HTTP·프로세스 메트릭의 HELP/TYPE 줄 확인. - 스크래퍼 위치 선택. 단일 노드 PoC: 공존 Prometheus. 다수 노드: vmagent remote-write 또는 방화벽 허용이 있는 중앙 Prometheus.
- 스크랩 설정 작성(아래).
scrape_interval: 15s–30s, 적절한scrape_timeout, 안정적인instancerelabel. - Grafana 연결. Prometheus 데이터 소스 추가, 전역 RPS·p95·5xx 비율·
up·스크랩 지속 시간 패널. - 알림·라우트. 오류 비율과 raw
up에 서로 다른for, 배포 중엔 Alertmanager 침묵 또는 CI 유지보수 플래그. - macOS 7×24 설정 정렬. 유선 이더넷 선호, 디스크 절전 끄기, 타임존·NTP 고정. 스크랩은 정상인데 앱이 500을 내는 경우 메트릭보다 애플리케이션 로그를 먼저 봅니다.
5. 복붙 scrape·PromQL·알림
5.1 Prometheus scrape_configs 조각
targets와 포트를 게이트웨이 주소에 맞게 바꿉니다. 역프록시 뒤라면 /metrics 경로를 통과시키고 해당 경로는 캐시 비활성화.
scrape_configs:
- job_name: openclaw-gateway
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
static_configs:
- targets:
- '127.0.0.1:18789'
labels:
env: prod
role: gateway
# relabel_configs:
# - source_labels: [__address__]
# target_label: instance
5.2 Grafana 패널 쿼리(호스트 메트릭 이름에 맞게 치환)
- 초당 요청(RPS):
sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) - p95 지연(히스토그램):
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="openclaw-gateway"}[5m])) by (le)) - 5xx 비율(예시):
sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) - 스크랩 상태:
up{job="openclaw-gateway"}및scrape_duration_seconds{job="openclaw-gateway"}
5.3 알림 규칙(Prometheus rule_files)
groups:
- name: openclaw_gateway
rules:
- alert: GatewayScrapeDown
expr: up{job="openclaw-gateway"} == 0
for: 2m
labels:
severity: critical
annotations:
summary: "OpenClaw metrics endpoint not reachable"
- alert: GatewayHigh5xxRatio
expr: sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) > 0.05
for: 5m
labels:
severity: warning
annotations:
summary: "5xx ratio > 5% (adjust labels to your schema)"
메트릭이 status 대신 code나 outcome 라벨을 쓰면 셀렉터를 고칩니다. 알림으로 올리기 전에 Grafana Explore에서 빈 벡터가 아닌지 확인하세요.
6. 전형적 오탐 트리아지
| 증상 | 먼저 의심 | 완화 |
|---|---|---|
간헐적 up=0 |
터널 재연결, Wi‑Fi 절전, 루프백 전용 바인드 | 유선 사용, 바인드 수정, 터널 의존 잡업은 for 연장 |
| 야간 p95 스파이크 | 디스크 절전, Time Machine, Spotlight | 디스크 절전 끄기, 백업 이동, 알림 식에 「연속 두 윈도」 조건 |
| 배포 중 5xx 알림 | 롤링 재시작, 준비 완료 전 | CI가 트리거하는 Alertmanager 침묵, 준비성 vs 메트릭 스크랩 잡 분리 |
| TSDB 메모리 증가 | 경로·사용자 ID를 라벨에 넣음 | 앱에서 카디널리티 축소, metric_relabel_configs로 라벨 드롭 |
7. 인용 가능 임계값
- scrape_interval: 프로덕션 15s(게이트웨이 꼬리 지연 없이 더 빠르게 쓸 이유가 없으면); 대륙 간 링크는 30s.
- scrape_timeout: scrape_interval의 ~2/3 이하 유지, 터널 경로는 10s부터.
- 알림 for: 가용성 스타일 2m, 비율 규칙 5m 후 SLO 번 레이트에 맞춰 조정.
8. FAQ
Q: /metrics 앞에 Basic 인증을 둘까요?
A: 신뢰할 수 없거나 멀티 테넌트 네트워크를 건너야 하면 예. 사설망 + mTLS 또는 SSH 터널을 선호하고 복잡한 인증은 가장자리에 둡니다.
Q: macOS 타임존이 PromQL에 영향을 주나요?
A: Prometheus는 UTC로 저장합니다. Grafana에서 표시 타임존을 고르세요. 로컬 시간 로그와 상관할 때는 한 가지 타임존에 맞추지 않으면 「알림이 로그보다 먼저」 착시가 납니다.
Q: 호스트 메트릭에 node_exporter를 추가해도 되나요?
A: 예—별도 job_name: node로 게이트웨이 5xx와 디스크 포화·CPU 포화를 함께 보세요.
9. 마무리·노드 선택
OpenClaw Gateway의 HTTP·프로세스 메트릭이 Prometheus·Grafana에 들어오면 24/7 물리 노드의 장애 대응이 「SSH로 감」에서 up·오류율·p95가 함께 움직이는지 확인하는 쪽으로 바뀝니다. 반복되는 포인트는 바인드 주소와 스크래퍼 네트워크 경로 일치, 알림에 for, macOS 절전·배포 창을 SLO 노이즈에서 분리입니다.
이 「게이트웨이 + 관측 스택」 흐름은 macOS와 잘 맞습니다. launchd, 로그, Unix 도구가 한 스택에 있고, Apple 실리콘은 대기 전력이 매우 낮아 상시 게이트웨이에 적합합니다. 비슷한 가격대의 작은 x86 박스보다 안정성·전력 효율에서 유리한 경우가 많고, Gatekeeper·SIP·FileVault가 자격 증명과 터미널 엔드포인트를 단단히 해 원격 운영자에게 중요합니다.
이 글의 스크랩 설정과 대시보드를 조용하고 효율적이며 7×24에 견디는 하드웨어에서 돌리고 싶다면 2026년 기준 Mac mini M4는 여전히 가성비 좋은 출발점입니다. ZoneMac으로 원격 물리 Mac을 쓰면 게이트웨이 메트릭을 프로덕션 기준선에 한 번에 넣기 좋습니다.
실제 Mac에서 OpenClaw와 Prometheus를 끝까지 돌릴까요?
ZoneMac은 7×24 게이트웨이와 관측 롤아웃을 위한 다중 리전 물리 Mac을 제공합니다. 이 글의 스크랩 바와 같은 수락 기준으로 운영할 수 있습니다.