DinD HostingManual
CHAPTER 12

Metrics & logs

See what your app is doing right now and what it did an hour, a day or a week ago — without installing anything.

The Metrics tab#

hosting.example.com/projects/7
Metrics
The Metrics tab: pick a range and read CPU % and memory over time for the app container.

Choose 1h, 24h or 7d. Two charts are drawn from the same samples:

  • CPU % — share of CPU the container used;
  • Memory — resident memory in bytes.

The project scope covers the project's app container (app-<slug>); the user:<alias> scope adds every container on your app and database daemons. A brand-new container has no history yet — the tab says No samples in this range yet.

How the numbers are collected#

A sampler asks every daemon for the stats of every container every 15 seconds and stores them in the platform database. Long ranges use hourly roll-ups so charts stay light.

Data Kept for (default)
raw samples (15 s) 14 days
hourly roll-ups 90 days

Administrators can change both under platform → Settings (metrics raw retention days, metrics hourly retention days).

Over REST and MCP#

bash
curl -fsS "$BASE/api/v1/metrics?scope=project:$PID&range=24h" -H "Authorization: Bearer $TOKEN"
# MCP: get_metrics(scope="project:7", range_key="24h")

scope is project:<id>, user:<alias> (your own, or any as admin) or global (admin only). range is 1h, 24h or 7d; the resolution is chosen by the server.

Logs#

Log Where Notes
Build log Deploy tab → build log live while building, stored afterwards; the first # lines say what the platform decided
App log App tab → follow logs, get_logs, GET …/logs stdout and stderr of the app container; a tail of up to 5000 lines or a live stream
Database log not shown use the SQL console and the database's status instead

Logs are rotated

Docker keeps every container's log as a rotated file set: by default 2 files of 25 MB — 50 MB at most. A chatty app cannot fill the disk, but only the newest lines survive; ship anything you must keep to your own logging service or S3.

Audit trail#

Every mutating action — creating a project, deploying, recreating, setting a variable, adding a domain, creating a backup, restoring, creating or revoking a token — writes an audit row with who, what and which target. Every SQL console execution also writes a query log row. Secret values are never part of either.

For operators

Both logs live in the platform database (audit_log, query_log). There is no audit page in the console yet; operators read them with SQL — see Operations.

Platform-wide view (admins)#

metrics in the top bar shows every container with samples (CPU % and memory, latest) and a per-user summary of daemons, total CPU and total memory — the quickest way to see who is using the host. See Administration.