218 lines
9.2 KiB
Plaintext
218 lines
9.2 KiB
Plaintext
$ uv run tools/flow.py push reference/lab03-example1-brief.json
|
||||
|
|
✔ pushed '79 Ops brief (reference)' (id w97397012b52e601)
|
|||
|
|
POST http://localhost:5678/webhook/my-ops-brief
|
|||
|
|
|
|||
|
|
$ uv run tools/flow.py test cases/lab03.json -v
|
|||
|
|
✔ before: POST http://localhost:8800/ops-reset · HTTP 200 · 0.0s · {"seeded_at": "2026-11-04T08:30:00", "note": "79일차 운영 아침 상태 (연습 데이터, seed 79)", "counts": {"alerts": 6, "dlq": 3, "quali
|
|||
|
|
→ request POST http://localhost:8800/ops-reset
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"seeded_at": "2026-11-04T08:30:00",
|
|||
|
|
"note": "79일차 운영 아침 상태 (연습 데이터, seed 79)",
|
|||
|
|
"counts": {
|
|||
|
|
"alerts": 6,
|
|||
|
|
"dlq": 3,
|
|||
|
|
"quality_log": 4,
|
|||
|
|
"quarantine": 1,
|
|||
|
|
"usage": 192
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
POST http://localhost:5678/webhook/my-ops-brief · 4 case(s) × 1
|
|||
|
|
✔ 전체 · 먼저 볼 것 셋 · 1.1s
|
|||
|
|
→ request POST /webhook/my-ops-brief
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"overall": "red",
|
|||
|
|
"red": [
|
|||
|
|
"runs",
|
|||
|
|
"dlq",
|
|||
|
|
"release"
|
|||
|
|
],
|
|||
|
|
"yellow": [
|
|||
|
|
"alerts",
|
|||
|
|
"quality",
|
|||
|
|
"cost"
|
|||
|
|
],
|
|||
|
|
"actions": [
|
|||
|
|
{
|
|||
|
|
"area": "runs",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "오류 묶음 1위 확인 · 고치기 (77일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "dlq",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "parked 건 원인 확인 뒤 런북대로 재처리 (76일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "release",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"markdown": "# 운영 브리핑 (2026-10-26 ~ 2026-10-30 실행 기록 + 지금 상태)\n\n전체: 🔴 red\n\n| 영역 | 상태 | 숫자 |\n| --- | --- | --- |\n| 실행 | 🔴 | 오류율 5.88% · p95 2598ms · 답 못 함 4.76% |\n| 알림 | 🟡 | 6건 (높음 3) |\n| DLQ | 🔴 | 3건 (parked 2) |\n| 데이터 품질 | 🟡 | 평균 0.6583 · 마지막 1 · 격리 1 |\n| 비용 | 🟡 | $0.073604 / $0.08 (92.01%) |\n| 릴리스 | 🔴 | 1.1.0 · 카나리 1.2.0 20% (다시 묻기 62.5%) |\n\n## 먼저 볼 것\n\n1. 🔴 실행: 오류 묶음 1위 확인 · 고치기 (77일차)\n2. 🔴 DLQ: parked 건 원인 확인 뒤 런북대로 재처리 (76일차)\n3. 🔴 릴리스: 카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
✔ 표에 숫자 · 0.2s
|
|||
|
|
→ request POST /webhook/my-ops-brief
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"overall": "red",
|
|||
|
|
"red": [
|
|||
|
|
"runs",
|
|||
|
|
"dlq",
|
|||
|
|
"release"
|
|||
|
|
],
|
|||
|
|
"yellow": [
|
|||
|
|
"alerts",
|
|||
|
|
"quality",
|
|||
|
|
"cost"
|
|||
|
|
],
|
|||
|
|
"actions": [
|
|||
|
|
{
|
|||
|
|
"area": "runs",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "오류 묶음 1위 확인 · 고치기 (77일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "dlq",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "parked 건 원인 확인 뒤 런북대로 재처리 (76일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "release",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"markdown": "# 운영 브리핑 (2026-10-26 ~ 2026-10-30 실행 기록 + 지금 상태)\n\n전체: 🔴 red\n\n| 영역 | 상태 | 숫자 |\n| --- | --- | --- |\n| 실행 | 🔴 | 오류율 5.88% · p95 2598ms · 답 못 함 4.76% |\n| 알림 | 🟡 | 6건 (높음 3) |\n| DLQ | 🔴 | 3건 (parked 2) |\n| 데이터 품질 | 🟡 | 평균 0.6583 · 마지막 1 · 격리 1 |\n| 비용 | 🟡 | $0.073604 / $0.08 (92.01%) |\n| 릴리스 | 🔴 | 1.1.0 · 카나리 1.2.0 20% (다시 묻기 62.5%) |\n\n## 먼저 볼 것\n\n1. 🔴 실행: 오류 묶음 1위 확인 · 고치기 (77일차)\n2. 🔴 DLQ: parked 건 원인 확인 뒤 런북대로 재처리 (76일차)\n3. 🔴 릴리스: 카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
✔ 할 일은 규칙에서 · 0.1s
|
|||
|
|
→ request POST /webhook/my-ops-brief
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"overall": "red",
|
|||
|
|
"red": [
|
|||
|
|
"runs",
|
|||
|
|
"dlq",
|
|||
|
|
"release"
|
|||
|
|
],
|
|||
|
|
"yellow": [
|
|||
|
|
"alerts",
|
|||
|
|
"quality",
|
|||
|
|
"cost"
|
|||
|
|
],
|
|||
|
|
"actions": [
|
|||
|
|
{
|
|||
|
|
"area": "runs",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "오류 묶음 1위 확인 · 고치기 (77일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "dlq",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "parked 건 원인 확인 뒤 런북대로 재처리 (76일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "release",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"markdown": "# 운영 브리핑 (2026-10-26 ~ 2026-10-30 실행 기록 + 지금 상태)\n\n전체: 🔴 red\n\n| 영역 | 상태 | 숫자 |\n| --- | --- | --- |\n| 실행 | 🔴 | 오류율 5.88% · p95 2598ms · 답 못 함 4.76% |\n| 알림 | 🟡 | 6건 (높음 3) |\n| DLQ | 🔴 | 3건 (parked 2) |\n| 데이터 품질 | 🟡 | 평균 0.6583 · 마지막 1 · 격리 1 |\n| 비용 | 🟡 | $0.073604 / $0.08 (92.01%) |\n| 릴리스 | 🔴 | 1.1.0 · 카나리 1.2.0 20% (다시 묻기 62.5%) |\n\n## 먼저 볼 것\n\n1. 🔴 실행: 오류 묶음 1위 확인 · 고치기 (77일차)\n2. 🔴 DLQ: parked 건 원인 확인 뒤 런북대로 재처리 (76일차)\n3. 🔴 릴리스: 카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
✔ before: POST http://localhost:8800/dlq-clear · HTTP 200 · 0.0s · {"cleared": 3}
|
|||
|
|
→ request POST http://localhost:8800/dlq-clear
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"cleared": 3
|
|||
|
|
}
|
|||
|
|
✔ DLQ를 비운 뒤 · 0.1s
|
|||
|
|
→ request POST /webhook/my-ops-brief
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"overall": "red",
|
|||
|
|
"red": [
|
|||
|
|
"runs",
|
|||
|
|
"release"
|
|||
|
|
],
|
|||
|
|
"yellow": [
|
|||
|
|
"alerts",
|
|||
|
|
"quality",
|
|||
|
|
"cost"
|
|||
|
|
],
|
|||
|
|
"actions": [
|
|||
|
|
{
|
|||
|
|
"area": "runs",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "오류 묶음 1위 확인 · 고치기 (77일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "release",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "alerts",
|
|||
|
|
"status": "yellow",
|
|||
|
|
"action": "높은 알림부터 확인하고 닫기 (76일차)"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"markdown": "# 운영 브리핑 (2026-10-26 ~ 2026-10-30 실행 기록 + 지금 상태)\n\n전체: 🔴 red\n\n| 영역 | 상태 | 숫자 |\n| --- | --- | --- |\n| 실행 | 🔴 | 오류율 5.88% · p95 2598ms · 답 못 함 4.76% |\n| 알림 | 🟡 | 6건 (높음 3) |\n| DLQ | 🟢 | 0건 (parked 0) |\n| 데이터 품질 | 🟡 | 평균 0.6583 · 마지막 1 · 격리 1 |\n| 비용 | 🟡 | $0.073604 / $0.08 (92.01%) |\n| 릴리스 | 🔴 | 1.1.0 · 카나리 1.2.0 20% (다시 묻기 62.5%) |\n\n## 먼저 볼 것\n\n1. 🔴 실행: 오류 묶음 1위 확인 · 고치기 (77일차)\n2. 🔴 릴리스: 카나리 끄기 · 되돌리기 검토 (74일차)\n3. 🟡 알림: 높은 알림부터 확인하고 닫기 (76일차)"
|
|||
|
|
}
|
|||
|
|
Passed 4/4
|
|||
|
|
report: runs/lab03-20261101-185435.json
|
|||
|
|
✔ after: POST http://localhost:8800/ops-reset · HTTP 200 · 0.0s · {"seeded_at": "2026-11-04T08:30:00", "note": "79일차 운영 아침 상태 (연습 데이터, seed 79)", "counts": {"alerts": 6, "dlq": 3, "quali
|
|||
|
|
→ request POST http://localhost:8800/ops-reset
|
|||
|
|
{}
|
|||
|
|
← response HTTP 200
|
|||
|
|
{
|
|||
|
|
"seeded_at": "2026-11-04T08:30:00",
|
|||
|
|
"note": "79일차 운영 아침 상태 (연습 데이터, seed 79)",
|
|||
|
|
"counts": {
|
|||
|
|
"alerts": 6,
|
|||
|
|
"dlq": 3,
|
|||
|
|
"quality_log": 4,
|
|||
|
|
"quarantine": 1,
|
|||
|
|
"usage": 192
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$ uv run tools/flow.py call my-ops-brief '{}'
|
|||
|
|
HTTP 200 · 0.1s
|
|||
|
|
{
|
|||
|
|
"overall": "red",
|
|||
|
|
"red": [
|
|||
|
|
"runs",
|
|||
|
|
"dlq",
|
|||
|
|
"release"
|
|||
|
|
],
|
|||
|
|
"yellow": [
|
|||
|
|
"alerts",
|
|||
|
|
"quality",
|
|||
|
|
"cost"
|
|||
|
|
],
|
|||
|
|
"actions": [
|
|||
|
|
{
|
|||
|
|
"area": "runs",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "오류 묶음 1위 확인 · 고치기 (77일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "dlq",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "parked 건 원인 확인 뒤 런북대로 재처리 (76일차)"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"area": "release",
|
|||
|
|
"status": "red",
|
|||
|
|
"action": "카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
"markdown": "# 운영 브리핑 (2026-10-26 ~ 2026-10-30 실행 기록 + 지금 상태)\n\n전체: 🔴 red\n\n| 영역 | 상태 | 숫자 |\n| --- | --- | --- |\n| 실행 | 🔴 | 오류율 5.88% · p95 2598ms · 답 못 함 4.76% |\n| 알림 | 🟡 | 6건 (높음 3) |\n| DLQ | 🔴 | 3건 (parked 2) |\n| 데이터 품질 | 🟡 | 평균 0.6583 · 마지막 1 · 격리 1 |\n| 비용 | 🟡 | $0.073604 / $0.08 (92.01%) |\n| 릴리스 | 🔴 | 1.1.0 · 카나리 1.2.0 20% (다시 묻기 62.5%) |\n\n## 먼저 볼 것\n\n1. 🔴 실행: 오류 묶음 1위 확인 · 고치기 (77일차)\n2. 🔴 DLQ: parked 건 원인 확인 뒤 런북대로 재처리 (76일차)\n3. 🔴 릴리스: 카나리 끄기 · 되돌리기 검토 (74일차)"
|
|||
|
|
}
|