kubernetes / kube-state-metrics

Add-on agent to generate and expose cluster-level metrics.
https://kubernetes.io/docs/concepts/cluster-administration/kube-state-metrics/
Apache License 2.0
5.33k stars 1.99k forks source link

Add Storage Capacity metrics #2487

Open sergelogvinov opened 2 weeks ago

sergelogvinov commented 2 weeks ago

What would you like to be added:

https://kubernetes.io/docs/concepts/storage/storage-capacity/

Why is this needed:

It exposes storage capacity available on the zone topology.

# kubectl get csistoragecapacities -ocustom-columns=CLASS:.storageClassName,AVAIL:.capacity,ZONE:.nodeTopology.matchLabels -A
CLASS            AVAIL       ZONE
csi-proxmox      1643124Mi   map[topology.kubernetes.io/region:fsn1 topology.kubernetes.io/zone:pve-2]

# kubectl -n csi-proxmox get csistoragecapacities csisc-2r9fp -oyaml
apiVersion: storage.k8s.io/v1
capacity: 1643124Mi
kind: CSIStorageCapacity
metadata:
  creationTimestamp: "2024-08-06T08:14:57Z"
  generateName: csisc-
  labels:
    csi.storage.k8s.io/drivername: csi.proxmox.sinextra.dev
    csi.storage.k8s.io/managed-by: external-provisioner
  name: csisc-2r9fp
  namespace: csi-proxmox
  ownerReferences:
  - apiVersion: apps/v1
    controller: true
    kind: Deployment
    name: proxmox-csi-plugin-controller
    uid: 9fdf1eca-8cc4-45ac-a116-e09f2b657bc3
  resourceVersion: "434485298"
  uid: 712957a8-f329-4662-96d5-955fb40415ed
nodeTopology:
  matchLabels:
    topology.kubernetes.io/region: fsn1
    topology.kubernetes.io/zone: pve-2
storageClassName: csi-proxmox

Describe the solution you'd like

Add options to allow gather this metrics:

kube_csistoragecapacities_available{namespace="csi-proxmox",csi_storage_k8s_io_drivername="csi.proxmox.sinextra.dev",topology_kubernetes_io_region="fsn1",topology_kubernetes_io_zone="pve-2"} 1682558976

What do you think, can I introduce it for you?

dashpole commented 1 week ago

/triage accepted /assign @rexagod