Repository navigation
Telemetry
Krasnikov Maksim edited this page Oct 22, 2026
·
1 revision
What Coolify and friends lack: understanding how much each project consumes and
what changed after a deploy. Maurice gets this almost for free because the
boundaries are already drawn through systemd: a workspace is the user's cgroup
slice (user-<UID>.slice), a service is the unit's cgroup. The kernel already
counts CPU, memory, I/O and network for them; what remains is to collect and show.
Metrics: cgroups / Podman / host -> exporters -> VictoriaMetrics
-> PromQL -> charts in the Maurice UI (Grafana optional)
Logs: stdout -> journald -> Vector/Alloy (+labels) -> VictoriaLogs
-> label search -> UI, AI triage
Labels: workspace, service, env, deployment_id, image_digest
| Layer | Choice | Why |
|---|---|---|
| Metrics store | VictoriaMetrics (single-node) | One binary, low memory, Prometheus/PromQL and Grafana compatible |
| Exporters | node_exporter (host); cAdvisor with Podman support or systemd-exporter (unit and slice cgroups); podman stats via API |
Per-workspace and per-service load without application changes |
| Disk | Home, volume and image sizes via podman system df per user; home quotas |
"Who filled the disk" per workspace |
| Logs store | VictoriaLogs | One binary, label and text search, retention |
| Log collector | Vector or Grafana Alloy, one process per host | Reads journald, adds workspace/service/env/deployment labels |
| Visualisation | Charts in the Maurice UI (PromQL/LogsQL queries from the control plane); Grafana as an option for deep dives | The user stays in the panel; Grafana for engineering investigations |
| Alerts | vmalert or rules in the control plane → notifier | CPU/memory/disk thresholds per workspace, error growth in logs |
One time axis; the prod/dev toggle is a filter on the env label. Shown together:
- CPU, memory, network and disk per workspace, broken down by service.
- Vertical deploy markers (version, who triggered) over the charts — a load spike is tied to a specific version.
- The Plane task stream for the same period: closed, in progress, current cycle (see Task Tracker).
- Errors from logs: counts by level, link to the VictoriaLogs selection.
- The service card is the same screen at the level of one unit, plus live
podman stats.
-
Alpha:
podman statsin the service card, logs from journald. - MVP: VictoriaMetrics, exporters, per-workspace and per-service charts, deploy markers, basic threshold alerts. Needed for prod, not for looks.
- Beta: VictoriaLogs with a collector and labels, unified feed with tasks; AI triage works on top of VictoriaLogs, not raw journald.
- Release: retention and disk limits for the stores, dashboard export to Grafana, threshold tuning.
Maurice PaaS · Apache 2.0 · Repository · Task board