Monitoring a logy
Kdo hlídá, že MiniShop běží – Aspire dashboard, health checky, UptimeRobot a alarmy OCI.
Na této stránce
V jedné větě: Zevnitř aplikace sledujeme trasy, logy a metriky v Aspire dashboardu; zvenku hlídá UptimeRobot adresu
/healtha zevnitř cloudu alarmy OCI stav VM. Při problému přijde e-mail.
Kdo co hlídá
flowchart LR
subgraph vm["VM"]
web["web"] -->|OTLP| dash["aspire-dashboard"]
inv["inventory-api"] -->|OTLP| dash
agent["Oracle Cloud Agent"]
end
caddy["Caddy"] --> web
caddy --> inv
ur["UptimeRobot<br/>každých 5 min"] -->|"GET /health, /health/inventory"| caddy
agent -->|"CPU, paměť"| ocimon["OCI Monitoring<br/>alarmy"]
ocimon --> ons["OCI Notifications"]
ur --> mail(["E-mail"])
ons --> mail
you(["Správce"]) -->|"HTTPS subdoména dashboard"| caddy
click dash "/Docs/eda/observabilita"
| Hlídač | Co sleduje | Kdy se ozve |
|---|---|---|
| Aspire dashboard | trasy, strukturované logy, metriky obou služeb | nic neposílá – díváte se do něj (https://dashboard.minishop-tichy.cz) |
Health checky /health |
připravenost služby + outbox (zpráva visí > 5 min → Degraded) | využívá je Compose (up --wait), Deploy i UptimeRobot |
| UptimeRobot | zvenku /health a /health/inventory, hledá přesný text Healthy |
služba neodpovídá nebo není Healthy |
| Alarmy OCI (monitoring.tf) | CPU > 80 %, paměť > 90 %, metriky přestaly chodit | podmínka platí 15 min v kuse; připomenutí každé 4 h |
| healthchecks.io | jestli proběhla noční záloha | viz Zálohy |
Proč takhle
- Aspire dashboard, ne Grafana/Loki/Prometheus – stejný nástroj jako lokálně, jeden kontejner, nulová konfigurace. Plnohodnotný stack by na malé VM zabral víc paměti než MiniShop sám.
- Telemetrie jen v paměti (limit 512 MB) – stačí na „co se stalo před chvílí“. Historii drží logy v souborech
(
/data/logs, 7 dní). - Přihlášení k dashboardu přes Caddy – dashboard sám běží
Unsecured, port OTLP je jen ve vnitřní síti Compose. - UptimeRobot aktivně zvenku – pozná i výpadek sítě, DNS nebo certifikátu, což zevnitř VM nejde.
- Alarmy v OpenTofu – po nové VM se nastaví samy (nové OCID).
- 15 minut trvání podmínky – build nebo restart krátce vytíží CPU a alarm by zbytečně budil.
Logy
- Serilog píše do konzole kontejneru (
docker compose logs web), do souboru/data/logs/minishop-RRRRMMDD.log(7 dní) a přes OpenTelemetry do dashboardu, propojené s trasou. - Úrovně a cíle se nastavují v sekci
Serilogvappsettings.json.