# service_health_check 워크플로우

## 목적
10분마다 robeing 전체 서비스(gateway, auth, rb8001, skill-email, skill-news, skill-rag-file, skill-calendar)의 health를 확인하고, DOWN인 서비스가 있으면 Slack에 장애 알림을 보낸다.

## 흐름
```
Every 10 mins → Service List → Check Health → Assess Status → Is Down? → (true)  Alert Slack
                                                                        → (false) 종료
```

## 주요 노드
| 노드 | 설명 |
|---|---|
| Every 10 mins | 10분 간격 스케줄 |
| Service List | 7개 서비스의 name + health URL 배열 생성 |
| Check Health | 각 서비스 `GET {url}` 호출 (timeout 5초, 에러 시 continue) |
| Assess Status | statusCode 200/201이면 UP, 그 외 DOWN |
| Is Down? | DOWN일 때만 알림 분기 |
| Alert Slack | 서비스명, 상태 코드 포함 장애 알림 |

## 감시 대상
| 서비스 | URL |
|---|---|
| robeing-gateway | `http://192.168.219.45:8100/health` |
| auth-server | `http://192.168.219.45:9000/health` |
| rb8001 | `http://192.168.219.52:8001/health` |
| skill-email | `http://192.168.219.52:8501/healthz` |
| skill-news | `http://192.168.219.52:8505/healthz` |
| skill-rag-file | `http://192.168.219.52:8508/healthz` |
| skill-calendar | `http://192.168.219.52:8512/health` |

## 엔드포인트
- 아웃바운드: 위 7개 서비스 health URL
- 아웃바운드: Slack `chat.postMessage` (장애 시)

## 관련 문서
- [scheduled_healthcheck_alert](../04_scheduler/scheduled_healthcheck_alert.md)
- [diary_reflection_pipeline](./diary_reflection_pipeline.md)
