feat(host_agent): NFS delay per mount, read from /proc/self/mountstats (#5996)
Each sample carries each NFS mount's requests since the last one: how many
a second, their round trip and execute time (READ and WRITE on their own),
and how many were sent again or hit a major timeout. mountstats is the
kernel's own count and never touches the share, so it reads while one is
stuck. Steward stores them per mount and the slowest on the host as
nfs_exe_max_ms, for an "NFS slow" rule and the host page's NFS chart beside
mounts_stalled; each mount's bar says what a request took.
Agent 1.22.0 (which also carries the backlog order from 41fc807).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -341,6 +341,14 @@ METRICS: dict[str, tuple[str, str]] = {
|
||||
"seconds_since_seen": ("Time since the agent reported", "over 3 minutes means the agent is offline"),
|
||||
"clock_off_secs": ("Clock off by", "how far the host's clock is from Steward's, either way"),
|
||||
"mounts_stalled": ("Mounts not answering", "mounts the agent couldn't read in 5 s, e.g. an NFS share whose server stopped"),
|
||||
"nfs_exe_max_ms": ("NFS delay (slowest mount)", "the host's slowest NFS mount: how long a request took, queueing included"),
|
||||
"nfs_exe_ms": ("NFS delay", "one NFS mount (resource host:mount): how long a request took on average, queueing included"),
|
||||
"nfs_rtt_ms": ("NFS round trip", "one NFS mount: how long the server took to answer a request"),
|
||||
"nfs_read_ms": ("NFS read delay", "one NFS mount: how long a read took on average"),
|
||||
"nfs_write_ms": ("NFS write delay", "one NFS mount: how long a write took on average"),
|
||||
"nfs_ops_per_sec": ("NFS requests", "one NFS mount: requests finished a second"),
|
||||
"nfs_retrans": ("NFS retransmissions", "one NFS mount: requests sent again since the last sample"),
|
||||
"nfs_timeouts": ("NFS timeouts", "one NFS mount: requests that timed out since the last sample"),
|
||||
"agent_rss_bytes": ("Agent memory", "the host agent's own resident memory; tens of MB is normal"),
|
||||
"agent_cpu_pct": ("Agent CPU", "the host agent's own CPU, % of one core; a few % is normal"),
|
||||
"updates_pending": ("Updates waiting", "packages the host's package manager would upgrade, checked hourly"),
|
||||
|
||||
Reference in New Issue
Block a user