DEBUG OBSERVABILITY: live error feed + auto-triage bot + dashboard
PHASE 1 — DEBUG mode:
- /etc/systemd/system/pgz-sport.service.d/debug.conf: DEBUG=1, LOG_LEVEL=DEBUG, PYTHONUNBUFFERED=1, UVICORN_LOG_LEVEL=debug
PHASE 2 — Error stream:
- /opt/pgz-sport/scripts/debug_tail.sh: tail journalctl + nginx → /var/log/pgz-sport-debug/{stream,errors}.jsonl
- pgz-debug-tail.service (always restart, multiplexes 4 sources)
PHASE 3 — Auto-triage bot:
- /opt/pgz-sport/scripts/auto_triage.py: classifies errors, dispatches CC agents
- Patterns: 5xx spike → CC4, 401/403 spike → CC2, 4xx API → CC3, ImportError/DB → CC4
- Rate limit: 6 telegram/5min
- Records decisions in triage_decisions.jsonl
- pgz-auto-triage.service
PHASE 4 — Live dashboard:
- routers/debug_router.py mounted in pgz_sport_api
- GET /api/debug/health — services + DB + error count
- GET /api/debug/errors?limit=N — last N errors (JSON)
- GET /api/debug/decisions — auto-fix decisions
- GET /api/debug/stream — full log tail
- GET /api/debug/dashboard — live HTML refresh 5s
Damir admin tier dashboard: https://sport.rinet.one/sport/api/debug/dashboard
This commit is contained in:
@@ -18,40 +18,35 @@ API = "https://hr.wikipedia.org/w/api.php"
|
||||
|
||||
# Kategorije — širok HR knowledge bazu
|
||||
CATEGORIES = [
|
||||
"Hrvatski_gradovi",
|
||||
"Hrvatske_općine",
|
||||
"Gradovi_u_Hrvatskoj",
|
||||
"Hrvatski_otoci",
|
||||
"Hrvatske_planine",
|
||||
"Hrvatske_rijeke",
|
||||
"Planine_u_Hrvatskoj",
|
||||
"Rijeke_u_Hrvatskoj",
|
||||
"Primorsko-goranska_županija",
|
||||
"Naselja_u_Primorsko-goranskoj_županiji",
|
||||
"Hrvatski_političari",
|
||||
"Hrvatski_sportaši",
|
||||
"Hrvatski_športaši",
|
||||
"Hrvatski_glazbenici",
|
||||
"Hrvatski_pisci",
|
||||
"Hrvatski_književnici",
|
||||
"Hrvatski_glumci",
|
||||
"Hrvatska_povijest",
|
||||
"Hrvatska_arhitektura",
|
||||
"Hrvatska_kuhinja",
|
||||
"Hrvatska_kultura",
|
||||
"Hrvatska_znanost",
|
||||
"Domovinski_rat",
|
||||
"Hrvatska_ekonomija",
|
||||
"Hrvatski_klubovi",
|
||||
"Gospodarstvo_Hrvatske",
|
||||
"Hrvatski_nogometni_klubovi",
|
||||
"Hrvatski_košarkaški_klubovi",
|
||||
"Hrvatski_rukometni_klubovi",
|
||||
"Hrvatski_odbojkaški_klubovi",
|
||||
"Hrvatske_političke_stranke",
|
||||
"Predsjednici_Hrvatske",
|
||||
"Premijeri_Hrvatske",
|
||||
"Rijeka",
|
||||
"Kvarner",
|
||||
"Krk",
|
||||
"Cres",
|
||||
"Lošinj",
|
||||
"Rab",
|
||||
"Pag",
|
||||
"Učka",
|
||||
"Risnjak",
|
||||
"HNK_Rijeka"
|
||||
]
|
||||
|
||||
def api_get(params):
|
||||
|
||||
Reference in New Issue
Block a user