알림 조건
CronBark은 Cronjob마다 독립적인 알림 규칙을 설정할 수 있습니다. 실패 · 지연 · 타임아웃 · 복구를 자유롭게 조합하세요.
4가지 조건
1) 실패 즉시 (Fail Immediately)
fail 이벤트를 받는 즉시 알림을 발송합니다. 가장 기본적인 조건입니다.
2) 지연 N분 (Delayed N minutes)
start 이벤트 수신 후 N분이 지나도 success/fail을 받지 못하면 “지연” 알림을 발송합니다.
예: “이 잡은 보통 5분 안에 끝나니까, 10분 넘으면 알려줘”
3) 타임아웃 T분 (Timeout T minutes)
start 이벤트 수신 후 T분이 지나면 해당 Execution을 실패로 간주하고 알림을 발송합니다.
타임아웃 발생 후의 success/fail 이벤트는 새 Execution으로 처리됩니다.
4) 복구 (Recovery)
연속으로 실패하던 잡이 다시 성공하면 “복구됨” 알림을 발송합니다. 장애가 끝났는지 확인하려고 대시보드를 들여다보지 않아도 됩니다.
조합 예시
| 시나리오 | 규칙 조합 |
|---|---|
| ”실패만 알려줘” | 실패 즉시 |
| ”실패 또는 10분 넘으면” | 실패 즉시 + 지연 10분 |
| ”실패 · 느림 · 끊김 모두” | 실패 즉시 + 지연 10분 + 타임아웃 30분 |
| ”장애 시작·복구 모두” | 실패 즉시 + 복구 |
발송 제어
조건이 맞아도 곧장/항상 보내지 않도록, 규칙마다 다음을 설정할 수 있습니다.
- 연속 N회 — 조건이 연속 N회 충족됐을 때만 발송합니다. 일시적인 한 번의 실패엔 조용하고, 진짜 반복 실패만 알리고 싶을 때 유용합니다. (설정하지 않으면 첫 발생 시 즉시 발송)
- 야간 음소거 — 야간(22:00–06:00 KST) 동안에는 발송을 보류합니다.
- 주말 음소거 — 주말(토·일 KST) 동안에는 발송을 보류합니다.
채널
한 Cronjob에 여러 채널을 붙일 수 있습니다.
- Slack Webhook — Slack Incoming Webhook URL 등록 (채널별 발송)
- 이메일 — 여러 주소 쉼표로 구분
- General Webhook — 외부 시스템(PagerDuty · Discord · Teams · 사내 봇 등)으로 JSON을 POST 전송. 수신 스키마는 아래 Webhook 페이로드 참고.
Slack · 이메일 · Webhook 모두 발송 실패 시 최대 3회 재시도 (1분 · 5분 · 15분 지수 백오프).
Webhook 페이로드
General Webhook 채널은 알림이 발생할 때마다 등록한 URL로 아래 JSON을 POST 합니다 (Content-Type: application/json, User-Agent: CronBark/1.0).
{
"test": false,
"event": "failed",
"status": "failed",
"cronjob_id": "550e8400-e29b-41d4-a716-446655440000",
"cronjob_name": "nightly-backup",
"execution_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"started_at": "2026-06-09T02:00:00+00:00",
"finished_at": "2026-06-09T02:31:00+00:00",
"duration_seconds": 1860.0,
"error_message": "DB connection refused",
"cronjob_url": "https://app.cronbark.com/550e8400-e29b-41d4-a716-446655440000"
}| 필드 | 타입 | 설명 |
|---|---|---|
test | bool | 테스트 발송이면 true, 실제 알림이면 false |
event · status | string | 알림 유형 — failed · timeout · delayed · recovered (테스트 발송은 test). 두 필드는 같은 값입니다. |
cronjob_id | string | Cronjob UUID |
cronjob_name | string | Cronjob 이름 |
execution_id | string | 해당 실행(Execution) UUID |
started_at | string | null | 실행 시작 시각 (ISO 8601) |
finished_at | string | null | 실행 종료 시각 (ISO 8601, 미종료 시 null) |
duration_seconds | number | null | 소요 시간(초) |
error_message | string | null | 실패 사유 (있을 때) |
cronjob_url | string | null | 대시보드 상세 페이지 링크 |
수신 엔드포인트는 2xx 응답을 반환해야 합니다. 4xx/5xx 응답은 발송 실패로 간주되어 재시도(최대 3회)됩니다.
중복 방지
같은 Execution · 같은 조건의 알림은 한 번만 발송됩니다. 예를 들어 “지연 10분”이 한 번 발송되면, 같은 Execution에서 시간이 더 지나도 같은 알림은 다시 나가지 않습니다.
알림 템플릿 커스터마이징은 향후 업데이트에 포함될 예정입니다. 사용 사례나 요청은 cronbark.contact@gmail.com 으로 보내주세요.