Skip to content

Storage

Use these metrics to see how full each storage is, how fast it fills up, and whether it is available on every node.

From /cluster/resources · always exported. Storages the token may not audit (Datastore.Audit) are not in the list.

Metric Type Labels Unit Meaning
cv4pve_storage_info gauge id, node, storage, content - Always 1, one per storage and node
cv4pve_storage_shared gauge id - 1 if the storage is shared between nodes (NFS, Ceph, PBS…)
cv4pve_storage_size_bytes gauge id bytes Total size
cv4pve_storage_usage_bytes gauge id bytes Used space

Availability is in cv4pve_up{type="storage"}: 1 when the storage status is available, see Cluster and nodes.

Labels of cv4pve_storage_info:

Label Value
id storage/<node>/<storage>
node The node that reports the storage
storage The storage ID, as in Datacenter → Storage
content The content types allowed, sorted and separated by ,, e.g. backup,iso,vztmpl

Proxmox VE lists every storage once per node that can use it, and so does the exporter: a storage shared by three nodes has three ids, each with the same size and usage, because each node reports it on its own, with the status it sees. This is useful (cv4pve_up tells whether each node can use the storage), but it counts shared space more than once. To add up the space of the cluster, count a shared storage once:

# Used space of the cluster: local storages per node, shared storages once
sum(cv4pve_storage_usage_bytes and on (id) cv4pve_storage_shared == 0)
+ sum(max by (storage) (
cv4pve_storage_usage_bytes * on (id) group_left (storage) cv4pve_storage_info
and on (id) cv4pve_storage_shared == 1
))
# Usage of each storage, from 0 to 1
cv4pve_storage_usage_bytes / cv4pve_storage_size_bytes > 0
# Storages that will be full within 7 days at the rate of the last day
predict_linear(cv4pve_storage_usage_bytes[1d], 7 * 86400)
> cv4pve_storage_size_bytes

A storage with a size of 0 gives NaN in the division: the > 0 filter leaves it out.