Skip to content

Latest commit

 

History

History
2922 lines (2103 loc) · 161 KB

File metadata and controls

2922 lines (2103 loc) · 161 KB

Semantic conventions for Kubernetes metrics

Status: Development

K8s metrics

This document describes instruments and attributes for common K8s level metrics in OpenTelemetry. These metrics are collected from technology-specific, well-defined APIs (e.g. Kubelet's API).

Metrics in k8s. instruments SHOULD be attached to a K8s Resource and therefore inherit its attributes, like k8s.pod.name and k8s.pod.uid.

Pod metrics

Description: Pod level metrics captured under the namespace k8s.pod.

Metric: k8s.pod.uptime

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.uptime Gauge s The time the Pod has been running. [1] Development k8s.pod

[1]: Instrumentations SHOULD use a gauge with type double and measure uptime in seconds as a floating point number with the highest precision available. The actual accuracy would depend on the instrumentation and operating system.

Metric: k8s.pod.phase

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.status.phase UpDownCounter {pod} Describes number of K8s Pods that are currently in a given phase. [1] Development k8s.pod

[1]: All possible pod phases will be reported at each time interval to avoid missing metrics. Only the value corresponding to the current phase will be non-zero.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.pod.status.phase Development Required string The phase for the pod. Corresponds to the phase field of the: K8s PodStatus Pending; Running

k8s.pod.status.phase has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
Failed All containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system). Development
Pending The pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host. Development
Running The pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted. Development
Succeeded All containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers. Development
Unknown For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Development

Metric: k8s.pod.status.reason

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.status.reason UpDownCounter {pod} Describes the number of K8s Pods that are currently in a state for a given reason. [1] Development k8s.pod

[1]: All possible pod status reasons will be reported at each time interval to avoid missing metrics. Only the value corresponding to the current reason will be non-zero.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.pod.status.reason Development Required string The reason for the pod state. Corresponds to the reason field of the: K8s PodStatus Evicted; NodeAffinity

k8s.pod.status.reason has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
Evicted The pod is evicted. Development
NodeAffinity The pod is in a status because of its node affinity Development
NodeLost The reason on a pod when its state cannot be confirmed as kubelet is unresponsive on the node it is (was) running. Development
Shutdown The node is shutdown Development
UnexpectedAdmissionError The pod was rejected admission to the node because of an error during admission that could not be categorized. Development

Metric: k8s.pod.cpu.time

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.cpu.time Counter s Total CPU time consumed. [1] Development k8s.pod

[1]: Total CPU time consumed by the specific Pod on all available CPU cores

Metric: k8s.pod.cpu.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.cpu.usage Gauge {cpu} Pod's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs. [1] Development k8s.pod

[1]: CPU usage of the specific Pod on all available CPU cores, averaged over the sample window

Metric: k8s.pod.memory.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.memory.usage Gauge By Memory usage of the Pod. [1] Development k8s.pod

[1]: Total memory usage of the Pod

Metric: k8s.pod.memory.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.memory.available UpDownCounter By Pod memory available. [1] Development k8s.pod

[1]: Available memory for use. This is defined as the memory limit - workingSetBytes. If memory limit is undefined, the available bytes is omitted. This metric is derived from the MemoryStats.AvailableBytes field of the PodStats.Memory of the Kubelet's stats API.

Metric: k8s.pod.memory.rss

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.memory.rss UpDownCounter By Pod memory RSS. [1] Development k8s.pod

[1]: The amount of anonymous and swap cache memory (includes transparent hugepages). This metric is derived from the MemoryStats.RSSBytes field of the PodStats.Memory of the Kubelet's stats API.

Metric: k8s.pod.memory.working_set

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.memory.working_set UpDownCounter By Pod memory working set. [1] Development k8s.pod

[1]: The amount of working set memory. This includes recently accessed memory, dirty memory, and kernel memory. WorkingSetBytes is <= UsageBytes. This metric is derived from the MemoryStats.WorkingSetBytes field of the PodStats.Memory of the Kubelet's stats API.

Metric: k8s.pod.memory.paging.faults

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.memory.paging.faults Counter {fault} Pod memory paging faults. [1] Development k8s.pod

[1]: Cumulative number of major/minor page faults. This metric is derived from the MemoryStats.PageFaults and MemoryStats.MajorPageFaults field of the PodStats.Memory of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
system.paging.fault.type Development Recommended string The paging fault type minor

system.paging.fault.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
major major Development
minor minor Development

Metric: k8s.pod.network.io

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.network.io Counter By Network bytes for the Pod. Development k8s.pod

Attributes:

Key Stability Requirement Level Value Type Description Example Values
network.interface.name Development Recommended string The network interface name. lo; eth0
network.io.direction Development Recommended string The network IO operation direction. transmit

network.io.direction has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
receive receive Development
transmit transmit Development

Metric: k8s.pod.network.errors

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.network.errors Counter {error} Pod network errors. Development k8s.pod

Attributes:

Key Stability Requirement Level Value Type Description Example Values
network.interface.name Development Recommended string The network interface name. lo; eth0
network.io.direction Development Recommended string The network IO operation direction. transmit

network.io.direction has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
receive receive Development
transmit transmit Development

Metric: k8s.pod.filesystem.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.filesystem.available UpDownCounter By Pod filesystem available bytes. [1] Development k8s.pod

[1]: This metric is derived from the FsStats.AvailableBytes field of the PodStats.EphemeralStorage of the Kubelet's stats API.

Metric: k8s.pod.filesystem.capacity

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.filesystem.capacity UpDownCounter By Pod filesystem capacity. [1] Development k8s.pod

[1]: This metric is derived from the FsStats.CapacityBytes field of the PodStats.EphemeralStorage of the Kubelet's stats API.

Metric: k8s.pod.filesystem.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.filesystem.usage UpDownCounter By Pod filesystem usage. [1] Development k8s.pod

[1]: This may not equal capacity - available.

This metric is derived from the FsStats.UsedBytes field of the PodStats.EphemeralStorage of the Kubelet's stats API.

Metric: k8s.pod.volume.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.available UpDownCounter By Pod volume storage space available. [1] Development k8s.pod

[1]: This metric is derived from the VolumeStats.AvailableBytes field of the PodStats of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Metric: k8s.pod.volume.capacity

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.capacity UpDownCounter By Pod volume total capacity. [1] Development k8s.pod

[1]: This metric is derived from the VolumeStats.CapacityBytes field of the PodStats of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Metric: k8s.pod.volume.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.usage UpDownCounter By Pod volume usage. [1] Development k8s.pod

[1]: This may not equal capacity - available.

This metric is derived from the VolumeStats.UsedBytes field of the PodStats of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Metric: k8s.pod.volume.inode.count

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.inode.count UpDownCounter {inode} The total inodes in the filesystem of the Pod's volume. [1] Development k8s.pod

[1]: This metric is derived from the VolumeStats.Inodes field of the PodStats of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Metric: k8s.pod.volume.inode.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.inode.used UpDownCounter {inode} The inodes used by the filesystem of the Pod's volume. [1] Development k8s.pod

[1]: This metric is derived from the VolumeStats.InodesUsed field of the PodStats of the Kubelet's stats API.

This may not be equal to inodes - free because filesystem may share inodes with other filesystems.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Metric: k8s.pod.volume.inode.free

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.pod.volume.inode.free UpDownCounter {inode} The free inodes in the filesystem of the Pod's volume. [1] Development k8s.pod

[1]: This metric is derived from the VolumeStats.InodesFree field of the PodStats of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.volume.name Development Required string The name of the K8s volume. volume0
k8s.volume.type Development Recommended string The type of the K8s volume. emptyDir; persistentVolumeClaim

k8s.volume.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
configMap A configMap volume Development
downwardAPI A downwardAPI volume Development
emptyDir An emptyDir volume Development
local A local volume Development
persistentVolumeClaim A persistentVolumeClaim volume Development
secret A secret volume Development

Container metrics

Description: Container level metrics captured under the namespace k8s.container.

Metric: k8s.container.status.state

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.status.state UpDownCounter {container} Describes the number of K8s containers that are currently in a given state. [1] Development k8s.container

[1]: All possible container states will be reported at each time interval to avoid missing metrics. Only the value corresponding to the current state will be non-zero.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.container.status.state Development Required string The state of the container. K8s ContainerState terminated; running; waiting

k8s.container.status.state has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
running The container is running. Development
terminated The container has terminated. Development
waiting The container is waiting. Development

Metric: k8s.container.status.reason

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.status.reason UpDownCounter {container} Describes the number of K8s containers that are currently in a state for a given reason. [1] Development k8s.container

[1]: All possible container state reasons will be reported at each time interval to avoid missing metrics. Only the value corresponding to the current state reason will be non-zero.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.container.status.reason Development Required string The reason for the container state. Corresponds to the reason field of the: K8s ContainerStateWaiting or K8s ContainerStateTerminated ContainerCreating; CrashLoopBackOff; CreateContainerConfigError; ErrImagePull; ImagePullBackOff; OOMKilled; Completed; Error; ContainerCannotRun

k8s.container.status.reason has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
Completed The container has completed execution. Development
ContainerCannotRun The container cannot run. Development
ContainerCreating The container is being created. Development
CrashLoopBackOff The container is in a crash loop back off state. Development
CreateContainerConfigError There was an error creating the container configuration. Development
ErrImagePull There was an error pulling the container image. Development
Error There was an error with the container. Development
ImagePullBackOff The container image pull is in back off state. Development
OOMKilled The container was killed due to out of memory. Development

Node metrics

Description: Node level metrics captured under the namespace k8s.node.

Metric: k8s.node.uptime

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.uptime Gauge s The time the Node has been running. [1] Development k8s.node

[1]: Instrumentations SHOULD use a gauge with type double and measure uptime in seconds as a floating point number with the highest precision available. The actual accuracy would depend on the instrumentation and operating system.

Metric: k8s.node.cpu.allocatable

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.cpu.allocatable UpDownCounter {cpu} Amount of cpu allocatable on the node. Development k8s.node

Metric: k8s.node.memory.allocatable

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.allocatable UpDownCounter By Amount of memory allocatable on the node. Development k8s.node

Metric: k8s.node.ephemeral_storage.allocatable

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.ephemeral_storage.allocatable UpDownCounter By Amount of ephemeral-storage allocatable on the node. Development k8s.node

Metric: k8s.node.pod.allocatable

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.pod.allocatable UpDownCounter {pod} Amount of pods allocatable on the node. Development k8s.node

Metric: k8s.node.condition.status

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.condition.status UpDownCounter {node} Describes the condition of a particular Node. [1] Development k8s.node

[1]: All possible node condition pairs (type and status) will be reported at each time interval to avoid missing metrics. Condition pairs corresponding to the current conditions' statuses will be non-zero.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.node.condition.status Development Required string The status of the condition, one of True, False, Unknown. [1] true; false; unknown
k8s.node.condition.type Development Required string The condition type of a K8s Node. [2] Ready; DiskPressure

[1] k8s.node.condition.status: This attribute aligns with the status field of the NodeCondition

[2] k8s.node.condition.type: K8s Node conditions as described by K8s documentation.

This attribute aligns with the type field of the NodeCondition

The set of possible values is not limited to those listed here. Managed Kubernetes environments, or custom controllers MAY introduce additional node condition types. When this occurs, the exact value as reported by the Kubernetes API SHOULD be used.


k8s.node.condition.status has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
false condition_false Development
true condition_true Development
unknown condition_unknown Development

k8s.node.condition.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
DiskPressure Pressure exists on the disk size—that is, if the disk capacity is low Development
MemoryPressure Pressure exists on the node memory—that is, if the node memory is low Development
NetworkUnavailable The network for the node is not correctly configured Development
PIDPressure Pressure exists on the processes—that is, if there are too many processes on the node Development
Ready The node is healthy and ready to accept pods Development

Metric: k8s.node.cpu.time

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.cpu.time Counter s Total CPU time consumed. [1] Development k8s.node

[1]: Total CPU time consumed by the specific Node on all available CPU cores

Metric: k8s.node.cpu.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.cpu.usage Gauge {cpu} Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs. [1] Development k8s.node

[1]: CPU usage of the specific Node on all available CPU cores, averaged over the sample window

Metric: k8s.node.memory.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.usage Gauge By Memory usage of the Node. [1] Development k8s.node

[1]: Total memory usage of the Node

Metric: k8s.node.memory.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.available UpDownCounter By Node memory available. [1] Development k8s.node

[1]: Available memory for use. This is defined as the memory limit - workingSetBytes. If memory limit is undefined, the available bytes is omitted. This metric is derived from the MemoryStats.AvailableBytes field of the NodeStats.Memory of the Kubelet's stats API.

Metric: k8s.node.memory.rss

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.rss UpDownCounter By Node memory RSS. [1] Development k8s.node

[1]: The amount of anonymous and swap cache memory (includes transparent hugepages). This metric is derived from the MemoryStats.RSSBytes field of the NodeStats.Memory of the Kubelet's stats API.

Metric: k8s.node.memory.working_set

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.working_set UpDownCounter By Node memory working set. [1] Development k8s.node

[1]: The amount of working set memory. This includes recently accessed memory, dirty memory, and kernel memory. WorkingSetBytes is <= UsageBytes. This metric is derived from the MemoryStats.WorkingSetBytes field of the NodeStats.Memory of the Kubelet's stats API.

Metric: k8s.node.memory.paging.faults

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.memory.paging.faults Counter {fault} Node memory paging faults. [1] Development k8s.node

[1]: Cumulative number of major/minor page faults. This metric is derived from the MemoryStats.PageFaults and MemoryStats.MajorPageFaults fields of the NodeStats.Memory of the Kubelet's stats API.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
system.paging.fault.type Development Recommended string The paging fault type minor

system.paging.fault.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
major major Development
minor minor Development

Metric: k8s.node.network.io

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.network.io Counter By Network bytes for the Node. Development k8s.node

Attributes:

Key Stability Requirement Level Value Type Description Example Values
network.interface.name Development Recommended string The network interface name. lo; eth0
network.io.direction Development Recommended string The network IO operation direction. transmit

network.io.direction has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
receive receive Development
transmit transmit Development

Metric: k8s.node.network.errors

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.network.errors Counter {error} Node network errors. Development k8s.node

Attributes:

Key Stability Requirement Level Value Type Description Example Values
network.interface.name Development Recommended string The network interface name. lo; eth0
network.io.direction Development Recommended string The network IO operation direction. transmit

network.io.direction has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
receive receive Development
transmit transmit Development

Metric: k8s.node.filesystem.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.filesystem.available UpDownCounter By Node filesystem available bytes. [1] Development k8s.node

[1]: This metric is derived from the FsStats.AvailableBytes field of the NodeStats.Fs of the Kubelet's stats API.

Metric: k8s.node.filesystem.capacity

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.filesystem.capacity UpDownCounter By Node filesystem capacity. [1] Development k8s.node

[1]: This metric is derived from the FsStats.CapacityBytes field of the NodeStats.Fs of the Kubelet's stats API.

Metric: k8s.node.filesystem.usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.node.filesystem.usage UpDownCounter By Node filesystem usage. [1] Development k8s.node

[1]: This may not equal capacity - available.

This metric is derived from the FsStats.UsedBytes field of the NodeStats.Fs of the Kubelet's stats API.

Deployment metrics

Description: Deployment level metrics captured under the namespace k8s.deployment.

Metric: k8s.deployment.pod.desired

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.deployment.pod.desired UpDownCounter {pod} Number of desired replica pods in this deployment. [1] Development k8s.deployment

[1]: This metric aligns with the replicas field of the K8s DeploymentSpec.

Metric: k8s.deployment.pod.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.deployment.pod.available UpDownCounter {pod} Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment. [1] Development k8s.deployment

[1]: This metric aligns with the availableReplicas field of the K8s DeploymentStatus.

ReplicaSet metrics

Description: ReplicaSet level metrics captured under the namespace k8s.replicaset.

Metric: k8s.replicaset.pod.desired

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.replicaset.pod.desired UpDownCounter {pod} Number of desired replica pods in this replicaset. [1] Development k8s.replicaset

[1]: This metric aligns with the replicas field of the K8s ReplicaSetSpec.

Metric: k8s.replicaset.pod.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.replicaset.pod.available UpDownCounter {pod} Total number of available replica pods (ready for at least minReadySeconds) targeted by this replicaset. [1] Development k8s.replicaset

[1]: This metric aligns with the availableReplicas field of the K8s ReplicaSetStatus.

ReplicationController metrics

Description: ReplicationController level metrics captured under the namespace k8s.replicationcontroller.

Metric: k8s.replicationcontroller.pod.desired

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.replicationcontroller.pod.desired UpDownCounter {pod} Number of desired replica pods in this replication controller. [1] Development k8s.replicationcontroller

[1]: This metric aligns with the replicas field of the K8s ReplicationControllerSpec

Metric: k8s.replicationcontroller.pod.available

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.replicationcontroller.pod.available UpDownCounter {pod} Total number of available replica pods (ready for at least minReadySeconds) targeted by this replication controller. [1] Development k8s.replicationcontroller

[1]: This metric aligns with the availableReplicas field of the K8s ReplicationControllerStatus

StatefulSet metrics

Description: StatefulSet level metrics captured under the namespace k8s.statefulset.

Metric: k8s.statefulset.pod.desired

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.statefulset.pod.desired UpDownCounter {pod} Number of desired replica pods in this statefulset. [1] Development k8s.statefulset

[1]: This metric aligns with the replicas field of the K8s StatefulSetSpec.

Metric: k8s.statefulset.pod.ready

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.statefulset.pod.ready UpDownCounter {pod} The number of replica pods created for this statefulset with a Ready Condition. [1] Development k8s.statefulset

[1]: This metric aligns with the readyReplicas field of the K8s StatefulSetStatus.

Metric: k8s.statefulset.pod.current

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.statefulset.pod.current UpDownCounter {pod} The number of replica pods created by the statefulset controller from the statefulset version indicated by currentRevision. [1] Development k8s.statefulset

[1]: This metric aligns with the currentReplicas field of the K8s StatefulSetStatus.

Metric: k8s.statefulset.pod.updated

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.statefulset.pod.updated UpDownCounter {pod} Number of replica pods created by the statefulset controller from the statefulset version indicated by updateRevision. [1] Development k8s.statefulset

[1]: This metric aligns with the updatedReplicas field of the K8s StatefulSetStatus.

HorizontalPodAutoscaler metrics

Description: HorizontalPodAutoscaler level metrics captured under the namespace k8s.hpa.

Metric: k8s.hpa.pod.desired

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.pod.desired UpDownCounter {pod} Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler. [1] Development k8s.hpa

[1]: This metric aligns with the desiredReplicas field of the K8s HorizontalPodAutoscalerStatus

Metric: k8s.hpa.pod.current

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.pod.current UpDownCounter {pod} Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler. [1] Development k8s.hpa

[1]: This metric aligns with the currentReplicas field of the K8s HorizontalPodAutoscalerStatus

Metric: k8s.hpa.pod.max

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.pod.max UpDownCounter {pod} The upper limit for the number of replica pods to which the autoscaler can scale up. [1] Development k8s.hpa

[1]: This metric aligns with the maxReplicas field of the K8s HorizontalPodAutoscalerSpec

Metric: k8s.hpa.pod.min

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.pod.min UpDownCounter {pod} The lower limit for the number of replica pods to which the autoscaler can scale down. [1] Development k8s.hpa

[1]: This metric aligns with the minReplicas field of the K8s HorizontalPodAutoscalerSpec

Metric: k8s.hpa.metric.target.cpu.value

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.metric.target.cpu.value Gauge {cpu} Target value for CPU resource in HPA config. [1] Development k8s.hpa; k8s.namespace

[1]: This metric aligns with the value field of the K8s HPA MetricTarget. If the type of the metric is ContainerResource, the k8s.container.name attribute MUST be set to identify the specific container within the pod to which the metric applies.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.container.name Release Candidate Conditionally Required [1] string The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name). redis
k8s.hpa.metric.type Development Recommended string The type of metric source for the horizontal pod autoscaler. [2] Resource; ContainerResource

[1] k8s.container.name: if and only if k8s.hpa.metric.type is ContainerResource

[2] k8s.hpa.metric.type: This attribute reflects the type field of spec.metrics[] in the HPA.

Metric: k8s.hpa.metric.target.cpu.average_value

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.metric.target.cpu.average_value Gauge {cpu} Target average value for CPU resource in HPA config. [1] Development k8s.hpa; k8s.namespace

[1]: This metric aligns with the averageValue field of the K8s HPA MetricTarget. If the type of the metric is ContainerResource, the k8s.container.name attribute MUST be set to identify the specific container within the pod to which the metric applies.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.container.name Release Candidate Conditionally Required [1] string The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name). redis
k8s.hpa.metric.type Development Recommended string The type of metric source for the horizontal pod autoscaler. [2] Resource; ContainerResource

[1] k8s.container.name: if and only if k8s.hpa.metric.type is ContainerResource

[2] k8s.hpa.metric.type: This attribute reflects the type field of spec.metrics[] in the HPA.

Metric: k8s.hpa.metric.target.cpu.average_utilization

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.hpa.metric.target.cpu.average_utilization Gauge 1 Target average utilization, in percentage, for CPU resource in HPA config. [1] Development k8s.hpa; k8s.namespace

[1]: This metric aligns with the averageUtilization field of the K8s HPA MetricTarget. If the type of the metric is ContainerResource, the k8s.container.name attribute MUST be set to identify the specific container within the pod to which the metric applies.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.container.name Release Candidate Conditionally Required [1] string The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name). redis
k8s.hpa.metric.type Development Recommended string The type of metric source for the horizontal pod autoscaler. [2] Resource; ContainerResource

[1] k8s.container.name: if and only if k8s.hpa.metric.type is ContainerResource.

[2] k8s.hpa.metric.type: This attribute reflects the type field of spec.metrics[] in the HPA.

DaemonSet metrics

Description: DaemonSet level metrics captured under the namespace k8s.daemonset.

Metric: k8s.daemonset.node.current_scheduled

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.daemonset.node.current_scheduled UpDownCounter {node} Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. [1] Development k8s.daemonset

[1]: This metric aligns with the currentNumberScheduled field of the K8s DaemonSetStatus.

Metric: k8s.daemonset.node.desired_scheduled

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.daemonset.node.desired_scheduled UpDownCounter {node} Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod). [1] Development k8s.daemonset

[1]: This metric aligns with the desiredNumberScheduled field of the K8s DaemonSetStatus.

Metric: k8s.daemonset.node.misscheduled

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.daemonset.node.misscheduled UpDownCounter {node} Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. [1] Development k8s.daemonset

[1]: This metric aligns with the numberMisscheduled field of the K8s DaemonSetStatus.

Metric: k8s.daemonset.node.ready

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.daemonset.node.ready UpDownCounter {node} Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready. [1] Development k8s.daemonset

[1]: This metric aligns with the numberReady field of the K8s DaemonSetStatus.

Job metrics

Description: Job level metrics captured under the namespace k8s.job.

Metric: k8s.job.pod.active

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.job.pod.active UpDownCounter {pod} The number of pending and actively running pods for a job. [1] Development k8s.job

[1]: This metric aligns with the active field of the K8s JobStatus.

Metric: k8s.job.pod.failed

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.job.pod.failed UpDownCounter {pod} The number of pods which reached phase Failed for a job. [1] Development k8s.job

[1]: This metric aligns with the failed field of the K8s JobStatus.

Metric: k8s.job.pod.successful

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.job.pod.successful UpDownCounter {pod} The number of pods which reached phase Succeeded for a job. [1] Development k8s.job

[1]: This metric aligns with the succeeded field of the K8s JobStatus.

Metric: k8s.job.pod.desired_successful

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.job.pod.desired_successful UpDownCounter {pod} The desired number of successfully finished pods the job should be run with. [1] Development k8s.job

[1]: This metric aligns with the completions field of the K8s JobSpec..

Metric: k8s.job.pod.max_parallel

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.job.pod.max_parallel UpDownCounter {pod} The max desired number of pods the job should run at any given time. [1] Development k8s.job

[1]: This metric aligns with the parallelism field of the K8s JobSpec.

CronJob metrics

Description: CronJob level metrics captured under the namespace k8s.cronjob.

Metric: k8s.cronjob.job.active

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.cronjob.job.active UpDownCounter {job} The number of actively running jobs for a cronjob. [1] Development k8s.cronjob

[1]: This metric aligns with the active field of the K8s CronJobStatus.

Namespace metrics

Description: Namespace level metrics captured under the namespace k8s.namespace.

Metric: k8s.namespace.phase

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.namespace.phase UpDownCounter {namespace} Describes number of K8s namespaces that are currently in a given phase. Development k8s.namespace

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.namespace.phase Development Required string The phase of the K8s namespace. [1] active; terminating

[1] k8s.namespace.phase: This attribute aligns with the phase field of the K8s NamespaceStatus


k8s.namespace.phase has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
active Active namespace phase as described by K8s API Development
terminating Terminating namespace phase as described by K8s API Development

K8s Container metrics

Description: K8s Container level metrics captured under the namespace k8s.container.

Metric: k8s.container.cpu.limit.desired

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.limit.desired UpDownCounter {cpu} Maximum CPU resource limit as defined by the container spec. [1] Development k8s.container

[1]: This metric aligns with the limit in the resources field of K8s Container (spec.containers[*].resources). Also see Desired Resources in https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/ for more details.

Metric: k8s.container.cpu.limit.current

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.limit.current UpDownCounter {cpu} Maximum CPU resource limit currently configured for a running container. [1] Development k8s.container

[1]: This metric aligns with the limit in the resources field of K8s ContainerStatus (status.containerStatuses[*].resources). Also see Actual Resources in https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/ for more details.

Metric: k8s.container.cpu.limit.utilization

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.limit.utilization Gauge 1 The ratio of container CPU usage to its CPU current limit as defined by https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#containerstatus-v1-core. [1] Development k8s.container

[1]: The value range is [0.0,1.0]. A value of 1.0 means the container is using 100% of its actual CPU limit. If the CPU limit is not set, this metric SHOULD NOT be emitted for that container.

Metric: k8s.container.cpu.request.desired

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.request.desired UpDownCounter {cpu} CPU resource requested as defined by the container spec. [1] Development k8s.container

[1]: This metric aligns with the request in the resources field of K8s Container (spec.containers[*].resources). Also see Desired Resources in https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/ for more details.

Metric: k8s.container.cpu.request.current

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.request.current UpDownCounter {cpu} CPU resource requested currently configured for a running container. [1] Development k8s.container

[1]: This metric aligns with the request in the resources field of K8s ContainerStatus (status.containerStatuses[*].resources). Also see Actual Resources in https://kubernetes.io/docs/tasks/configure-pod-container/resize-container-resources/ for more details.

Metric: k8s.container.cpu.request.utilization

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.cpu.request.utilization Gauge 1 The ratio of container CPU usage to its CPU current request as defined by https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.34/#containerstatus-v1-core. [1] Development k8s.container

[1]: The value range is [0.0,1.0]. A value of 1.0 means the container is using 100% of its actual CPU request. If the CPU request is not set, this metric SHOULD NOT be emitted for that container.

Metric: k8s.container.memory.limit

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.memory.limit UpDownCounter By Maximum memory resource limit set for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.memory.request

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.memory.request UpDownCounter By Memory resource requested for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.storage.limit

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.storage.limit UpDownCounter By Maximum storage resource limit set for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.storage.request

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.storage.request UpDownCounter By Storage resource requested for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.ephemeral_storage.limit

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.ephemeral_storage.limit UpDownCounter By Maximum ephemeral storage resource limit set for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.ephemeral_storage.request

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.ephemeral_storage.request UpDownCounter By Ephemeral storage resource requested for the container. [1] Development k8s.container

[1]: See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core for details.

Metric: k8s.container.restart.count

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.restart.count UpDownCounter {restart} Describes how many times the container has restarted (since the last counter reset). [1] Development k8s.container

[1]: This value is pulled directly from the K8s API and the value can go indefinitely high and be reset to 0 at any time depending on how your kubelet is configured to prune dead containers. It is best to not depend too much on the exact value but rather look at it as either == 0, in which case you can conclude there were no restarts in the recent past, or > 0, in which case you can conclude there were restarts in the recent past, and not try and analyze the value beyond that.

Metric: k8s.container.ready

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.container.ready UpDownCounter {container} Indicates whether the container is currently marked as ready to accept traffic, based on its readiness probe (1 = ready, 0 = not ready). [1] Development k8s.container

[1]: This metric SHOULD reflect the value of the ready field in the K8s ContainerStatus.

Resource Quota metrics

Description: Resource Quota level metrics captured under the namespace k8s.resourcequota.

Metric: k8s.resourcequota.cpu.limit.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.cpu.limit.hard UpDownCounter {cpu} The CPU limits in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.cpu.limit.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.cpu.limit.used UpDownCounter {cpu} The CPU limits in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.cpu.request.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.cpu.request.hard UpDownCounter {cpu} The CPU requests in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.cpu.request.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.cpu.request.used UpDownCounter {cpu} The CPU requests in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.memory.limit.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.memory.limit.hard UpDownCounter By The memory limits in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.memory.limit.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.memory.limit.used UpDownCounter By The memory limits in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.memory.request.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.memory.request.hard UpDownCounter By The memory requests in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.memory.request.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.memory.request.used UpDownCounter By The memory requests in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.hugepage_count.request.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.hugepage_count.request.hard UpDownCounter {hugepage} The huge page requests in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.hugepage.size Development Required string The size (identifier) of the K8s huge page. 2Mi

Metric: k8s.resourcequota.hugepage_count.request.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.hugepage_count.request.used UpDownCounter {hugepage} The huge page requests in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.hugepage.size Development Required string The size (identifier) of the K8s huge page. 2Mi

Metric: k8s.resourcequota.storage.request.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.storage.request.hard UpDownCounter By The storage requests in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.storageclass.name Development Conditionally Required [1] string The name of K8s StorageClass object. gold.storageclass.storage.k8s.io

[1] k8s.storageclass.name: The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Metric: k8s.resourcequota.storage.request.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.storage.request.used UpDownCounter By The storage requests in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.storageclass.name Development Conditionally Required [1] string The name of K8s StorageClass object. gold.storageclass.storage.k8s.io

[1] k8s.storageclass.name: The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Metric: k8s.resourcequota.persistentvolumeclaim_count.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.persistentvolumeclaim_count.hard UpDownCounter {persistentvolumeclaim} The total number of PersistentVolumeClaims that can exist in the namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.storageclass.name Development Conditionally Required [1] string The name of K8s StorageClass object. gold.storageclass.storage.k8s.io

[1] k8s.storageclass.name: The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Metric: k8s.resourcequota.persistentvolumeclaim_count.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.persistentvolumeclaim_count.used UpDownCounter {persistentvolumeclaim} The total number of PersistentVolumeClaims that can exist in the namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.storageclass.name Development Conditionally Required [1] string The name of K8s StorageClass object. gold.storageclass.storage.k8s.io

[1] k8s.storageclass.name: The k8s.storageclass.name should be required when a resource quota is defined for a specific storage class.

Metric: k8s.resourcequota.ephemeral_storage.request.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.ephemeral_storage.request.hard UpDownCounter By The sum of local ephemeral storage requests in the namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.ephemeral_storage.request.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.ephemeral_storage.request.used UpDownCounter By The sum of local ephemeral storage requests in the namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.ephemeral_storage.limit.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.ephemeral_storage.limit.hard UpDownCounter By The sum of local ephemeral storage limits in the namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.ephemeral_storage.limit.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.ephemeral_storage.limit.used UpDownCounter By The sum of local ephemeral storage limits in the namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Metric: k8s.resourcequota.object_count.hard

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.object_count.hard UpDownCounter {object} The object count limits in a specific namespace.
The value represents the configured quota limit of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the hard field of the K8s ResourceQuotaStatus.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.resourcequota.resource_name Development Required string The name of the K8s resource a resource quota defines. [1] count/replicationcontrollers

[1] k8s.resourcequota.resource_name: The value for this attribute can be either the full count/<resource>[.<group>] string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See Kubernetes Resource Quotas documentation for more details.

Metric: k8s.resourcequota.object_count.used

This metric is recommended.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.resourcequota.object_count.used UpDownCounter {object} The object count limits in a specific namespace.
The value represents the current observed total usage of the resource in the namespace. [1] Development k8s.resourcequota

[1]: This metric is retrieved from the used field of the K8s ResourceQuotaStatus.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.resourcequota.resource_name Development Required string The name of the K8s resource a resource quota defines. [1] count/replicationcontrollers

[1] k8s.resourcequota.resource_name: The value for this attribute can be either the full count/<resource>[.<group>] string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See Kubernetes Resource Quotas documentation for more details.

Service metrics

Metric: k8s.service.endpoint.count

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.service.endpoint.count Gauge {endpoint} Number of endpoints for a service by condition and address type. [1] Development k8s.service

[1]: This metric is derived from the Kubernetes EndpointSlice API. It reports the number of network endpoints backing a Service, broken down by their condition and address type.

In dual-stack or multi-protocol clusters, separate counts are reported for each address family (IPv4, IPv6, FQDN).

When the optional zone attribute is enabled, counts are further broken down by availability zone for zone-aware monitoring.

An endpoint may be reported under multiple conditions simultaneously (e.g., both serving and terminating during a graceful shutdown). See K8s EndpointConditions for more details.

The conditions represent:

  • ready: Endpoints capable of receiving new connections.
  • serving: Endpoints currently handling traffic.
  • terminating: Endpoints that are being phased out but may still be handling existing connections.

For Services with publishNotReadyAddresses enabled (common for headless StatefulSets), this metric will include endpoints that are published despite not being ready. The k8s.service.publish_not_ready_addresses resource attribute indicates this setting.

Attributes:

Key Stability Requirement Level Value Type Description Example Values
k8s.service.endpoint.address_type Development Required string The address type of the service endpoint. [1] IPv4; IPv6
k8s.service.endpoint.condition Development Required string The condition of the service endpoint. [2] ready; serving; terminating
k8s.service.endpoint.zone Development Recommended string The zone of the service endpoint. [3] us-east-1a; us-west-2b; zone-a; ``

[1] k8s.service.endpoint.address_type: The network address family or type of the endpoint. This attribute aligns with the addressType field of the K8s EndpointSlice. It is used to differentiate metrics when a Service is backed by multiple address types (e.g., in dual-stack clusters).

[2] k8s.service.endpoint.condition: The current operational condition of the service endpoint. An endpoint can have multiple conditions set at once (e.g., both serving and terminating during rollout). This attribute aligns with the condition fields in the K8s EndpointSlice.

[3] k8s.service.endpoint.zone: The zone where the endpoint is located, typically corresponding to a failure domain. This attribute aligns with the zone field of endpoints in the K8s EndpointSlice. It enables zone-aware monitoring of service endpoint distribution and supports features like Topology Aware Routing.

If the zone is not populated (e.g., nodes without the topology.kubernetes.io/zone label), the attribute value will be an empty string.


k8s.service.endpoint.address_type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
FQDN FQDN address type Development
IPv4 IPv4 address type Development
IPv6 IPv6 address type Development

k8s.service.endpoint.condition has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

Value Description Stability
ready The endpoint is ready to receive new connections. Development
serving The endpoint is currently handling traffic. Development
terminating The endpoint is in the process of shutting down. Development

Metric: k8s.service.load_balancer.ingress.count

This metric is opt-in.

Name Instrument Type Unit (UCUM) Description Stability Entity Associations
k8s.service.load_balancer.ingress.count Gauge {ingress} Number of load balancer ingress points (external IPs/hostnames) assigned to the service. [1] Development k8s.service

[1]: This metric reports the number of external ingress points (IP addresses or hostnames) assigned to a LoadBalancer Service.

It is only emitted for Services of type LoadBalancer and reflects the assignments made by the underlying infrastructure's load balancer controller in the .status.loadBalancer.ingress field.

A value of 0 indicates that no ingress points have been assigned yet (e.g., during provisioning). A value greater than 1 may occur when multiple IPs or hostnames are assigned (e.g., dual-stack configurations).

This metric signals that external endpoints have been assigned by the load balancer controller, but it does not guarantee that the load balancer is healthy.