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.

Static Host Information

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