상태
GET /v1/status는 서비스의 상태를 알려 줍니다. 몇 초 동안 캐시되므로(cache-control: public, max-age=..., x-status-cache 헤더는 HIT 또는 MISS) 그보다 자주 호출해도 얻는 것이 없습니다.
curl "https://api.chizumulu.net/v1/status"응답
{ "status": "operational", "collector": { "status": "connected", "heartbeatAt": "2026-09-19T15:30:00.000Z", "whatsapp": { "status": "connected", "lastConnectedAt": "2026-09-19T12:46:29.796Z", "lastDisconnectedAt": "2026-09-19T12:46:23.596Z", "lastDisconnectReason": "stream_error", "streamRetryCount": 0 }, "version": { "collector": "0.1.0", "baileys": "6.7.24" }, "processStartedAt": "2026-09-19T08:35:51.896Z", "storageFailureActive": false, "lastStorageFailureAt": null }, "delivery": { "status": "healthy", "queueDepth": 0, "oldestPendingAgeSeconds": null, "quarantinedCount": 0, "lastSuccessfulIngestAt": "2026-09-19T15:26:31.207Z" }, "data": { "lastUpdateAt": "2026-09-19T15:24:20.000Z", "freshness": "fresh" }, "processing": { "registeredThrough": 6, "latestObservation": 6, "lag": 0, "pending": 0, "awaitingAi": 1, "failed": 0 }, "media": { "status": "idle", "reasons": [], "stored": 0, "pending": 0, "failed": 0, "skipped": 0, "oldestPendingAt": null, "oldestPendingAgeSeconds": null }}조용한 피드는 장애가 아닙니다
섹션 제목: “조용한 피드는 장애가 아닙니다”가장 중요한 설계 원칙: 새 게시물이 없다고 해서 무언가 고장 난 것은 아닙니다. API는 이 둘을 따로 보고합니다.
| 블록 | 답하는 질문 | 값 |
|---|---|---|
data.freshness |
원본이 최근에 무언가를 게시했나요? | fresh(최근 15분 이내 메시지 있음) 또는 quiet |
collector.status |
수집기가 보고를 하고 있나요? | connected, degraded, unavailable |
delivery.status |
수집기가 본 것이 API에 도달하고 있나요? | healthy, degraded |
status (최상위) |
전체 상태 | 수집기가 connected 이고 delivery가 healthy이면 operational, 아니면 degraded |
status: "operational"인데data.freshness: "quiet"이면 정상입니다. 수집기는 괜찮고, 새로 게시된 것이 없을 뿐입니다.degraded나unavailable은 수집 쪽에 문제가 있다는 뜻입니다. 이미 저장된 데이터는 계속 읽을 수 있고, 조회 경로는 계속 동작합니다.collector.whatsapp은 수집기 자신의 원본 연결 상태입니다(status, 마지막 연결/끊김 시각, 대략적인lastDisconnectReason,streamRetryCount).delivery는 수집기의 outbox를 설명합니다.queueDepth, 가장 오래 기다린 항목의 나이,quarantinedCount(전달하지 못한 항목 수이며 0보다 크면 delivery가degraded가 됩니다), 마지막으로 성공한 ingest.
처리 상태와 미디어
섹션 제목: “처리 상태와 미디어”processing은 참고용이며 최상위status를 바꾸지 않습니다.registeredThrough와latestObservation은 observation id이고,lag은 그 차이이며,pending,awaitingAi,failed는 끝나지 않은 observation의 개수입니다.media는 게시물과 함께 온 이미지의 보관 상태입니다. 보관된 이미지는 이 API가 제공하지 않으며, 그 안의 리그 순위표만 구조화 데이터로 읽을 수 있습니다(이미지에서 읽은 사실 참고). 계산할 수 없으면{"status":"unavailable"}입니다.