Metrics Overview
The current server agent collects a focused set of host-level metrics and
selected runtime signals, then sends them to Watchman Tower as JSON.
On startup, the agent reports static platform information such as:
- agent name
- agent version
- operating system
- platform name
- platform version
- kernel version
- architecture
This helps Watchman Tower associate telemetry with the running agent version and
host environment.
Dynamic Metrics
The current dynamic payload includes:
cpu_usage
memory_usage
total_memory
used_memory
disk_usage
total_disk
used_disk
network_sent
network_received
load_1
load_5
load_15
uptime
swap_total
swap_used
swap_usage
Process Metrics
The agent also sends a sampled list of high-usage processes.
For each process entry, the payload currently includes:
- PID
- process name
- CPU usage
- memory usage
The current implementation sorts processes by CPU usage, keeps a bounded top
set, and may reuse cached process snapshots between main metric submissions to
reduce host overhead.
Service and Port Health
The current agent can also send lightweight server health blocks such as:
service_health
port_health
docker_health
nginx_health
mongo_health
redis_health
These signals are intentionally lightweight and are meant to improve host and
runtime visibility without turning the current agent into a full observability
stack.
Nginx Discovery
When Nginx is available and its configuration is readable, the current agent can
also report:
- discovered
server_name values
root paths when present
- Nginx config file paths
- listen ports for discovered virtual hosts
This data is exposed as nginx_sites and is useful for understanding what may
be running on a given server.
How the Backend Uses These Metrics
The backend stores server stat entries and also keeps a current server snapshot
for list and detail views.
That allows Watchman Tower to surface:
- current CPU, memory, and disk usage
- recent server stat history
- current agent version on the server record
- process samples included in metric submissions
- service, port, and runtime health surfaces
- Nginx discovery metadata where available
What This Does Not Yet Mean
These metrics are useful today, but docs should stay honest about scope.
The current implementation does not imply:
- advanced observability pipelines
- service-level tracing
- automatic metric enrichment by Noema today
- custom metrics ingestion from user-defined collectors
- full infrastructure autodiscovery across arbitrary software stacks
Next Steps