Skip to content

What the agent collects

Everything the agent sends is listed on this page. The data leaves your server as gzip-compressed OTLP over HTTPS to ingest.monitorable.net, in one batch per minute — there is no other channel, and the connection is always outbound (Requirements & permissions covers the transport and privilege model).

What Metrics
CPU Time spent per core and state (user, system, idle, iowait, steal, …), current frequency, temperature (when sensors are readable)
Load Load average over 1, 5, and 15 minutes
Memory Usage by state, utilization, total
Swap Paging usage by state
Disk Filesystem usage for real mounts, I/O throughput, operation counts, I/O time
Network Bytes, packets, errors, and drops per interface and direction; TCP connection counts by state
Uptime Seconds since boot

Connection counts are aggregate totals by state (established, listening, …). Nothing associates a connection with a process, address, or port.

The metrics arrive labeled with a metadata snapshot of the server:

  • Hostname, OS name and version, kernel version, CPU architecture
  • CPU model and core/thread counts, total memory, a reboot-required flag
  • Cloud provider name (aws, gcp, or azure) when one is detected
  • Agent version, and the codes of any checks skipped for lack of a grantable privilege (what feeds the Permission Limitations card; an empty list on most servers)

Your server’s public IP is never read on the server. The dashboard shows one because the ingest service sees the address the agent connects from — the same way any web server sees a client address. Geolocation is derived from that address by the platform, not the agent.

Once at startup and then hourly, the agent sends an empty request to the ingest endpoint over IPv4 and over IPv6, carrying only the server’s key. The backend records the address each request arrives from, so a server that reaches Monitorable over both families shows both addresses. No data is sent.

Reported when the agent can reach the Docker socket, for containers that are running or exited within the last 24 hours:

  • Container ID, name, image, state, health status, exit code
  • Restart count, start and finish times
  • CPU, memory usage and limit, network receive/transmit rates (running containers only)
  • The Docker Compose service and project names, read from the two com.docker.compose.* labels

No other labels are read. Environment variables, port mappings, volume paths, and container commands are never collected.

A snapshot of .service units that are active, changing state, or failed — stopped units that aren’t failed don’t appear. Per unit:

  • Name, description, state and sub-state, whether it’s enabled on boot
  • CPU share, current and peak memory, task count, restart count, active-since time
  • Main process ID (a bare number), the unit file’s path, and the names of units it depends on or orders against

Unit file contents, command lines, and unit environment variables are never read — the agent queries unit properties over D-Bus and nothing else.

Reported for physical NVMe and SATA drives, so it appears on bare-metal servers only — virtual disks expose no health data. Per drive:

  • Device name, type (NVMe/SSD/HDD), capacity
  • Model and serial number — the serial identifies the physical drive across reinstalls; it’s the one hardware identifier the agent sends
  • Overall pass/fail, power-on hours, wearout percentage, temperature, error counts, and the drive’s raw SMART attribute values

Verified against the agent’s source, not just policy:

  • No logs. The agent binary contains no log pipeline — it cannot read journals, syslog, or files even if misconfigured.
  • No process lists. No process names, command lines, arguments, or per-process anything. The only /proc reads are fixed system files like /proc/stat and /proc/meminfo.
  • No file contents or file names beyond the fixed system files above and unit-file paths.
  • No environment variables, of the system, of containers, or of services.
  • No network payloads. No packet capture, no per-connection endpoints — only the aggregate interface counters listed above.