NVSentinel Metrics
This document outlines all Prometheus metrics exposed by NVSentinel components.
Table of Contents
- Fault Quarantine Module
- Node Drainer Module
- Fault Remediation Module
- Labeler Module
- Janitor
- Platform Connectors
- Health Monitors
- Change Stream Metrics
Fault Quarantine Module
Event Processing Metrics
Node Quarantine Metrics
Taint and Cordon Metrics
Ruleset Evaluation Metrics
Circuit Breaker Metrics
Node Drainer Module
Event Processing Metrics
Node Draining Metrics
Fault Remediation Module
Event Processing Metrics
Log Collector Metrics
File Server Metrics
HTTP Request Metrics
Log Rotation Metrics
Labeler Module
Event Processing Metrics
Janitor
Action Metrics
Platform Connectors
Health Event Authentication Metrics
These track the node-binding interceptor that stops a caller on one node from submitting health events naming another node. See Health Event Authentication.
Kubernetes Connector Metrics
Prometheus Connector Metrics
Every health monitor publishes through the platform connector, so this one metric covers
gpu-health-monitor, syslog-health-monitor, nic-health-monitor, csp-health-monitor,
kubernetes-object-monitor and health-events-analyzer without per-monitor instrumentation.
Enabled with platformConnector.promConnector.enabled (default false, like the other optional connectors).
node carries the event’s own nodeName, not the node of the connector pod that
received it. That distinction matters: the DaemonSet monitors publish over the node-local
socket so the two coincide, but health-events-analyzer is a Deployment whose derived
events describe other nodes, and an allowlisted cross-node publisher can name any node. An
explicit label makes every agent correct without a kube_pod_info join.
errorCode is excluded because it is unbounded: suffixed XIDs such as
145.RLW_SRC_TRACK would grow the series set without limit. node is bounded by the fleet.
is_fatal is kept even though producers derive it as recommendedAction != NONE. The
redundancy is the point: a producer that disagrees with that derivation becomes visible
rather than silent.
Useful queries:
Platform Connector Request Metrics
The platform connector exposes these for the batches that reach its request handler.
Workqueue Metrics
These metrics track the internal ring buffer workqueue performance:
Note: {name} in the metric names is replaced with the actual workqueue name at runtime.
Health Monitors
GPU Health Monitor
These metrics track GPU health events detected via DCGM (Data Center GPU Manager):
Syslog Health Monitor
The syslog health monitor tracks GPU-related errors detected from system logs.
XID Error Metrics
XID (GPU Error ID) errors are NVIDIA GPU driver errors:
SXID Error Metrics
SXID errors are NVSwitch-related errors:
GPU Fallen Off Bus Metrics
CSP Health Monitor
The CSP health monitor tracks cloud provider maintenance events and node health issues.
CSP Client Metrics
Event Processing Metrics
Datastore Metrics
Trigger Engine Metrics
Change Stream Metrics
Emitted by store-client, so they appear on every module that reads the change stream:
event-exporter, fault-quarantine, health-events-analyzer, node-drainer, and
fault-remediation, on both the MongoDB and PostgreSQL providers. The client label is the
consumer’s name.
fault-remediation serves only controller-runtime’s registry, so it passes that registry
explicitly; the others use the default registry.
Lag is measured against the consumer’s own filtered stream, so a module whose pipeline admits nothing still reports zero lag while it is caught up. See ADR-054.
Suggested alerts
What zero lag does not tell you
Each of these is a way a consumer can be behind while the gauge reads zero.
- Replication lag. The MongoDB stream is opened
SecondaryPreferredwith no max staleness, so an empty batch means “caught up with the secondary I am reading”, not with the primary. - Data skipped after a resume-token recovery. When a stored token is too old for the oplog
the watcher reopens from now, so lag reads near zero precisely when the most was skipped.
Read
change_stream_lag_secondstogether withchange_stream_resume_token_recoveries_total: a lag of zero is only reassuring if the recoveries counter has not moved. - Durable position. This measures the watcher’s progress against its own stream, not
whether its position was persisted. A consumer that reads an event and dies before
MarkProcessedsucceeds looks healthy here, because the read did happen.
Metrics Configuration
Scraping Metrics
All NVSentinel components expose Prometheus metrics on a metrics endpoint (typically :2112/metrics). The metrics can be scraped by Prometheus using standard scrape configurations.
Helm Chart Configuration
The NVSentinel Helm chart automatically creates a PodMonitor resource for Prometheus Operator integration:
The PodMonitor is configured to scrape all NVSentinel component pods on their metrics endpoints (/metrics on port metrics).
Annotation-based Discovery
Components can be configured to include Prometheus scrape annotations:
Metric Types Reference
- Counter: A cumulative metric that only increases or resets to zero on restart
- Gauge: A metric that can arbitrarily go up and down
- Histogram: Samples observations and counts them in configurable buckets
- Summary: Similar to histogram but calculates configurable quantiles over a sliding time window
Common Label Values
Status Labels
success/failed- Operation outcomestarted/succeeded/failed- Action lifecycle status
Action Types
reboot- Node reboot actionterminate- Node termination action
CSP Labels
gcp- Google Cloud Platformaws- Amazon Web Services
Trigger Types
quarantine- Node quarantine triggerhealthy- Node healthy trigger