Skip to main content

Openshift KPIs

Overview

End-to-end observability for Openshift clusters, covering cluster health, nodes, namespaces, pods, containers, services, jobs, controllers, and storage. These KPIs are normalized for dashboards, SLOs, capacity planning, and automated remediation.

Cluster Health & Global Utilization

MetricDescriptionType
kubernetes.health.statusOverall cluster health statusString
kubernetes.liveness.probeLiveness probe status summaryString
kubernetes.readiness.probeReadiness probe status summaryString
kubernetes.cpu.percentCluster-level CPU utilizationPercent
kubernetes.memory.percentCluster-level memory utilizationPercent
kubernetes.memory.capacity.bytesTotal cluster memory capacityBytes
kubernetes.memory.available.bytesAvailable cluster memoryBytes
kubernetes.master.nodesCount of master/control-plane nodesCount
kubernetes.worker.nodesCount of worker nodesCount

Nodes – Capacity, Utilization & Roles

MetricDescriptionType
kubernetes.nodesTotal nodes in clusterCount
kubernetes.nodeNode row (tabular)String
kubernetes.node.ipNode IP addressString
kubernetes.node.statusNode status (Ready/NotReady/etc.)String
kubernetes.node.typeNode type (master/worker/etc.)String
kubernetes.node.creation.timeNode creation timeTimestamp
kubernetes.node.podsPods scheduled on nodeCount
kubernetes.node.cpu.allocatable.coresAllocatable CPU coresCount
kubernetes.node.memory.allocatable.bytesAllocatable memoryBytes
kubernetes.node.ephemeral.storage.allocatable.bytesAllocatable ephemeral storageBytes
kubernetes.node.allocatable.podsMax allocatable podsCount
kubernetes.node.containersContainers scheduled on nodeCount
kubernetes.node.container.runtime.versionContainer runtime versionString
kubernetes.node.memory.used.bytesNode memory usedBytes
kubernetes.node.memory.available.bytesNode memory availableBytes
kubernetes.node.cpu.used.coresCPU cores currently usedCount
kubernetes.node.cpu.limit.percentCPU limits requested vs allocatablePercent
kubernetes.node.cpu.request.percentCPU requests vs allocatablePercent
kubernetes.node.memory.limit.percentMemory limits vs allocatablePercent
kubernetes.node.memory.request.percentMemory requests vs allocatablePercent
kubernetes.node.cpu.percentNode CPU utilizationPercent
kubernetes.node.memory.percentNode memory utilizationPercent

Namespaces – Workload Distribution & Health

MetricDescriptionType
kubernetes.namespacesTotal namespacesCount
kubernetes.namespaceNamespace rowString
kubernetes.namespace.statusNamespace statusString
kubernetes.namespace.podsTotal pods in namespaceCount
kubernetes.namespace.running.podsRunning podsCount
kubernetes.namespace.succeeded.podsSucceeded podsCount
kubernetes.namespace.pending.podsPending podsCount
kubernetes.namespace.failed.podsFailed podsCount
kubernetes.namespace.unknown.podsPods in unknown stateCount
kubernetes.namespace.creation.timeNamespace creation timeTimestamp

Pods – Lifecycle & Resource Governance

MetricDescriptionType
kubernetes.podsTotal pods in clusterCount
kubernetes.podPod rowString
kubernetes.pod.namePod nameString
kubernetes.pod.namespacePod namespaceString
kubernetes.pod.containersContainer count in podCount
kubernetes.pod.statusPod phase/statusString
kubernetes.pod.ip.addressPod IP addressString
kubernetes.pod.typePod type (normal/daemonset/job/etc.)String
kubernetes.pod.applicationApplication label / ownerString
kubernetes.pod.restartsTotal restarts across containersCount
kubernetes.pod.creation.timePod creation timeTimestamp
kubernetes.pod.persistent.volumeAttached persistent volume(s)String
kubernetes.pod.node.nameNode hosting the podString
kubernetes.pod.cpu.limit.percentSum of CPU limits / node allocatablePercent
kubernetes.pod.cpu.request.percentSum of CPU requests / node allocatablePercent
kubernetes.pod.memory.limit.percentSum of memory limits / node allocatablePercent
kubernetes.pod.memory.request.percentSum of memory requests / node allocatablePercent

Containers – Scheduling, Status & Utilization

MetricDescriptionType
kubernetes.containersTotal containers in clusterCount
kubernetes.containerContainer rowString
kubernetes.container.nameContainer nameString
kubernetes.container.node.nameNode hosting the containerString
kubernetes.container.imageContainer imageString
kubernetes.container.statusContainer statusString
kubernetes.container.creation.timeContainer creation timeTimestamp
kubernetes.container.pod.nameParent pod nameString
kubernetes.container.restartsRestart countCount
kubernetes.container.portsExposed portsString
kubernetes.container.volume.mountsVolume mountsString
kubernetes.container.cpu.limit.percentCPU limit vs node allocatablePercent
kubernetes.container.cpu.request.percentCPU request vs node allocatablePercent
kubernetes.container.memory.limit.percentMemory limit vs node allocatablePercent
kubernetes.container.memory.request.percentMemory request vs node allocatablePercent
kubernetes.container.cpu.percentRuntime CPU utilizationPercent
kubernetes.container.memory.bytesRuntime memory usageBytes

Services – Exposure & Routing

MetricDescriptionType
kubernetes.servicesTotal servicesCount
kubernetes.serviceService rowString
kubernetes.service.nameService nameString
kubernetes.service.namespaceService namespaceString
kubernetes.service.applicationApplication / ownerString
kubernetes.service.typeService type (ClusterIP/NodePort…)String
kubernetes.service.cluster.ip.addressCluster IPString
kubernetes.service.portsExposed portsString
kubernetes.service.creation.timeService creation timeTimestamp

Cluster Components – Control Plane Health

MetricDescriptionType
kubernetes.componentsTotal control-plane componentsCount
kubernetes.componentComponent rowString
kubernetes.component.statusComponent status (Healthy/Unhealthy)String
kubernetes.component.messageHealth message / reasonString

Jobs – Batch Workloads

MetricDescriptionType
kubernetes.jobsTotal jobsCount
kubernetes.jobJob rowString
kubernetes.job.nameJob nameString
kubernetes.job.namespaceJob namespaceString
kubernetes.job.statusJob status (Active/Succeeded/Failed)String
kubernetes.job.started.timeJob start timeTimestamp
kubernetes.job.completion.timeJob completion timeTimestamp
kubernetes.job.durationJob durationSeconds

Workload Controllers – DaemonSets, StatefulSets, ReplicaSets, Deployments

DaemonSets

MetricDescriptionType
kubernetes.daemon.setsTotal DaemonSetsCount
kubernetes.daemon.setDaemonSet rowString
kubernetes.daemon.set.nameDaemonSet nameString
kubernetes.daemon.set.namespaceNamespaceString
kubernetes.daemon.set.node.selectorNode selectorString
kubernetes.daemon.set.creation.timeCreation timeTimestamp
kubernetes.daemon.set.ready.replicasReady podsCount
kubernetes.daemon.set.desired.replicasDesired podsCount
kubernetes.daemon.set.available.replicasAvailable podsCount
kubernetes.daemon.set.current.replicasCurrent podsCount
kubernetes.daemon.set.updated.replicasUpdated podsCount

StatefulSets

MetricDescriptionType
kubernetes.stateful.setsTotal StatefulSetsCount
kubernetes.stateful.setStatefulSet rowString
kubernetes.stateful.set.nameStatefulSet nameString
kubernetes.stateful.set.namespaceNamespaceString
kubernetes.stateful.set.replicasDesired replicasCount
kubernetes.stateful.set.ready.replicasReady replicasCount
kubernetes.stateful.set.current.replicasCurrent replicasCount
kubernetes.stateful.set.updated.replicasUpdated replicasCount
kubernetes.stateful.set.serviceHeadless/service nameString
kubernetes.stateful.set.creation.timeCreation timeTimestamp

ReplicaSets

MetricDescriptionType
kubernetes.replica.setsTotal ReplicaSetsCount
kubernetes.replica.setReplicaSet rowString
kubernetes.replica.set.nameReplicaSet nameString
kubernetes.replica.set.namespaceNamespaceString
kubernetes.replica.set.ready.replicasReady replicasCount
kubernetes.replica.set.desired.replicasDesired replicasCount
kubernetes.replica.set.current.replicasCurrent replicasCount

Deployments

MetricDescriptionType
kubernetes.deploymentsTotal DeploymentsCount
kubernetes.deploymentDeployment rowString
kubernetes.deployment.nameDeployment nameString
kubernetes.deployment.namespaceNamespaceString
kubernetes.deployment.ready.replicasReady replicasCount
kubernetes.deployment.replicasDesired replicasCount
kubernetes.deployment.available.replicasAvailable replicasCount

Persistent Volumes (PV)

MetricDescriptionType
kubernetes.persistent.volumesTotal PersistentVolumesCount
kubernetes.persistent.volumePersistentVolume rowString
kubernetes.persistent.volume.modeVolume mode (Filesystem/Block)String
kubernetes.persistent.volume.statusPhase/statusString
kubernetes.persistent.volume.access.modeAccess mode (RWO/RWX/ROX)String
kubernetes.persistent.volume.storage.classStorageClass nameString
kubernetes.persistent.volume.bound.claim.nameBound PVC nameString
kubernetes.persistent.volume.bound.claim.namespaceBound PVC namespaceString
kubernetes.persistent.volume.storage.capacity.bytesProvisioned capacityBytes
kubernetes.persistent.volume.creation.timePV creation timeTimestamp

Persistent Volume Claims

MetricDescriptionType
kubernetes.persistent.volume.claimsTotal PVCsCount
kubernetes.persistent.volume.claimPVC rowString
kubernetes.persistent.volume.claim.namePVC nameString
kubernetes.persistent.volume.claim.namespacePVC namespaceString
kubernetes.persistent.volume.claim.statusPVC status (Bound/Pending/etc.)String
kubernetes.persistent.volume.claim.access.modeAccess modeString
kubernetes.persistent.volume.claim.storage.capacity.bytesBound volume capacityBytes
kubernetes.persistent.volume.claim.bound.volumeBound PV nameString
kubernetes.persistent.volume.claim.bound.volume.modeBound PV mode (Filesystem/Block)String
kubernetes.persistent.volume.claim.storage.classStorageClass nameString
kubernetes.persistent.volume.claim.creation.timePVC creation timeTimestamp
kubernetes.persistent.volume.claim.storage.requested.bytesRequested storageBytes