{"generated_at":1791744029,"bars24h_start":1791658800,"bars30d_start":1789171200,"services":[{"id":"cccbot","name":"CCC bot","tier":"fragile","description":"Discord bot for Chalmers Coding Club. Scrapes Kattis ranklists and problem statistics, so it breaks whenever Kattis changes its HTML.","url":null,"level":"ok","checks":[{"id":"cccbot.units","name":"Processes","interval":60,"impact":"down","running":false,"level":"ok","since":1791647401,"summary":"all 3 processes running, up 12.6h","checked_at":1791743983,"duration_ms":71,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.discord","name":"Discord connection","interval":120,"impact":"down","running":false,"level":"ok","since":1791647391,"summary":"connected to Discord; last gateway (re)connect: 2026-10-11 17:50:45 UTC","checked_at":1791744028,"duration_ms":50,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.canary","name":"Kattis HTML vs deployed parsers","interval":1800,"impact":"degraded","running":false,"level":"ok","since":1791706816,"summary":"deployed parsers understand live Kattis (ranklist, user, problem_list, statistics)","checked_at":1791742273,"duration_ms":3044,"bars":["crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]},{"id":"cccbot.ranks","name":"Ranklist scraper writing","interval":120,"impact":"down","running":false,"level":"ok","since":1791647382,"summary":"last user observation 2m ago","checked_at":1791743910,"duration_ms":1,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.problems","name":"Problem scraper writing","interval":120,"impact":"down","running":false,"level":"ok","since":1791647383,"summary":"last problem observation 4s ago","checked_at":1791743940,"duration_ms":0,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.details","name":"Problem verdicts / difficulty / toplists","interval":300,"impact":"degraded","running":false,"level":"ok","since":1791698770,"summary":"newest rows: verdict 26s, partial_difficulty 7m, toplist 26s ago","checked_at":1791743810,"duration_ms":0,"bars":["crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.global","name":"Daily global ranklists","interval":600,"impact":"degraded","running":false,"level":"ok","since":1791647396,"summary":"global ranklists: user 8.1h, affiliation 11.6h, country 11.3h, language 11.2h","checked_at":1791743505,"duration_ms":9,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.contexts","name":"Country & university rankings","interval":1800,"impact":"degraded","running":false,"level":"ok","since":1791647390,"summary":"26 contexts; oldest is au.dk, 21.4h ago","checked_at":1791742289,"duration_ms":18,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]},{"id":"cccbot.logs","name":"Scrape errors","interval":300,"impact":"degraded","running":false,"level":"ok","since":1791647405,"summary":"last 24h: ranklist 0 failures, problem 0 failures, 0 user-page parse errors (6h)","checked_at":1791743815,"duration_ms":538,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"cccbot.problem_count","name":"Problem discovery","interval":3600,"impact":"degraded","running":false,"level":"ok","since":1791647402,"summary":"6426 live problems; discovered 6426 problems","checked_at":1791740464,"duration_ms":1494,"bars":[null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"warn","warn"],"bars24h":["warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"solve-pinger","name":"oj.uz solve tracker","tier":"fragile","description":"Posts to Discord when tracked users solve problems on oj.uz. Polls the oj.uz submission feed and scans profiles hourly; oj.uz sits behind Cloudflare.","url":null,"level":"warn","checks":[{"id":"solve.units","name":"Process","interval":60,"impact":"down","running":false,"level":"ok","since":1791647383,"summary":"solve-pinger running, up 10.5d","checked_at":1791743990,"duration_ms":13,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"solve.profiles","name":"Hourly profile scans","interval":300,"impact":"down","running":false,"level":"ok","since":1791647404,"summary":"9 users; oldest profile scan 48m ago","checked_at":1791743801,"duration_ms":2,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"solve.feed","name":"Submission feed (20 s poll)","interval":120,"impact":"degraded","running":false,"level":"crit","since":1791647405,"summary":"30/~30 polls failed in 10 min: HTTP 403 (oj.uz Cloudflare challenge). New solves are only found by the hourly profile scan.","checked_at":1791743915,"duration_ms":25,"bars":["crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit","crit"]},{"id":"solve.canary","name":"oj.uz HTML vs deployed parser","interval":1800,"impact":"down","running":false,"level":"ok","since":1791647390,"summary":"deployed parser reads live oj.uz profiles (147 solves parsed, 147 known)","checked_at":1791742271,"duration_ms":621,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"warn","warn"],"bars24h":["warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn","warn"],"uptime30d":100.0},{"id":"judge","name":"PO domaren","tier":"core","description":"OmogenJudge: web frontend, submission queue and judge host on Postgres 14.","url":"https://judge.progolymp.se","level":"warn","checks":[{"id":"judge.web","name":"Website","interval":60,"impact":"down","running":false,"level":"ok","since":1791647381,"summary":"200 in 65 ms","checked_at":1791743984,"duration_ms":163,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"judge.units","name":"Processes","interval":60,"impact":"down","running":false,"level":"ok","since":1791647387,"summary":"all 3 processes running, up 35.9h","checked_at":1791743983,"duration_ms":63,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"judge.queue","name":"Judging queue","interval":60,"impact":"down","running":false,"level":"ok","since":1791647400,"summary":"queue empty; 0 runs in 24h, last 6.1d ago","checked_at":1791743974,"duration_ms":191,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"judge.db","name":"Database","interval":300,"impact":"down","running":false,"level":"ok","since":1791647390,"summary":"postgres 14 running, up 35.8h; omogenjudge 4325 MB, 3 connections","checked_at":1791743810,"duration_ms":54,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"judge.languages","name":"Language sandboxes","interval":3600,"impact":"down","running":false,"level":"ok","since":1791647386,"summary":"6 language sandboxes present","checked_at":1791740477,"duration_ms":48,"bars":[null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,null]},{"id":"judge.backup","name":"Database backup","interval":3600,"impact":"degraded","running":false,"level":"warn","since":1791647385,"summary":"no backup found","checked_at":1791740483,"duration_ms":1,"bars":[null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"warn","warn"],"bars24h":["ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","ok"],"uptime30d":100.0},{"id":"speedrun","name":"Kattis Speedrun","tier":"core","description":"Flask-SocketIO app that judges via Kattis.","url":"https://speedrun.progolymp.se","level":"ok","checks":[{"id":"speedrun.web","name":"Website","interval":60,"impact":"down","running":false,"level":"ok","since":1791647383,"summary":"200 in 9 ms","checked_at":1791743973,"duration_ms":33,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"speedrun.units","name":"Process","interval":60,"impact":"down","running":false,"level":"ok","since":1791647406,"summary":"kattis-speedrun running, up 10.5d","checked_at":1791743990,"duration_ms":10,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"speedrun.socketio","name":"Live updates (socket.io)","interval":120,"impact":"down","running":false,"level":"ok","since":1791647394,"summary":"socket.io handshake ok","checked_at":1791743912,"duration_ms":50,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"speedrun.judging","name":"Judging errors","interval":600,"impact":"degraded","running":false,"level":"ok","since":1791647384,"summary":"0 judging errors in 24h","checked_at":1791743486,"duration_ms":267,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"checklist","name":"OI Checklist","tier":"core","description":"SvelteKit app with a SQLite database.","url":"https://checklist.progolymp.se","level":"ok","checks":[{"id":"checklist.web","name":"Website","interval":60,"impact":"down","running":false,"level":"ok","since":1791647389,"summary":"200 in 13 ms","checked_at":1791743977,"duration_ms":39,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"checklist.units","name":"Process","interval":60,"impact":"down","running":false,"level":"ok","since":1791647398,"summary":"checklist running, up 3.7d","checked_at":1791743987,"duration_ms":8,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"checklist.backup","name":"Nightly backup","interval":3600,"impact":"degraded","running":false,"level":"ok","since":1791647396,"summary":"latest 14.4h ago, 200 KiB (32 files)","checked_at":1791740471,"duration_ms":0,"bars":[null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"meow","name":"meow problem search","tier":"core","description":"Semantic problem search: static site and an embedding API.","url":"https://meow.progolymp.se","level":"ok","checks":[{"id":"meow.web","name":"Website","interval":60,"impact":"down","running":false,"level":"ok","since":1791658717,"summary":"200 in 7 ms","checked_at":1791743983,"duration_ms":92,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"meow.api","name":"Search API","interval":60,"impact":"down","running":false,"level":"ok","since":1791647394,"summary":"search index has 6763 problems (24 ms)","checked_at":1791743976,"duration_ms":52,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"meow.memory","name":"API memory","interval":120,"impact":"degraded","running":false,"level":"ok","since":1791647404,"summary":"API process using 733 of 1500 MiB","checked_at":1791743910,"duration_ms":10,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"skolbesok","name":"Skolbesök","tier":"core","description":"Django app in Docker with Postgres.","url":"https://skolbesok.progolymp.se","level":"ok","checks":[{"id":"skolbesok.web","name":"Website","interval":60,"impact":"down","running":false,"level":"ok","since":1791647403,"summary":"200 in 35 ms","checked_at":1791743969,"duration_ms":78,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"skolbesok.containers","name":"Containers","interval":120,"impact":"down","running":false,"level":"ok","since":1791647379,"summary":"web running, db healthy","checked_at":1791744028,"duration_ms":29,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"skolbesok.backup","name":"Nightly backup","interval":3600,"impact":"degraded","running":false,"level":"ok","since":1791647398,"summary":"last nightly backup ok, 14.4h ago","checked_at":1791740471,"duration_ms":0,"bars":[null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"k-rapp-event","name":"Kårappen meetup publisher","tier":"core","description":"Weekly job (Tue 21:50 Stockholm) that publishes the next CCC meetup to Kårappen.","url":null,"level":"ok","checks":[{"id":"krapp.last","name":"Last weekly run","interval":600,"impact":"down","running":false,"level":"ok","since":1791647405,"summary":"last run 4.9d ago: event created; next in 2.1d","checked_at":1791743479,"duration_ms":44,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"scoreboard","name":"Scoreboards","tier":"stable","description":"Static scoreboards.","url":"https://scoreboard.progolymp.se","level":"ok","checks":[{"id":"scoreboard.web","name":"Website","interval":300,"impact":"down","running":false,"level":"ok","since":1791647391,"summary":"200 in 7 ms","checked_at":1791743826,"duration_ms":33,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"scoreboard.uttagning","name":"uttagning.progolymp.se redirect","interval":900,"impact":"down","running":false,"level":"ok","since":1791647380,"summary":"301 → https://scoreboard.progolymp.se","checked_at":1791743195,"duration_ms":144,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"icpcreplay","name":"Scoreboard Replay","tier":"stable","description":"Static ICPC scoreboard replay.","url":"https://icpcreplay.progolymp.se","level":"ok","checks":[{"id":"icpcreplay.web","name":"Website","interval":300,"impact":"down","running":false,"level":"ok","since":1791647383,"summary":"200 in 7 ms","checked_at":1791743813,"duration_ms":31,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"icpcreplay.data","name":"Contest data","interval":900,"impact":"down","running":false,"level":"ok","since":1791647380,"summary":"200 in 14 ms","checked_at":1791743189,"duration_ms":63,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"website","name":"progolymp.se","tier":"stable","description":"Main website, hosted on GitHub Pages (not on this server).","url":"https://progolymp.se","level":"ok","checks":[{"id":"website.web","name":"Website","interval":300,"impact":"down","running":false,"level":"ok","since":1791647381,"summary":"200 in 14 ms","checked_at":1791743804,"duration_ms":40,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ok","ok"],"bars24h":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"],"uptime30d":100.0},{"id":"server","name":"Server","tier":"infra","description":"The po VM everything above runs on.","url":null,"level":"warn","checks":[{"id":"server.resources","name":"CPU & memory","interval":60,"impact":"down","running":false,"level":"ok","since":1791647395,"summary":"load 0.51/0.41 on 2 cores; 2223 of 3915 MiB memory available","checked_at":1791743976,"duration_ms":0,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"server.disk","name":"Disk","interval":600,"impact":"down","running":false,"level":"ok","since":1791647379,"summary":"/ is 68% full, 82 GiB free","checked_at":1791743479,"duration_ms":0,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"server.daemons","name":"nginx, Docker, fail2ban","interval":120,"impact":"down","running":false,"level":"ok","since":1791647405,"summary":"all 3 processes running, up 10.5d","checked_at":1791743917,"duration_ms":27,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok"]},{"id":"server.certs","name":"TLS certificates","interval":3600,"impact":"down","running":false,"level":"ok","since":1791647389,"summary":"10 certificates valid; soonest dev.progolymp.se in 34d","checked_at":1791740485,"duration_ms":407,"bars":[null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,"ok",null,null]},{"id":"server.dns","name":"DNS","interval":1800,"impact":"degraded","running":false,"level":"ok","since":1791647404,"summary":"10 domains point at 37.152.61.245","checked_at":1791742289,"duration_ms":33,"bars":["ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok","ok",null]},{"id":"server.reboot","name":"Pending reboot","interval":3600,"impact":"degraded","running":false,"level":"warn","since":1791647387,"summary":"up 38.7d; reboot pending for libc6, linux-base, linux-image-6.8.0-139-generic, linux-image-6.8.0-142-generic","checked_at":1791740466,"duration_ms":0,"bars":[null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,"warn",null,null]}],"bars30d":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"warn","warn"],"bars24h":["ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","warn","ok","ok"],"uptime30d":100.0}]}