콘텐츠로 이동

상태

GET /v1/status는 서비스의 상태를 알려 줍니다. 몇 초 동안 캐시되므로(cache-control: public, max-age=..., x-status-cache 헤더는 HIT 또는 MISS) 그보다 자주 호출해도 얻는 것이 없습니다.

Terminal window
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"이면 정상입니다. 수집기는 괜찮고, 새로 게시된 것이 없을 뿐입니다.
  • degradedunavailable은 수집 쪽에 문제가 있다는 뜻입니다. 이미 저장된 데이터는 계속 읽을 수 있고, 조회 경로는 계속 동작합니다.
  • collector.whatsapp은 수집기 자신의 원본 연결 상태입니다(status, 마지막 연결/끊김 시각, 대략적인 lastDisconnectReason, streamRetryCount).
  • delivery는 수집기의 outbox를 설명합니다. queueDepth, 가장 오래 기다린 항목의 나이, quarantinedCount(전달하지 못한 항목 수이며 0보다 크면 delivery가 degraded가 됩니다), 마지막으로 성공한 ingest.
  • processing은 참고용이며 최상위 status를 바꾸지 않습니다. registeredThroughlatestObservation은 observation id이고, lag은 그 차이이며, pending, awaitingAi, failed는 끝나지 않은 observation의 개수입니다.
  • media는 게시물과 함께 온 이미지의 보관 상태입니다. 보관된 이미지는 이 API가 제공하지 않으며, 그 안의 리그 순위표만 구조화 데이터로 읽을 수 있습니다(이미지에서 읽은 사실 참고). 계산할 수 없으면 {"status":"unavailable"}입니다.