- NVIDIA GPU utilization, VRAM, temperature, and power
- node-level CPU utilization
- system-memory utilization and availability
Hardware metrics describe the complete agent host or the GPUs selected through
--gpu-devices-file.They do not measure only the inference process. Other workloads on the machine can affect the reported values.How hardware metrics flow
Each agent:- samples the local hardware
- caches the latest snapshot
- sends that snapshot to the router through routing signals and heartbeats
- continues forwarding requests if a metrics collection attempt fails
- stores the latest snapshot in its in-memory database
- exposes the values through
/admin/routing-table - refreshes the corresponding Prometheus gauges
- removes the series when the agent leaves the routing table
Collection intervals
The default hardware sampling interval is:GPU collection
Hivenet Router uses the NVIDIA Management Library, or NVML, for GPU metrics. When NVML initializes successfully, the agent enumerates the visible NVIDIA devices and collects one record for each GPU. When NVML is unavailable, the agent continues with CPU and memory metrics only. Common reasons NVML may be unavailable include:- no NVIDIA GPU on the host
- missing or incompatible NVIDIA drivers
- a container without GPU access
- insufficient device permissions
- an unsupported runtime environment
GPU metrics
Prometheus GPU metrics use these labels:gpu_index is the physical index reported by NVML on that host.
gpu_id is a Hivenet Router-generated label combining the agent peer ID and GPU index:
GPU utilization
- the backend is waiting for input
- the workload is memory-bound
- requests are short or bursty
- CPU preprocessing is the bottleneck
- the model is loading or idle
VRAM metrics
Hivenet Router exports:
Show VRAM in GiB:
- model weights
- KV cache
- activations
- CUDA runtime allocations
- memory used by other GPU processes
Host-wide VRAM use and engine KV-cache utilization are different signals.
gpu_vram_used_percent describes total device-memory pressure.kv_cache_utilization describes the inference engine’s cache allocation when that backend exposes the metric.GPU temperature
- thermal throttling
- cooling failures
- unusually sustained load
- airflow problems
- one hot device in a multi-GPU machine
GPU power
- observing rack or host power demand
- identifying idle and active GPUs
- investigating clock or thermal behavior
- estimating energy use over time
exclude_if policy field.
Multi-GPU agents
A hardware snapshot contains one entry for each GPU reported by the collector. For example, an agent with GPU indices0 and 2 produces separate Prometheus series for both indices.
If the set of reported GPUs changes, the router deletes series for GPU indices that are no longer present before publishing the new snapshot.
This can happen after:
- changing device assignments
- changing
--gpu-devices-file - container or scheduler changes
- GPU or MIG reconfiguration
- restarting the agent with another visible-device set
- GPU temperature
- GPU utilization
- VRAM-used fraction
Restrict metrics to assigned GPUs
By default, the collector reports every NVIDIA GPU visible to the agent process. Use:gpu_id.
GPU model metadata
Routing policies can statically match:CPU usage
- tokenization
- request parsing
- model input preprocessing
- output processing
- networking
- host contention
- CPU-only inference
System-memory metrics
Hivenet Router exports:
Show available memory in GiB:
- swapping
- slower memory-mapped model access
- backend instability
- process termination by the operating system
- reduced CPU-side preprocessing performance
available_bytes is usually a better operational signal than a simple “free memory” value because it includes reclaimable memory where the operating system reports it.
View the current snapshot
Use the routing table:timestamp is the RFC 3339 time at which the agent collected the snapshot.
The hardware object may be absent before the first successful sample. After a successful collection, later failures can leave the last cached snapshot in place, so correlate suspicious values with agent logs and heartbeat freshness.
A CPU-only agent still reports:
- CPU
- memory
- an empty GPU array
Prometheus labels
GPU series include:machineorganizationregion- model metadata
Use hardware metrics in policies
Policy gates use normalized values for percentage fields. Prometheus exposes:gpu_model, engine, or tag match when the presence of GPU metrics is itself required.
Hardware policy fields
The following hardware values are not currently policy fields:
- GPU power
- absolute free VRAM
- total VRAM
- available system-memory bytes
- number of GPUs
gpu_model values or agent tags when routing requires a particular hardware tier.
See Hardware-aware routing for policy patterns and operational guidance.
Alerting examples
The thresholds below are examples. Adjust them to the hardware model and normal workload.High GPU temperature
High VRAM use
High system-memory use
Missing hardware updates
The hardware gauges do not currently expose a dedicated sample-age metric. Use agent heartbeat age as the nearest fleet-health indicator:Capacity planning
Hardware metrics help you observe a workload, but they do not calculate a safe Hivenet Router--capacity value automatically.
Capacity depends on:
- model size and quantization
- context length
- inference-engine scheduler
- KV-cache allocation
- GPU count and memory
- CPU-side work
- batch configuration
- latency target
- workload mix
- agent capacity utilization
- GPU utilization
- VRAM use
- engine waiting requests
- KV-cache pressure
- TTFT and ITL
- backend errors and preemptions
Troubleshooting
GPU metrics are missing
Check the host:- systemd
- Docker
The agent reports GPUs it should not monitor
Use:The GPU-device file has no effect
Check that:- the file exists inside the agent’s filesystem
- its contents use NVIDIA GPU UUIDs rather than numeric indices
- the agent can read it
- the agent was restarted after a previous successful load
- the UUIDs match the values returned by NVML
Values show zero for one GPU
Individual NVML subqueries can fail independently. Hivenet Router keeps the GPU record and sets the failed reading to zero while preserving the other values it could collect. Check the agent log for:CPU use looks wrong immediately after startup
The collector seeds a CPU baseline during initialization and then reports non-blocking interval measurements. Allow at least one sampling interval and compare several readings rather than relying on one value immediately after startup.Hardware data is present in the routing table but not Prometheus
Check the router’s metrics endpoint:Old GPU series remain after reassignment
The router removes series when a reported GPU index disappears from a later snapshot or when the agent is unregistered. If an old series remains, check whether:- the original agent peer ID is still registered
- the agent identity changed
- Prometheus is displaying historical data within the selected time range
- the agent has not yet sent a new filtered snapshot
A hardware gate does not exclude the agent
Check the unit and current value. Prometheus percentages use0 to 100, while policy percentages use 0.0 to 1.0.
Inspect the routing table:
Next steps
Engine metrics
Review cache, queue, latency, finish-reason, and throughput metrics from inference engines.
Hardware-aware routing
Build policies around GPU tier, thermal state, VRAM pressure, CPU, and system memory.
Prometheus metrics
Query and alert on the complete Hivenet Router metric set.

