The Volumes view monitors PersistentVolumeClaim (PVC) storage and inode consumption across the cluster.

Volumes List Page Columns
PVC Name
- This column is derived from the resource attribute
k8s.persistentvolumeclaim.name. - Identifier of the PersistentVolumeClaim.
- Click the name to open the detail page and drill into volume capacity, available space, and inode-usage charts over time.
Namespace Name
- This column is derived from the resource attribute
k8s.namespace.name. - Namespace the PVC belongs to.
- Use it to filter the list to a specific tenant or team and to navigate to the namespace-level view for aggregate workload status across Deployments, StatefulSets, DaemonSets, and Jobs.
Volume Capacity
- This column relies on the OTel metric
k8s.volume.capacityfrom the kubeletstats receiver, defined as "The total capacity in bytes of the volume". - The provisioned size of the PVC's underlying volume in bytes, as reported by the kubelet's stats-summary API. The kubelet sources this from the filesystem
statfscall on the mounted volume. So it reflects the actual filesystem capacity, which is typically slightly less than the PVC's.spec.resources.requests.storagedue to filesystem-metadata overhead (journal, inode tables, root-reserved blocks). - Use this to read the PVC's provisioned size at a glance and as the reference baseline for interpreting Volume Available and Volume Used on this page. Under steady state the value is constant, since capacity changes only when the underlying volume is explicitly resized.
Volume Used
- This column is computed as
Volume Capacity − Volume Available(formula F1 overk8s.volume.capacityandk8s.volume.available), shown in bytes. - Represents bytes consumed by all on-disk content: user files, directories, symlinks, and filesystem-level metadata (inodes, journal, etc.). Together with Volume Available it sums to roughly Volume Capacity, with a small gap due to filesystem-reserved blocks (e.g., ext4's default 5% root reservation).
- A PVC trending toward 100% of its capacity will fail writes once the filesystem is full. Applications typically see
ENOSPCerrors and may crash; expand the PVC viakubectl edit pvc/<name>(if the StorageClass hasallowVolumeExpansion: true) or migrate the workload to a larger volume.
Volume Available
- This column relies on the OTel metric
k8s.volume.availablefrom the kubeletstats receiver, defined as "The number of available bytes in the volume". - Free bytes remaining on the volume's filesystem, as reported by the kubelet's stats-summary API. Note this can be slightly less than
capacity − usedbecause of filesystem-reserved blocks (e.g., ext4's 5% root-reserved block). - When Available approaches zero, applications writing to the volume will see
ENOSPC; use this as the operational signal to expand the PVC or rotate logs / clean caches living on the volume.
Volume Inodes
- This column relies on the OTel metric
k8s.volume.inodesfrom the kubeletstats receiver, defined as "The total inodes in the filesystem". - Total inodes available on the volume's filesystem. For ext4 this is fixed at filesystem-creation time (default ~1 inode per 16 KB of disk); for XFS / btrfs the value grows dynamically as more inodes are needed.
- Use this as the reference value when interpreting Volume Inodes Used and Volume Inodes Free. Workloads that create many small files can hit
ENOSPCfrom inode exhaustion before the volume's bytes are full.
Volume Inodes Used
- This column relies on the OTel metric
k8s.volume.inodes.usedfrom the kubeletstats receiver, defined as "The inodes used by the filesystem. This may not equal inodes − free because filesystem may share inodes with other filesystems". - Count of inodes currently consumed by files, directories, and symlinks on the volume.
- A rising count with stable Volume Available indicates many small files being created, common with workloads that store per-request artifacts, session caches, or unbounded log fragments; remediate by rotating/expiring those files or moving them off the volume.
Volume Inodes Free
- This column relies on the OTel metric
k8s.volume.inodes.freefrom the kubeletstats receiver, defined as "The free inodes in the filesystem". - Count of unallocated inodes on the volume's filesystem.
- When this approaches zero, file creation fails with
ENOSPCeven if Volume Available still shows free bytes. Usual remediations are deleting accumulated small files or reformatting the volume with a higher-iratio (smaller bytes-per-inode) and restoring the data.
Volume Detail Page
Click a volume name to open the detail page.

Volumes Metrics - Charts and Panels
Volume Available
- This chart relies on the OTel metric
k8s.volume.availablefrom the kubeletstats receiver. - Plots a single line: free bytes on the volume over time, as reported by the kubelet's stats-summary API.
- A downward trend with no recovery means the workload is filling the volume faster than it's freeing space. Extrapolate the line to forecast when the volume will hit zero and either expand the PVC (
kubectl edit pvc) or clean up before then.
Volume Capacity
- This chart relies on the OTel metric
k8s.volume.capacityfrom the kubeletstats receiver. - Plots a single line: total provisioned filesystem capacity in bytes. The value is normally constant but will step up when a
volumeExpansion-enabled PVC is resized. - Use this to read the PVC's provisioned size at a glance and as the reference baseline for interpreting Volume Available and Volume Used on this page. Under steady state the line is flat, since capacity changes only when the underlying volume is explicitly resized.
Volume Inodes Used
- This chart relies on the OTel metric
k8s.volume.inodes.usedfrom the kubeletstats receiver, defined as "The inodes used by the filesystem. This may not equal inodes − free because filesystem may share inodes with other filesystems". - Plots a single line: count of inodes consumed on the volume's filesystem over time. Each file, directory, and symlink consumes one inode.
- A rising line with stable
Volume Availableindicates many small files being created. Applications relying on filesystems with finite inode pools (e.g., ext4 with default mkfs options) can hitENOSPCerrors even with free disk space if inodes are exhausted; pair withVolume Inodes Freeto forecast the failure.
Volume Inodes
- This chart relies on the OTel metric
k8s.volume.inodesfrom the kubeletstats receiver, defined as "The total inodes in the filesystem". - Plots a single line: total inodes available on the volume's filesystem. The value is fixed at filesystem-creation time (ext4) or grows dynamically (XFS, btrfs).
- Useful as a reference line to interpret
Volume Inodes Used: for ext4, the default ratio is one inode per 16 KB of disk, so a 10 GB volume has ~640 K inodes; workloads that create many tiny files (e.g., session-cache directories) can exhaust this before the volume fills.
Volume Inodes Free
- This chart relies on the OTel metric
k8s.volume.inodes.freefrom the kubeletstats receiver, defined as "The free inodes in the filesystem". - Plots a single line: count of unallocated inodes on the volume's filesystem over time.
- When this approaches zero, file creation fails with
ENOSPCeven ifVolume Availableshows free bytes. Usual remediations are deleting accumulated small files (logs, temp files, cached objects), or reformatting the volume with a higher-iratio (smaller bytes-per-inode) and restoring the data.
Next steps
- Kubernetes Monitoring: back to the Kubernetes Monitoring overview.
- Setup Kubernetes Metrics: configure the receivers this page's metrics depend on.
- StatefulSets: see the workloads that commonly claim these volumes.