공개 상태 페이지 (/status)
http://[서버IP]/status 는 로그인 없이 열리는 가용성 페이지입니다.
콘솔에 못 들어가는 상황에서도 «지금 어디가 죽었는지» 를 볼 수 있게 하려는 화면입니다.
콘솔 메뉴 어디에도 링크가 없습니다 — 주소를 직접 쳐서 들어갑니다. 현장 상황판이나 사내 위키에 이 주소를 걸어 두면 유용합니다.
무엇이 보이나
┌────────────────────────────────────────────────┐
│ 플랜트펄스 상태 │
│ 🟢 모든 시스템 정상 │
│ 24시간 가용성 99.95% 마지막 갱신 12:34:56 │
├── 인프라 ─────────────────────────────────────┤
│ 이벤트 스토어 · 스트림 · MQTT · 캐시 · … │
├── API 엔드포인트 ─────────────────────────────┤
│ auth 🟢 99.98% p99 45ms 성공 12,345 / 오류 2│
│ ▁▁▁▂▁▁▁▁▁▁▁▁▁▁ (90칸 타임라인) │
└────────────────────────────────────────────────┘
5초마다 자동 갱신
맨 위 — 전체 상태
| 표시 | 뜻 |
|---|---|
| 🟢 모든 시스템 정상 | 전부 OPERATIONAL |
| 🟡 일부 시스템 성능 저하 | 하나 이상이 DEGRADED |
| 🔴 주요 장애 | 하나 이상이 OUTAGE |
옆에 24시간 가용성 · 마지막 갱신 시각이 함께 표시됩니다. 연결이 끊기면 「연결 끊김. 재시도 중...」 으로 바뀝니다.
인프라 — 13종
| 표시 이름 | 무엇 |
|---|---|
| 이벤트 스토어 | 이벤트 저장소 |
| 스트림 | 스트림 처리 |
| MQTT | 메시징 브로커 |
| 캐시 | 인메모리 캐시 |
| 메타 스토어 | 메타데이터 DB |
| 분석 스토어 | 분석용 저장소 |
| 노드 OS | 서버 운영체제 |
| 시계열 엔진 | 시계열 DB |
| 복합 이벤트 처리 | CEP 엔진 |
| 데이터 게이트웨이 | 수집 게이트웨이 |
| 워크플로우 엔진 | Temporal |
| 배치 오케스트레이터 | Kestra |
| 오브젝트 스토리지 | RustFS |
각 항목의 뜻과 상태 색 정의는 상태 코드 정의 에 있습니다.
API 엔드포인트
엔드포인트마다 카드 하나가 놓이고, 다음이 함께 표시됩니다.
| 항목 | 뜻 |
|---|---|
| 24시간 가용성 | 최근 24시간 성공률 |
| p99 응답시간 | 상위 1% 를 제외한 최악 응답시간 (ms) |
| 성공 (24시간) · 오류 (24시간) | 호출 건수 |
| 90칸 타임라인 | 최근 90구간의 상태 막대 |
측정 데이터가 모자라면 「데이터 없음」 또는 「N/M분 측정」 으로 표시됩니다 —
방금 기동한 서버에서 가용성이 낮게 보이는 것은 이 때문입니다.
데이터는 어디서 오나
페이지 자체는 빈 껍데기이고, 브라우저가 5초마다
GET /api/v5/public/status 를 폴링해 채웁니다.
curl -s http://[서버IP]/api/v5/public/status
{
"data": {
"overall_status": "OPERATIONAL",
"as_of": 1717400000000,
"uptime_24h_percent": 99.95,
"endpoints": [
{
"name": "auth", "category": "auth", "status": "OPERATIONAL",
"uptime_percent_24h": 99.98, "p99_latency_ms": 45,
"success_count_24h": 12345, "error_count_24h": 2,
"timeline_90": ["ok", "ok", "degraded", "ok"]
}
]
},
"meta": { "timestamp": 1717400000000, "status": "OK", "pagination": null },
"errors": null
}
API 키도 세션도 필요 없습니다. 감시 도구나 상황판에서 그대로 긁어 쓸 수 있습니다.
/status 와 /api/v5/public/status 는 누구나 볼 수 있습니다. 인프라 구성 요소의
이름과 장애 여부가 그대로 드러나므로, 인터넷에 직접 노출된 서버라면 리버스 프록시에서
이 두 경로를 사내망으로 제한하세요. 사내망 설치에서는 그대로 두는 편이 편리합니다.
헬스체크와 무엇이 다른가
/status | /api/health | |
|---|---|---|
| 용도 | 사람이 보는 가용성 페이지 | 기계가 쓰는 readiness 체크 |
| 인증 | 없음 | 없음 |
| 응답 | 24시간 통계·지연·타임라인 | status / service / ts / checks |
| 쓰는 곳 | 브라우저·상황판 | 컨테이너 헬스체크, HA 게이트, CI |
컨테이너나 로드밸런서의 헬스체크에는 /api/health 를 쓰세요.
/status 는 24시간 집계라 순간 장애에 반응하지 않습니다.
자주 묻는 질문
Q. 주소를 쳐도 로그인 화면으로 넘어갑니다.
A. 경로가 정확히 /status 여야 합니다(/status/ 나 /status/index 도 됩니다).
리버스 프록시에서 막고 있는지도 확인하세요.
Q. 방금 설치했는데 가용성이 0% 로 보입니다.
A. 24시간 집계라 측정 구간이 쌓여야 합니다. 「N/M분 측정」 표시를 보세요.
Q. 인프라 항목 하나가 계속 빨강입니다. A. 그 구성 요소가 실제로 떠 있는지 모니터링 에서 확인하세요. 설치 구성에 따라 아예 배포하지 않은 구성 요소도 있습니다.