📊 OMS 실시간 KPI 모니터링 + 자동 알림
Grafana + Prometheus 대시보드 · EDD/p99/error 임계 알림 · 30초 이내 담당자 자동 통보 · 김지훈 수석연구원
모니터링은 단순 그래프가 아니라 actionable alert가 핵심이다. 이상이 그래프에 보이는 것만으로는 부족하고, 누가·언제·어떻게 조치할지 정해진 알림이 30초 이내 담당자에게 도달해야 의미가 있다.
RT-O19는 (a) 각 서비스 / OTel 기반 Prometheus exporter, (b) 역할별 view를 가진 Grafana 대시보드, (c) Alertmanager → Slack/SMS 라우팅, (d) 알림에 자동 첨부되는 런북(runbook) 링크 4개 축으로 구성된다. OMS AI 전 모듈의 임계는 EDD 달성률 90% 미만, p99 500ms 초과, error 1% 초과 세 가지를 기준으로 잡는다.
각 서비스에서 Prometheus exporter로 metric 노출. EDD/p99/error/queue 4종 + 비즈니스 KPI 32종.
Prometheus가 30초 주기 scrape + 1분 rollup. 라벨 집계로 서비스/리전/우선순위별 분리.
alert_rules 각 윈도우별 평가 (30m / 5m / 1m). recurring spike는 자동 suppress 그룹으로 묶임.
Slack 채널 + 담당자 SMS + PagerDuty escalation. 심각도/시간대별로 채널이 갈라지고, 30초 이내 도달 보장.
자동 runbook 링크 + Grafana drill-down 첨부. ack 시 MTTA가 측정되어 메타 메트릭으로 재투입.
# Grafana + Prometheus 기반 실시간 모니터링 alert_rules = [ {"metric": "edd_rate", "threshold": 0.90, "window": "30m"}, {"metric": "api_p99", "threshold": 500, "window": "5m"}, {"metric": "error_rate", "threshold": 0.01, "window": "1m"}, ] # 임계값 초과 시 Slack + SMS 자동 알림 def evaluate(metric, value, rule): if value > rule["threshold"]: notify(channel="slack", severity="P2") notify(channel="sms", severity="P1") attach(runbook(metric))
edd_rate < 0.90 · 30분 윈도우. EDD 달성률이 임계 미만이면 P2 (Slack) 발송.api_p99 > 500ms · 5분 윈도우. DB slow query / GC pause 의심 → runbook 자동 첨부.error_rate > 1% · 1분 윈도우. P1 SMS + PagerDuty 에스컬레이션 동시 발송.queue_depth > 1k · 백프레셔 신호. 직접 알림보다 capacity dashboard 갱신 트리거.예) p99가 720ms로 5분간 지속되면 5m 윈도우 임계 초과로 alert가 발사된다. scrape_lag 12s + eval_lag 4s + route_lag 8s = 약 24초 후 Slack 알림이 도착하고, runbook 링크에서 DB slow query 검색 쿼리가 자동 실행된다.
| 채널 | 도달 시간 | 인식 시간 | 사용 사례 | 비고 |
|---|---|---|---|---|
| Slack | 6s | 30s | 일반 | 채널별 라우팅 + thread reply ack |
| SMS | 12s | 90s | 심각 | P1 전용 · 통신사 deliverability 의존 |
| PagerDuty | 8s | 60s | 야간/주말 | 온콜 로테이션 · 미응답 시 escalation |
| 이메일 | 38s | 6m | 비긴급 | 주간 리포트 · 정책 변경 알림 |
심각도별로 채널을 다르게 매핑한다. P1(error/edd 심각)은 SMS + PagerDuty 동시 발송, P2는 Slack 단일, P3 비긴급은 이메일로만 송출된다. 이메일을 P1에 사용하지 않는 이유는 인식 시간이 분 단위라 30초 SLA를 충족할 수 없기 때문이다.
[1] 김지훈 외, "OMS 실시간 KPI 모니터링 대시보드와 알림 룰 설계", IntraLogis 사내 보고서, 2026.10
[2] Prometheus Authors, "Prometheus Documentation: Alerting Rules", 공식 문서, 2025
[3] Grafana Labs, "Grafana Alerting Best Practices", Grafana Docs, 2024
[4] Beyer, B. et al. The Site Reliability Workbook, O'Reilly, 2018
[5] Datadog, "Reducing Alert Fatigue at Scale", Datadog Engineering Blog, 2023