Files
aio-01d4-stu/Last3Mon/76/answers/13-lab02-challenge-before.txt

285 lines
8.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
$ uv run tools/flow.py test cases/lab02-challenge.json -v
✔ before: POST http://localhost:8800/tickets-reset · HTTP 200 · 0.0s · {"cleared": 2}
→ request POST http://localhost:8800/tickets-reset
{}
← response HTTP 200
{
"cleared": 2
}
✔ before: POST http://localhost:8800/dlq-clear · HTTP 200 · 0.0s · {"cleared": 2}
→ request POST http://localhost:8800/dlq-clear
{}
← response HTTP 200
{
"cleared": 2
}
✔ before: POST http://localhost:8800/alerts-clear · HTTP 200 · 0.0s · {"cleared": 1}
→ request POST http://localhost:8800/alerts-clear
{}
← response HTTP 200
{
"cleared": 1
}
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
POST http://localhost:5678/webhook/my-intake · 6 case(s) × 1
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "error", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"tickets": "error"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "error",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
✘ API가 멈춤 → DLQ · 2.7s · dlq_saved = null (expected true); alert = null (expected sent)
→ request POST /webhook/my-intake
{
"requests": [
{
"id": "R-301",
"user": "정우성",
"text": "사내 위키 로그인이 안 돼요"
},
{
"id": "R-302",
"user": "이준호",
"text": "노트북 배터리가 금방 닳아요"
}
]
}
← response HTTP 200
{
"total": 2,
"created": 0,
"failed": 2,
"rejected": 0,
"duplicates": 0,
"unclassified": 0,
"results": [
{
"id": "R-301",
"status": "failed",
"reason": "500 - \"{\\\"error\\\": \\\"tickets service is failing (fault switch)\\\"}\""
},
{
"id": "R-302",
"status": "failed",
"reason": "500 - \"{\\\"error\\\": \\\"tickets service is failing (fault switch)\\\"}\""
}
]
}
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
✘ 처리한 실패도 알림 (high · 개수) · 0.0s · severity = null (expected high); reason = null (expected dlq); count = null (expected 2); workflow = null (expected intake)
→ request POST http://localhost:8800/alerts/latest
{}
← response HTTP 200
{}
✘ 실패가 없으면 알림 없음 · 2.8s · alert = null (expected none)
→ request POST /webhook/my-intake
{
"requests": [
{
"id": "R-101",
"user": "이준호",
"text": "VPN이 아침부터 계속 끊겨서 고객 미팅을 못 하고 있어요"
},
{
"id": "R-102",
"user": "박서연",
"text": "새 모니터를 하나 더 받을 수 있을까요?"
},
{
"id": "R-103",
"user": "최유진",
"text": "엑셀 라이선스가 만료됐다고 나와요"
}
]
}
← response HTTP 200
{
"total": 3,
"created": 3,
"failed": 0,
"rejected": 0,
"duplicates": 0,
"unclassified": 0,
"results": [
{
"id": "R-101",
"status": "created",
"ticket_id": "T-2001",
"duplicate": false,
"category": "네트워크",
"priority": "높음"
},
{
"id": "R-102",
"status": "created",
"ticket_id": "T-2002",
"duplicate": false,
"category": "장비",
"priority": "낮음"
},
{
"id": "R-103",
"status": "created",
"ticket_id": "T-2003",
"duplicate": false,
"category": "소프트웨어",
"priority": "높음"
}
]
}
✘ 알림은 그대로 1개 · 0.0s · count = 0 (expected 1)
→ request POST http://localhost:8800/alerts/list
{}
← response HTTP 200
{
"count": 0,
"alerts": []
}
✔ before: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "error", "prompts": "ok", "usage": "ok", "dlq": "error", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"tickets": "error",
"dlq": "error"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "error",
"prompts": "ok",
"usage": "ok",
"dlq": "error",
"slow_seconds": 8
}
✘ DLQ도 멈추면 critical · 2.4s · dlq_saved = null (expected false)
→ request POST /webhook/my-intake
{
"requests": [
{
"id": "R-201",
"user": "한지훈",
"text": "프린터 용지가 걸려요"
},
{
"id": "R-202",
"user": "한지훈",
"text": ""
},
{
"id": "R-203",
"user": "김민지",
"text": "메일 첨부가 안 열려요"
}
]
}
← response HTTP 200
{
"total": 3,
"created": 0,
"failed": 2,
"rejected": 1,
"duplicates": 0,
"unclassified": 0,
"results": [
{
"id": "R-201",
"status": "failed",
"reason": "500 - \"{\\\"error\\\": \\\"tickets service is failing (fault switch)\\\"}\""
},
{
"id": "R-203",
"status": "failed",
"reason": "500 - \"{\\\"error\\\": \\\"tickets service is failing (fault switch)\\\"}\""
},
{
"id": "R-202",
"status": "rejected",
"reason": "text is required"
}
]
}
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}
✘ 잃어버린 id를 알림에 · 0.0s · severity = null (expected critical); reason = null (expected dlq_down); count = null (expected 2); message has none of ['R-201']
→ request POST http://localhost:8800/alerts/latest
{}
← response HTTP 200
{}
Passed 0/6
report: runs/lab02-challenge-20261029-141547.json
✔ after: POST http://localhost:8800/admin/fault · HTTP 200 · 0.0s · {"faq": "ok", "tickets": "ok", "prompts": "ok", "usage": "ok", "dlq": "ok", "slow_seconds": 8}
→ request POST http://localhost:8800/admin/fault
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok"
}
← response HTTP 200
{
"faq": "ok",
"tickets": "ok",
"prompts": "ok",
"usage": "ok",
"dlq": "ok",
"slow_seconds": 8
}