Data Collected by Middleware

The Middleware Kubernetes agent collects Kubernetes metrics with two OpenTelemetry Collector receivers:

  • Kubelet Stats receiver: node, pod, container and volume metrics (CPU, memory, filesystem, network and uptime), read from the kubelet on each node.
  • Kubernetes Cluster receiver: cluster-level metrics about nodes, workloads, storage, services and access control, read from the Kubernetes API server.

The tables list the metrics and resource attributes that the two receivers define. Enabled by default is the receiver's default: an item marked No is collected only when the agent configuration enables it.

Units follow UCUM: By is bytes, s is seconds, {cpu} is CPU cores, 1 is a dimensionless number such as a ratio or a count, and a name in braces such as {pod} is a count of that object.

Kubelet Stats receiver metrics#

Node metrics#

MetricDescriptionUnitTypeEnabled by default
k8s.node.cpu.timeTotal cumulative CPU time (sum of all cores) spent by the container/pod/node since its creationssum (monotonic)Yes
k8s.node.cpu.usageTotal CPU usage (sum of all cores per second) averaged over the sample window{cpu}gaugeYes
k8s.node.cpu.utilizationNode CPU utilization. Note: This metric will be disabled in a future release. Use metric k8s.node.cpu.usage instead.1gaugeYes
k8s.node.filesystem.availableNode filesystem availableBygaugeYes
k8s.node.filesystem.capacityNode filesystem capacityBygaugeYes
k8s.node.filesystem.usageNode filesystem usageBygaugeYes
k8s.node.filesystem.utilizationNode filesystem utilization—gaugeYes
k8s.node.memory.availableNode memory availableBygaugeYes
k8s.node.memory.major_page_faultsNode memory major_page_faults1gaugeYes
k8s.node.memory.page_faultsNode memory page_faults1gaugeYes
k8s.node.memory.rssNode memory rssBygaugeYes
k8s.node.memory.usageNode memory usageBygaugeYes
k8s.node.memory.working_setNode memory working_setBygaugeYes
k8s.node.network.errorsNode network errors1sum (monotonic)Yes
k8s.node.network.ioNode network IOBysum (monotonic)Yes
k8s.node.system_container.cpu.timeTotal cumulative CPU time (sum of all cores) spent by the system container since its creationssum (monotonic)No
k8s.node.system_container.cpu.usageTotal CPU usage (sum of all cores per second) averaged over the sample window for the system container{cpu}gaugeNo
k8s.node.system_container.memory.usageSystem container memory usageBygaugeNo
k8s.node.system_container.memory.working_setSystem container memory working_setBygaugeNo
k8s.node.uptimeThe time since the node startedssum (monotonic)No

Pod metrics#

MetricDescriptionUnitTypeEnabled by default
k8s.pod.cpu.node.utilizationPod cpu utilization as a ratio of the node's capacity1gaugeNo
k8s.pod.cpu.timeTotal cumulative CPU time (sum of all cores) spent by the container/pod/node since its creationssum (monotonic)Yes
k8s.pod.cpu.usageTotal CPU usage (sum of all cores per second) averaged over the sample window{cpu}gaugeYes
k8s.pod.cpu.utilizationPod CPU utilization. Note: This metric will be disabled in a future release. Use metric k8s.pod.cpu.usage instead.1gaugeYes
k8s.pod.cpu_limit_utilizationPod cpu utilization as a ratio of the pod's total container limits. If any container is missing a limit the metric is not emitted.1gaugeNo
k8s.pod.cpu_request_utilizationPod cpu utilization as a ratio of the pod's total container requests. If any container is missing a request the metric is not emitted.1gaugeNo
k8s.pod.filesystem.availablePod filesystem availableBygaugeYes
k8s.pod.filesystem.capacityPod filesystem capacityBygaugeYes
k8s.pod.filesystem.usagePod filesystem usageBygaugeYes
k8s.pod.filesystem.utilizationPod filesystem utilization—gaugeYes
k8s.pod.memory.availablePod memory availableBygaugeYes
k8s.pod.memory.major_page_faultsPod memory major_page_faults1gaugeYes
k8s.pod.memory.node.utilizationPod memory utilization as a ratio of the node's capacity1gaugeNo
k8s.pod.memory.page_faultsPod memory page_faults1gaugeYes
k8s.pod.memory.rssPod memory rssBygaugeYes
k8s.pod.memory.usagePod memory usageBygaugeYes
k8s.pod.memory.working_setPod memory working_setBygaugeYes
k8s.pod.memory_limit_utilizationPod memory utilization as a ratio of the pod's total container limits. If any container is missing a limit the metric is not emitted.1gaugeNo
k8s.pod.memory_request_utilizationPod memory utilization as a ratio of the pod's total container requests. If any container is missing a request the metric is not emitted.1gaugeNo
k8s.pod.network.errorsPod network errors1sum (monotonic)Yes
k8s.pod.network.ioPod network IOBysum (monotonic)Yes
k8s.pod.uptimeThe time since the pod startedssum (monotonic)No
k8s.pod.volume.usageThe number of used bytes in the pod volume.Bysum (not monotonic)No

Container metrics#

MetricDescriptionUnitTypeEnabled by default
container.cpu.timeTotal cumulative CPU time (sum of all cores) spent by the container/pod/node since its creationssum (monotonic)Yes
container.cpu.usageTotal CPU usage (sum of all cores per second) averaged over the sample window{cpu}gaugeYes
container.cpu.utilizationContainer CPU utilization. Note: This metric will be disabled in a future release. Use metric container.cpu.usage instead.1gaugeYes
container.filesystem.availableContainer filesystem availableBygaugeYes
container.filesystem.capacityContainer filesystem capacityBygaugeYes
container.filesystem.usageContainer filesystem usageBygaugeYes
container.filesystem.utilizationContainer filesystem utilization—gaugeYes
container.memory.availableContainer memory availableBygaugeYes
container.memory.major_page_faultsContainer memory major_page_faults1gaugeYes
container.memory.page_faultsContainer memory page_faults1gaugeYes
container.memory.rssContainer memory rssBygaugeYes
container.memory.usageContainer memory usageBygaugeYes
container.memory.working_setContainer memory working_setBygaugeYes
container.uptimeThe time since the container startedssum (monotonic)No
k8s.container.cpu.node.utilizationContainer cpu utilization as a ratio of the node's capacity1gaugeNo
k8s.container.cpu_limit_utilizationContainer cpu utilization as a ratio of the container's limits1gaugeNo
k8s.container.cpu_request_utilizationContainer cpu utilization as a ratio of the container's requests1gaugeNo
k8s.container.ephemeral_storage.usageEphemeral storage used by the container.Bysum (not monotonic)No
k8s.container.memory.node.utilizationContainer memory utilization as a ratio of the node's capacity1gaugeNo
k8s.container.memory_limit_utilizationContainer memory utilization as a ratio of the container's limits1gaugeNo
k8s.container.memory_request_utilizationContainer memory utilization as a ratio of the container's requests1gaugeNo

Volume metrics#

MetricDescriptionUnitTypeEnabled by default
k8s.volume.availableThe number of available bytes in the volume.BygaugeYes
k8s.volume.capacityThe total capacity in bytes of the volume.BygaugeYes
k8s.volume.inodesThe total inodes in the filesystem.1gaugeYes
k8s.volume.inodes.freeThe free inodes in the filesystem.1gaugeYes
k8s.volume.inodes.usedThe inodes used by the filesystem. This may not equal inodes - free because filesystem may share inodes with other filesystems.1gaugeYes

Kubernetes Cluster receiver metrics#

Node#

Depending on the agent configuration, the receiver also reports each node condition and each allocatable resource as a metric of its own, named k8s.node.condition_<condition> (for example k8s.node.condition_ready) and k8s.node.allocatable_<resource> (for example k8s.node.allocatable_cpu).

MetricDescriptionUnitTypeEnabled by default
k8s.node.conditionThe condition of a particular Node.{condition}gaugeNo

Namespace#

MetricDescriptionUnitTypeEnabled by default
k8s.namespace.phaseThe current phase of namespaces (1 for active and 0 for terminating)—gaugeYes

Pod#

MetricDescriptionUnitTypeEnabled by default
k8s.pod.phaseCurrent phase of the pod (1 - Pending, 2 - Running, 3 - Succeeded, 4 - Failed, 5 - Unknown)—gaugeYes
k8s.pod.status_reasonCurrent status reason of the pod (1 - Evicted, 2 - NodeAffinity, 3 - NodeLost, 4 - Shutdown, 5 - UnexpectedAdmissionError, 6 - Unknown)—gaugeNo

Container#

MetricDescriptionUnitTypeEnabled by default
k8s.container.cpu_limitMaximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details{cpu}gaugeYes
k8s.container.cpu_requestResource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details{cpu}gaugeYes
k8s.container.ephemeralstorage_limitMaximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes
k8s.container.ephemeralstorage_requestResource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes
k8s.container.memory_limitMaximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes
k8s.container.memory_requestResource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes
k8s.container.readyWhether a container has passed its readiness probe (0 for no, 1 for yes)—gaugeYes
k8s.container.restartsHow many times the container has restarted in the recent past. 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.{restart}gaugeYes
k8s.container.status.reasonExperimental metric, may experience breaking changes. Describes the number of K8s containers that are currently in a state for a given reason. 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.{container}sum (not monotonic)No
k8s.container.status.stateExperimental metric, may experience breaking changes. Describes the number of K8s containers that are currently in a given state. 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.{container}sum (not monotonic)No
k8s.container.storage_limitMaximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes
k8s.container.storage_requestResource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for detailsBygaugeYes

Deployment#

MetricDescriptionUnitTypeEnabled by default
k8s.deployment.availableTotal number of available pods (ready for at least minReadySeconds) targeted by this deployment{pod}gaugeYes
k8s.deployment.currentTotal number of current non-terminated pods targeted by this deployment{pod}gaugeYes
k8s.deployment.desiredNumber of desired pods in this deployment{pod}gaugeYes
k8s.deployment.updatedTotal number of non-terminated pods targeted by this deployment that have the updated version specified in the deployment spec{pod}gaugeYes

ReplicaSet#

MetricDescriptionUnitTypeEnabled by default
k8s.replicaset.availableTotal number of available pods (ready for at least minReadySeconds) targeted by this replicaset{pod}gaugeYes
k8s.replicaset.currentTotal number of current pods targeted by this replicaset{pod}gaugeYes
k8s.replicaset.desiredNumber of desired pods in this replicaset{pod}gaugeYes
k8s.replicaset.readyTotal number of ready pods (pods that have passed readiness checks) targeted by this replicaset{pod}gaugeYes

StatefulSet#

MetricDescriptionUnitTypeEnabled by default
k8s.statefulset.current_podsThe number of pods created by the StatefulSet controller from the StatefulSet version{pod}gaugeYes
k8s.statefulset.desired_podsNumber of desired pods in the stateful set (the spec.replicas field){pod}gaugeYes
k8s.statefulset.ready_podsNumber of pods created by the stateful set that have the Ready condition{pod}gaugeYes
k8s.statefulset.updated_podsNumber of pods created by the StatefulSet controller from the StatefulSet version{pod}gaugeYes

DaemonSet#

MetricDescriptionUnitTypeEnabled by default
k8s.daemonset.current_scheduled_nodesNumber of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod{node}gaugeYes
k8s.daemonset.desired_scheduled_nodesNumber of nodes that should be running the daemon pod (including nodes currently running the daemon pod){node}gaugeYes
k8s.daemonset.misscheduled_nodesNumber of nodes that are running the daemon pod, but are not supposed to run the daemon pod{node}gaugeYes
k8s.daemonset.ready_nodesNumber of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready{node}gaugeYes

Job#

MetricDescriptionUnitTypeEnabled by default
k8s.job.active_podsThe number of actively running pods for a job{pod}gaugeYes
k8s.job.backoff_limitSpecifies the number of retries before marking a job failed—gaugeYes
k8s.job.desired_successful_podsThe desired number of successfully finished pods the job should be run with{pod}gaugeYes
k8s.job.failed_podsThe number of pods which reached phase Failed for a job{pod}gaugeYes
k8s.job.max_parallel_podsThe max desired number of pods the job should run at any given time{pod}gaugeYes
k8s.job.successful_podsThe number of pods which reached phase Succeeded for a job{pod}gaugeYes

CronJob#

MetricDescriptionUnitTypeEnabled by default
k8s.cronjob.active_jobsThe number of actively running jobs for a cronjob{job}gaugeYes

ReplicationController#

MetricDescriptionUnitTypeEnabled by default
k8s.replication_controller.availableTotal number of available pods (ready for at least minReadySeconds) targeted by this replication_controller{pod}gaugeYes
k8s.replication_controller.desiredNumber of desired pods in this replication_controller{pod}gaugeYes

HorizontalPodAutoscaler#

MetricDescriptionUnitTypeEnabled by default
k8s.hpa.current_replicasCurrent number of pod replicas managed by this autoscaler.{pod}gaugeYes
k8s.hpa.desired_replicasDesired number of pod replicas managed by this autoscaler.{pod}gaugeYes
k8s.hpa.max_replicasMaximum number of replicas to which the autoscaler can scale up.{pod}gaugeYes
k8s.hpa.min_replicasMinimum number of replicas to which the autoscaler can scale up.{pod}gaugeYes

ResourceQuota#

MetricDescriptionUnitTypeEnabled by default
k8s.resource_quota.hard_limitThe upper limit for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores{resource}gaugeYes
k8s.resource_quota.usedThe usage for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores{resource}gaugeYes

PersistentVolume#

MetricDescriptionUnitTypeEnabled by default
k8s.persistentvolume.capacityThe capacity of persistent volume.BygaugeYes
k8s.persistentvolume.status.phaseThe current phase of the PersistentVolume (1 for the current phase, 0 for others).{persistentvolume}sum (not monotonic)No
k8s.persistentvolume.storage.capacityThe storage capacity of the PersistentVolume.Bysum (not monotonic)No

PersistentVolumeClaim#

MetricDescriptionUnitTypeEnabled by default
k8s.persistentvolumeclaim.allocatedThe allocated capacity of persistent volume.BygaugeYes
k8s.persistentvolumeclaim.capacityThe capacity of persistent volume claim.BygaugeYes
k8s.persistentvolumeclaim.status.phaseThe current phase of the PersistentVolumeClaim (1 for the current phase, 0 for others).{persistentvolumeclaim}sum (not monotonic)No
k8s.persistentvolumeclaim.storage.capacityThe actual storage capacity provisioned for the PersistentVolumeClaim. Only available when bound.Bysum (not monotonic)No
k8s.persistentvolumeclaim.storage.requestThe storage requested by the PersistentVolumeClaim.Bysum (not monotonic)No

Service#

MetricDescriptionUnitTypeEnabled by default
k8s.service.endpoint.countThe number of endpoints for a service, broken down by condition, address type, and zone.{endpoint}gaugeNo
k8s.service.load_balancer.ingress.countThe number of load balancer ingress points (external IPs/hostnames) assigned to the service.{ingress}gaugeNo
k8s.service.port_countThe number of ports in the service—gaugeYes

Ingress#

MetricDescriptionUnitTypeEnabled by default
k8s.ingress.rule_countThe rule count of ingress.1gaugeYes

ServiceAccount#

MetricDescriptionUnitTypeEnabled by default
k8s.serviceaccount.secret_countThe count of secrets in Service Account.1gaugeYes

Role#

MetricDescriptionUnitTypeEnabled by default
k8s.role.rule_countThe count of roles.1gaugeYes

RoleBinding#

MetricDescriptionUnitTypeEnabled by default
k8s.rolebinding.subject_countThe subject count of role bindings.1gaugeYes

ClusterRole#

MetricDescriptionUnitTypeEnabled by default
k8s.clusterrole.rule_countThe count of cluster roles.1gaugeYes

ClusterRoleBinding#

MetricDescriptionUnitTypeEnabled by default
k8s.clusterrolebinding.subject_countThe subject count of cluster role bindings.1gaugeYes

OpenShift cluster resource quotas#

MetricDescriptionUnitTypeEnabled by default
openshift.appliedclusterquota.limitThe upper limit for a particular resource in a specific namespace.{resource}gaugeYes
openshift.appliedclusterquota.usedThe usage for a particular resource in a specific namespace.{resource}gaugeYes
openshift.clusterquota.limitThe configured upper limit for a particular resource.{resource}gaugeYes
openshift.clusterquota.usedThe usage for a particular resource with a configured limit.{resource}gaugeYes

Resource attributes#

Resource attributes identify the object that a metric describes, such as the node, pod or container.

Kubelet Stats receiver resource attributes#

AttributeDescriptionTypeEnabled by default
aws.volume.id[DEPRECATED] The id of the AWS VolumestringNo
container.idContainer id used to identify containerstringYes
fs.type[DEPRECATED] The filesystem type of the VolumestringNo
gce.pd.name[DEPRECATED] The name of the persistent disk in GCEstringNo
glusterfs.endpoints.name[DEPRECATED] The endpoint name that details Glusterfs topologystringNo
glusterfs.path[DEPRECATED] Glusterfs volume pathstringNo
k8s.cluster.nameThe name of the ClusterstringYes
k8s.container.nameContainer name used by container runtimestringYes
k8s.job.nameThe name of the JobstringYes
k8s.job.uidThe UID of the JobstringYes
k8s.namespace.nameThe name of the namespace that the pod is running instringYes
k8s.node.nameThe name of the NodestringYes
k8s.node.start_timeThe start time of the Node.stringYes
k8s.node.system_container.nameThe name of the system containerstringYes
k8s.node.uidThe UID of the NodestringYes
k8s.persistentvolumeclaim.nameThe name of the Persistent Volume ClaimstringYes
k8s.pod.nameThe name of the PodstringYes
k8s.pod.start_timeThe start time of the Pod.stringYes
k8s.pod.uidThe UID of the PodstringYes
k8s.service.nameThe name of the ServicestringYes
k8s.service_account.nameThe name of the Service-accountstringYes
k8s.volume.nameThe name of the VolumestringYes
k8s.volume.typeThe type of the VolumestringYes
partition[DEPRECATED] The partition in the VolumestringNo

Kubernetes Cluster receiver resource attributes#

AttributeDescriptionTypeEnabled by default
container.idThe container id.stringYes
container.image.nameThe container image namestringYes
container.image.tagThe container image tagstringYes
container.runtimeThe container runtime used by Kubernetes Node.stringNo
container.runtime.versionThe version of container runtime used by Kubernetes Node.stringNo
k8s.cluster.nameThe k8s cluster name.stringYes
k8s.clusterrole.annotationsAnnotations of the Cluster Role.stringYes
k8s.clusterrole.labelsLabels of the Cluster Role.stringYes
k8s.clusterrole.nameThe name of the Cluster Role.stringYes
k8s.clusterrole.rulesRules of the Cluster Role.stringYes
k8s.clusterrole.start_timeThe start time of the Cluster Role.stringYes
k8s.clusterrole.typeThe type of the Cluster Role.stringYes
k8s.clusterrole.uidThe UID of the Role.stringYes
k8s.clusterrolebinding.annotationsAnnotations of the Cluster Role Binding.stringYes
k8s.clusterrolebinding.labelsLabels of the Cluster Role Binding.stringYes
k8s.clusterrolebinding.nameThe name of the Cluster Role Binding.stringYes
k8s.clusterrolebinding.role_refRoleRef can reference a Cluster Role.stringYes
k8s.clusterrolebinding.start_timeThe start time of the Cluster Role Binding.stringYes
k8s.clusterrolebinding.subjectsSubjects holds references to the objects, the cluster role applies to.stringYes
k8s.clusterrolebinding.typeThe type of the Cluster Role Binding.stringYes
k8s.clusterrolebinding.uidThe UID of the Cluster Role Binding.stringYes
k8s.container.nameThe k8s container namestringYes
k8s.container.status.current_waiting_reasonCurrent waiting reason of the Container.stringYes
k8s.container.status.last_terminated_reasonLast terminated reason of a container.stringNo
k8s.cronjob.concurrency_policyThe concurrency policy of the k8s CronJob.stringYes
k8s.cronjob.last_schedule_timeThe time when the CronJob was last scheduled.stringYes
k8s.cronjob.last_successful_timeThe time when the CronJob last completed successfully.stringYes
k8s.cronjob.nameThe k8s CronJob namestringYes
k8s.cronjob.scheduleThe schedule of the k8s CronJob in Cron format.stringYes
k8s.cronjob.start_timeThe start time of the Cronjob.stringYes
k8s.cronjob.suspendThe suspension state of the k8s CronJob.stringYes
k8s.cronjob.uidThe k8s CronJob uid.stringYes
k8s.daemonset.nameThe k8s daemonset name.stringYes
k8s.daemonset.selectorsThe selectors used to identify which nodes the DaemonSet pods should be scheduled on.stringYes
k8s.daemonset.start_timeThe start time of the Daemonset.stringYes
k8s.daemonset.strategyThe deployment strategy used for DaemonSet updates (RollingUpdate or OnDelete).stringYes
k8s.daemonset.uidThe k8s daemonset uid.stringYes
k8s.deployment.nameThe name of the Deployment.stringYes
k8s.deployment.start_timeThe start time of the Deployment.stringYes
k8s.deployment.uidThe UID of the Deployment.stringYes
k8s.hpa.nameThe k8s hpa name.stringYes
k8s.hpa.scaletargetref.apiversionThe API version of the target resource to scale for the HorizontalPodAutoscaler.stringNo
k8s.hpa.scaletargetref.kindThe kind of the target resource to scale for the HorizontalPodAutoscaler.stringNo
k8s.hpa.scaletargetref.nameThe name of the target resource to scale for the HorizontalPodAutoscaler.stringNo
k8s.hpa.uidThe k8s hpa uid.stringYes
k8s.ingress.annotationsAnnotations of the Ingress.stringYes
k8s.ingress.labelsLabels of the Ingress.stringYes
k8s.ingress.nameThe name of the Ingress.stringYes
k8s.ingress.namespaceThe namespace of the Ingress.stringYes
k8s.ingress.rulesRules of the Ingress.stringYes
k8s.ingress.start_timeThe start time of the Ingress.stringYes
k8s.ingress.typeThe type of the Ingress.stringYes
k8s.ingress.uidThe UID of the Ingress.stringYes
k8s.job.end_timeThe end time of the Job.stringYes
k8s.job.nameThe k8s pod name.stringYes
k8s.job.start_timeThe start time of the Job.stringYes
k8s.job.uidThe k8s job uid.stringYes
k8s.kubelet.versionThe version of Kubelet running on the node.stringNo
k8s.namespace.nameThe k8s namespace name.stringYes
k8s.namespace.start_timeThe start time of the Namespace.stringYes
k8s.namespace.uidThe k8s namespace uid.stringYes
k8s.node.nameThe k8s node name.stringYes
k8s.node.start_timeThe start time of the Node.stringYes
k8s.node.uidThe k8s node uid.stringYes
k8s.persistentvolume.access_modesThe access modes of the Persistent Volume.stringYes
k8s.persistentvolume.annotationsThe annotations of the Persistent Volume.stringYes
k8s.persistentvolume.finalizersFinalizers of the Persistent Volume.stringYes
k8s.persistentvolume.labelsLabels of the Persistent VolumestringYes
k8s.persistentvolume.nameThe name of the PersistentVolume.stringYes
k8s.persistentvolume.namespaceThe namespace of the Persistent VolumestringYes
k8s.persistentvolume.phaseThe phase of the Persistent Volume.stringYes
k8s.persistentvolume.reclaim_policyThe reclaim policy of the PersistentVolume. Values: Delete, Recycle, Retain.stringNo
k8s.persistentvolume.start_timeThe start time of the Persistent Volume.stringYes
k8s.persistentvolume.storage_classThe storage class of the Persistent Volume.stringYes
k8s.persistentvolume.typeThe type of the Persistent Volume.stringYes
k8s.persistentvolume.uidThe UID of the PersistentVolume.stringYes
k8s.persistentvolume.volume_modeThe volume mode of the Persistent Volume.stringYes
k8s.persistentvolumeclaim.access_modesAccess modes of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.annotationsThe annotations of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.finalizersFinalizers of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.labelsLabels of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.nameThe name of the PersistentVolumeClaim.stringYes
k8s.persistentvolumeclaim.namespaceThe namespace of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.phaseThe phase of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.selectorThe selector of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.start_timeThe start time of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.storage_classThe storage class of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.typeThe type of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.uidThe UID of the PersistentVolumeClaim.stringYes
k8s.persistentvolumeclaim.volume_modeThe volume mode of the Persistent Volume Claim.stringYes
k8s.persistentvolumeclaim.volume_nameThe volume name of the Persistent Volume Claim.stringYes
k8s.pod.nameThe k8s pod name.stringYes
k8s.pod.qos_classThe k8s pod qos class name. One of Guaranteed, Burstable, BestEffort.stringNo
k8s.pod.start_timeThe start time of the Pod.stringYes
k8s.pod.uidThe k8s pod uid.stringYes
k8s.replicaset.nameThe k8s replicaset namestringYes
k8s.replicaset.start_timeThe start time of the Replicaset.stringYes
k8s.replicaset.uidThe k8s replicaset uidstringYes
k8s.replicationcontroller.nameThe k8s replicationcontroller name.stringYes
k8s.replicationcontroller.uidThe k8s replicationcontroller uid.stringYes
k8s.resourcequota.nameThe k8s resourcequota name.stringYes
k8s.resourcequota.uidThe k8s resourcequota uid.stringYes
k8s.role.annotationsAnnotations of the Role.stringYes
k8s.role.labelsLabels of the Role.stringYes
k8s.role.nameThe name of the Role.stringYes
k8s.role.namespaceThe namespace of the Role.stringYes
k8s.role.rulesRules of the Role.stringYes
k8s.role.start_timeThe start time of the Role.stringYes
k8s.role.typeThe type of the Role.stringYes
k8s.role.uidThe UID of the Role.stringYes
k8s.rolebinding.annotationsAnnotations of the Role Binding.stringYes
k8s.rolebinding.labelsLabels of the Role Binding.stringYes
k8s.rolebinding.nameThe name of the Role Binding.stringYes
k8s.rolebinding.namespaceThe namespace of the Role Binding.stringYes
k8s.rolebinding.role_refRoleRef can reference a Role in the current namespace.stringYes
k8s.rolebinding.start_timeThe start time of the Role Binding.stringYes
k8s.rolebinding.subjectsSubjects holds references to the objects, the role applies to.stringYes
k8s.rolebinding.typeThe type of the Role Binding.stringYes
k8s.rolebinding.uidThe UID of the Role Binding.stringYes
k8s.service.cluster_ipThe cluster IP of the servicestringYes
k8s.service.nameThe k8s service name.stringYes
k8s.service.namespaceThe namespace of the servicestringYes
k8s.service.publish_not_ready_addressesWhether the Service publishes not-ready endpoints.boolNo
k8s.service.traffic_distributionThe traffic distribution policy for the Service (e.g., PreferClose).stringNo
k8s.service.typeThe k8s service type.stringYes
k8s.service.uidThe k8s service uid.stringYes
k8s.serviceaccount.annotationsAnnotations of the Service Account.stringYes
k8s.serviceaccount.automount_serviceaccount_tokenAutomount service account token of the Service Account.stringYes
k8s.serviceaccount.image_pull_secretsImage pull secrets of the Service Account.stringYes
k8s.serviceaccount.labelsLabels of the Service Account.stringYes
k8s.serviceaccount.nameThe name of the Service Account.stringYes
k8s.serviceaccount.namespaceThe namespace of the Service Account.stringYes
k8s.serviceaccount.secretsSecrets of the Service Account.stringYes
k8s.serviceaccount.start_timeThe start time of the Service Account.stringYes
k8s.serviceaccount.typeThe type of the Service Account.stringYes
k8s.serviceaccount.uidThe UID of the Service Account.stringYes
k8s.statefulset.nameThe k8s statefulset name.stringYes
k8s.statefulset.pod_management_policyThe k8s statefulset Pod creation and termination order policy.stringYes
k8s.statefulset.service_nameThe k8s statefulset service name.stringYes
k8s.statefulset.start_timeThe start time of the Statefulset.stringYes
k8s.statefulset.uidThe k8s statefulset uid.stringYes
k8s.storageclass.nameThe name of the StorageClass.stringYes
openshift.clusterquota.nameThe k8s ClusterResourceQuota name.stringYes
openshift.clusterquota.uidThe k8s ClusterResourceQuota uid.stringYes
os.descriptionThe os description used by Kubernetes Node.stringNo
os.typeThe os type used by Kubernetes Node.stringNo

Metric attributes#

Some metrics carry attributes on each data point, such as the network interface and the direction of traffic.

Kubelet Stats receiver metric attributes#

AttributeDescriptionValuesMetrics
directionDirection of flow of bytes/operations (receive or transmit).receive, transmitk8s.node.network.errors, k8s.node.network.io, k8s.pod.network.errors, k8s.pod.network.io
fs.typeThe type of filesystem component.rootfs, logsk8s.container.ephemeral_storage.usage
interfaceName of the network interface.—k8s.node.network.errors, k8s.node.network.io, k8s.pod.network.errors, k8s.pod.network.io

Kubernetes Cluster receiver metric attributes#

AttributeDescriptionValuesMetrics
conditionthe name of Kubernetes Node condition. Example: Ready, Memory, PID, DiskPressure—k8s.node.condition
k8s.container.status.reasonThe reason of the current container status.ContainerCreating, CrashLoopBackOff, CreateContainerConfigError, ErrImagePull, ImagePullBackOff, OOMKilled, Completed, Error, ContainerCannotRunk8s.container.status.reason
k8s.container.status.stateThe state of the container (terminated, running, waiting). See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#containerstate-v1-core for details.terminated, running, waitingk8s.container.status.state
k8s.namespace.nameThe k8s namespace name.—openshift.appliedclusterquota.limit, openshift.appliedclusterquota.used
k8s.persistentvolume.status.phaseThe phase of the PersistentVolume.Pending, Available, Bound, Released, Failedk8s.persistentvolume.status.phase
k8s.persistentvolumeclaim.status.phaseThe phase of the PersistentVolumeClaim.Pending, Bound, Lostk8s.persistentvolumeclaim.status.phase
k8s.service.endpoint.address_typeThe address type of the endpoint.IPv4, IPv6, FQDNk8s.service.endpoint.count
k8s.service.endpoint.conditionThe condition of the service endpoint.ready, serving, terminatingk8s.service.endpoint.count
k8s.service.endpoint.zoneThe zone of the service endpoint, typically corresponding to a failure domain.—k8s.service.endpoint.count
resourcethe name of the resource on which the quota is applied—k8s.resource_quota.hard_limit, k8s.resource_quota.used, openshift.appliedclusterquota.limit, openshift.appliedclusterquota.used, openshift.clusterquota.limit, openshift.clusterquota.used

Need assistance or want to learn more about Middleware? Get in touch with us via our Contact Us or join our Slack channel.