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#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.node.cpu.time | Total cumulative CPU time (sum of all cores) spent by the container/pod/node since its creation | s | sum (monotonic) | Yes |
k8s.node.cpu.usage | Total CPU usage (sum of all cores per second) averaged over the sample window | {cpu} | gauge | Yes |
k8s.node.cpu.utilization | Node CPU utilization. Note: This metric will be disabled in a future release. Use metric k8s.node.cpu.usage instead. | 1 | gauge | Yes |
k8s.node.filesystem.available | Node filesystem available | By | gauge | Yes |
k8s.node.filesystem.capacity | Node filesystem capacity | By | gauge | Yes |
k8s.node.filesystem.usage | Node filesystem usage | By | gauge | Yes |
k8s.node.filesystem.utilization | Node filesystem utilization | — | gauge | Yes |
k8s.node.memory.available | Node memory available | By | gauge | Yes |
k8s.node.memory.major_page_faults | Node memory major_page_faults | 1 | gauge | Yes |
k8s.node.memory.page_faults | Node memory page_faults | 1 | gauge | Yes |
k8s.node.memory.rss | Node memory rss | By | gauge | Yes |
k8s.node.memory.usage | Node memory usage | By | gauge | Yes |
k8s.node.memory.working_set | Node memory working_set | By | gauge | Yes |
k8s.node.network.errors | Node network errors | 1 | sum (monotonic) | Yes |
k8s.node.network.io | Node network IO | By | sum (monotonic) | Yes |
k8s.node.system_container.cpu.time | Total cumulative CPU time (sum of all cores) spent by the system container since its creation | s | sum (monotonic) | No |
k8s.node.system_container.cpu.usage | Total CPU usage (sum of all cores per second) averaged over the sample window for the system container | {cpu} | gauge | No |
k8s.node.system_container.memory.usage | System container memory usage | By | gauge | No |
k8s.node.system_container.memory.working_set | System container memory working_set | By | gauge | No |
k8s.node.uptime | The time since the node started | s | sum (monotonic) | No |
Pod metrics#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.pod.cpu.node.utilization | Pod cpu utilization as a ratio of the node's capacity | 1 | gauge | No |
k8s.pod.cpu.time | Total cumulative CPU time (sum of all cores) spent by the container/pod/node since its creation | s | sum (monotonic) | Yes |
k8s.pod.cpu.usage | Total CPU usage (sum of all cores per second) averaged over the sample window | {cpu} | gauge | Yes |
k8s.pod.cpu.utilization | Pod CPU utilization. Note: This metric will be disabled in a future release. Use metric k8s.pod.cpu.usage instead. | 1 | gauge | Yes |
k8s.pod.cpu_limit_utilization | Pod cpu utilization as a ratio of the pod's total container limits. If any container is missing a limit the metric is not emitted. | 1 | gauge | No |
k8s.pod.cpu_request_utilization | Pod cpu utilization as a ratio of the pod's total container requests. If any container is missing a request the metric is not emitted. | 1 | gauge | No |
k8s.pod.filesystem.available | Pod filesystem available | By | gauge | Yes |
k8s.pod.filesystem.capacity | Pod filesystem capacity | By | gauge | Yes |
k8s.pod.filesystem.usage | Pod filesystem usage | By | gauge | Yes |
k8s.pod.filesystem.utilization | Pod filesystem utilization | — | gauge | Yes |
k8s.pod.memory.available | Pod memory available | By | gauge | Yes |
k8s.pod.memory.major_page_faults | Pod memory major_page_faults | 1 | gauge | Yes |
k8s.pod.memory.node.utilization | Pod memory utilization as a ratio of the node's capacity | 1 | gauge | No |
k8s.pod.memory.page_faults | Pod memory page_faults | 1 | gauge | Yes |
k8s.pod.memory.rss | Pod memory rss | By | gauge | Yes |
k8s.pod.memory.usage | Pod memory usage | By | gauge | Yes |
k8s.pod.memory.working_set | Pod memory working_set | By | gauge | Yes |
k8s.pod.memory_limit_utilization | Pod memory utilization as a ratio of the pod's total container limits. If any container is missing a limit the metric is not emitted. | 1 | gauge | No |
k8s.pod.memory_request_utilization | Pod memory utilization as a ratio of the pod's total container requests. If any container is missing a request the metric is not emitted. | 1 | gauge | No |
k8s.pod.network.errors | Pod network errors | 1 | sum (monotonic) | Yes |
k8s.pod.network.io | Pod network IO | By | sum (monotonic) | Yes |
k8s.pod.uptime | The time since the pod started | s | sum (monotonic) | No |
k8s.pod.volume.usage | The number of used bytes in the pod volume. | By | sum (not monotonic) | No |
Container metrics#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
container.cpu.time | Total cumulative CPU time (sum of all cores) spent by the container/pod/node since its creation | s | sum (monotonic) | Yes |
container.cpu.usage | Total CPU usage (sum of all cores per second) averaged over the sample window | {cpu} | gauge | Yes |
container.cpu.utilization | Container CPU utilization. Note: This metric will be disabled in a future release. Use metric container.cpu.usage instead. | 1 | gauge | Yes |
container.filesystem.available | Container filesystem available | By | gauge | Yes |
container.filesystem.capacity | Container filesystem capacity | By | gauge | Yes |
container.filesystem.usage | Container filesystem usage | By | gauge | Yes |
container.filesystem.utilization | Container filesystem utilization | — | gauge | Yes |
container.memory.available | Container memory available | By | gauge | Yes |
container.memory.major_page_faults | Container memory major_page_faults | 1 | gauge | Yes |
container.memory.page_faults | Container memory page_faults | 1 | gauge | Yes |
container.memory.rss | Container memory rss | By | gauge | Yes |
container.memory.usage | Container memory usage | By | gauge | Yes |
container.memory.working_set | Container memory working_set | By | gauge | Yes |
container.uptime | The time since the container started | s | sum (monotonic) | No |
k8s.container.cpu.node.utilization | Container cpu utilization as a ratio of the node's capacity | 1 | gauge | No |
k8s.container.cpu_limit_utilization | Container cpu utilization as a ratio of the container's limits | 1 | gauge | No |
k8s.container.cpu_request_utilization | Container cpu utilization as a ratio of the container's requests | 1 | gauge | No |
k8s.container.ephemeral_storage.usage | Ephemeral storage used by the container. | By | sum (not monotonic) | No |
k8s.container.memory.node.utilization | Container memory utilization as a ratio of the node's capacity | 1 | gauge | No |
k8s.container.memory_limit_utilization | Container memory utilization as a ratio of the container's limits | 1 | gauge | No |
k8s.container.memory_request_utilization | Container memory utilization as a ratio of the container's requests | 1 | gauge | No |
Volume metrics#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.volume.available | The number of available bytes in the volume. | By | gauge | Yes |
k8s.volume.capacity | The total capacity in bytes of the volume. | By | gauge | Yes |
k8s.volume.inodes | The total inodes in the filesystem. | 1 | gauge | Yes |
k8s.volume.inodes.free | The free inodes in the filesystem. | 1 | gauge | Yes |
k8s.volume.inodes.used | The inodes used by the filesystem. This may not equal inodes - free because filesystem may share inodes with other filesystems. | 1 | gauge | Yes |
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).
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.node.condition | The condition of a particular Node. | {condition} | gauge | No |
Namespace#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.namespace.phase | The current phase of namespaces (1 for active and 0 for terminating) | — | gauge | Yes |
Pod#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.pod.phase | Current phase of the pod (1 - Pending, 2 - Running, 3 - Succeeded, 4 - Failed, 5 - Unknown) | — | gauge | Yes |
k8s.pod.status_reason | Current status reason of the pod (1 - Evicted, 2 - NodeAffinity, 3 - NodeLost, 4 - Shutdown, 5 - UnexpectedAdmissionError, 6 - Unknown) | — | gauge | No |
Container#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.container.cpu_limit | Maximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | {cpu} | gauge | Yes |
k8s.container.cpu_request | Resource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | {cpu} | gauge | Yes |
k8s.container.ephemeralstorage_limit | Maximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
k8s.container.ephemeralstorage_request | Resource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
k8s.container.memory_limit | Maximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
k8s.container.memory_request | Resource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
k8s.container.ready | Whether a container has passed its readiness probe (0 for no, 1 for yes) | — | gauge | Yes |
k8s.container.restarts | How 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} | gauge | Yes |
k8s.container.status.reason | Experimental 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.state | Experimental 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_limit | Maximum resource limit set for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
k8s.container.storage_request | Resource requested for the container. See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#resourcerequirements-v1-core for details | By | gauge | Yes |
Deployment#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.deployment.available | Total number of available pods (ready for at least minReadySeconds) targeted by this deployment | {pod} | gauge | Yes |
k8s.deployment.current | Total number of current non-terminated pods targeted by this deployment | {pod} | gauge | Yes |
k8s.deployment.desired | Number of desired pods in this deployment | {pod} | gauge | Yes |
k8s.deployment.updated | Total number of non-terminated pods targeted by this deployment that have the updated version specified in the deployment spec | {pod} | gauge | Yes |
ReplicaSet#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.replicaset.available | Total number of available pods (ready for at least minReadySeconds) targeted by this replicaset | {pod} | gauge | Yes |
k8s.replicaset.current | Total number of current pods targeted by this replicaset | {pod} | gauge | Yes |
k8s.replicaset.desired | Number of desired pods in this replicaset | {pod} | gauge | Yes |
k8s.replicaset.ready | Total number of ready pods (pods that have passed readiness checks) targeted by this replicaset | {pod} | gauge | Yes |
StatefulSet#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.statefulset.current_pods | The number of pods created by the StatefulSet controller from the StatefulSet version | {pod} | gauge | Yes |
k8s.statefulset.desired_pods | Number of desired pods in the stateful set (the spec.replicas field) | {pod} | gauge | Yes |
k8s.statefulset.ready_pods | Number of pods created by the stateful set that have the Ready condition | {pod} | gauge | Yes |
k8s.statefulset.updated_pods | Number of pods created by the StatefulSet controller from the StatefulSet version | {pod} | gauge | Yes |
DaemonSet#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.daemonset.current_scheduled_nodes | Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod | {node} | gauge | Yes |
k8s.daemonset.desired_scheduled_nodes | Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod) | {node} | gauge | Yes |
k8s.daemonset.misscheduled_nodes | Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod | {node} | gauge | Yes |
k8s.daemonset.ready_nodes | Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready | {node} | gauge | Yes |
Job#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.job.active_pods | The number of actively running pods for a job | {pod} | gauge | Yes |
k8s.job.backoff_limit | Specifies the number of retries before marking a job failed | — | gauge | Yes |
k8s.job.desired_successful_pods | The desired number of successfully finished pods the job should be run with | {pod} | gauge | Yes |
k8s.job.failed_pods | The number of pods which reached phase Failed for a job | {pod} | gauge | Yes |
k8s.job.max_parallel_pods | The max desired number of pods the job should run at any given time | {pod} | gauge | Yes |
k8s.job.successful_pods | The number of pods which reached phase Succeeded for a job | {pod} | gauge | Yes |
CronJob#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.cronjob.active_jobs | The number of actively running jobs for a cronjob | {job} | gauge | Yes |
ReplicationController#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.replication_controller.available | Total number of available pods (ready for at least minReadySeconds) targeted by this replication_controller | {pod} | gauge | Yes |
k8s.replication_controller.desired | Number of desired pods in this replication_controller | {pod} | gauge | Yes |
HorizontalPodAutoscaler#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.hpa.current_replicas | Current number of pod replicas managed by this autoscaler. | {pod} | gauge | Yes |
k8s.hpa.desired_replicas | Desired number of pod replicas managed by this autoscaler. | {pod} | gauge | Yes |
k8s.hpa.max_replicas | Maximum number of replicas to which the autoscaler can scale up. | {pod} | gauge | Yes |
k8s.hpa.min_replicas | Minimum number of replicas to which the autoscaler can scale up. | {pod} | gauge | Yes |
ResourceQuota#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.resource_quota.hard_limit | The 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} | gauge | Yes |
k8s.resource_quota.used | The 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} | gauge | Yes |
PersistentVolume#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.persistentvolume.capacity | The capacity of persistent volume. | By | gauge | Yes |
k8s.persistentvolume.status.phase | The current phase of the PersistentVolume (1 for the current phase, 0 for others). | {persistentvolume} | sum (not monotonic) | No |
k8s.persistentvolume.storage.capacity | The storage capacity of the PersistentVolume. | By | sum (not monotonic) | No |
PersistentVolumeClaim#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.persistentvolumeclaim.allocated | The allocated capacity of persistent volume. | By | gauge | Yes |
k8s.persistentvolumeclaim.capacity | The capacity of persistent volume claim. | By | gauge | Yes |
k8s.persistentvolumeclaim.status.phase | The current phase of the PersistentVolumeClaim (1 for the current phase, 0 for others). | {persistentvolumeclaim} | sum (not monotonic) | No |
k8s.persistentvolumeclaim.storage.capacity | The actual storage capacity provisioned for the PersistentVolumeClaim. Only available when bound. | By | sum (not monotonic) | No |
k8s.persistentvolumeclaim.storage.request | The storage requested by the PersistentVolumeClaim. | By | sum (not monotonic) | No |
Service#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.service.endpoint.count | The number of endpoints for a service, broken down by condition, address type, and zone. | {endpoint} | gauge | No |
k8s.service.load_balancer.ingress.count | The number of load balancer ingress points (external IPs/hostnames) assigned to the service. | {ingress} | gauge | No |
k8s.service.port_count | The number of ports in the service | — | gauge | Yes |
Ingress#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.ingress.rule_count | The rule count of ingress. | 1 | gauge | Yes |
ServiceAccount#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.serviceaccount.secret_count | The count of secrets in Service Account. | 1 | gauge | Yes |
Role#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.role.rule_count | The count of roles. | 1 | gauge | Yes |
RoleBinding#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.rolebinding.subject_count | The subject count of role bindings. | 1 | gauge | Yes |
ClusterRole#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.clusterrole.rule_count | The count of cluster roles. | 1 | gauge | Yes |
ClusterRoleBinding#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
k8s.clusterrolebinding.subject_count | The subject count of cluster role bindings. | 1 | gauge | Yes |
OpenShift cluster resource quotas#
| Metric | Description | Unit | Type | Enabled by default |
|---|---|---|---|---|
openshift.appliedclusterquota.limit | The upper limit for a particular resource in a specific namespace. | {resource} | gauge | Yes |
openshift.appliedclusterquota.used | The usage for a particular resource in a specific namespace. | {resource} | gauge | Yes |
openshift.clusterquota.limit | The configured upper limit for a particular resource. | {resource} | gauge | Yes |
openshift.clusterquota.used | The usage for a particular resource with a configured limit. | {resource} | gauge | Yes |
Resource attributes#
Resource attributes identify the object that a metric describes, such as the node, pod or container.
Kubelet Stats receiver resource attributes#
| Attribute | Description | Type | Enabled by default |
|---|---|---|---|
aws.volume.id | [DEPRECATED] The id of the AWS Volume | string | No |
container.id | Container id used to identify container | string | Yes |
fs.type | [DEPRECATED] The filesystem type of the Volume | string | No |
gce.pd.name | [DEPRECATED] The name of the persistent disk in GCE | string | No |
glusterfs.endpoints.name | [DEPRECATED] The endpoint name that details Glusterfs topology | string | No |
glusterfs.path | [DEPRECATED] Glusterfs volume path | string | No |
k8s.cluster.name | The name of the Cluster | string | Yes |
k8s.container.name | Container name used by container runtime | string | Yes |
k8s.job.name | The name of the Job | string | Yes |
k8s.job.uid | The UID of the Job | string | Yes |
k8s.namespace.name | The name of the namespace that the pod is running in | string | Yes |
k8s.node.name | The name of the Node | string | Yes |
k8s.node.start_time | The start time of the Node. | string | Yes |
k8s.node.system_container.name | The name of the system container | string | Yes |
k8s.node.uid | The UID of the Node | string | Yes |
k8s.persistentvolumeclaim.name | The name of the Persistent Volume Claim | string | Yes |
k8s.pod.name | The name of the Pod | string | Yes |
k8s.pod.start_time | The start time of the Pod. | string | Yes |
k8s.pod.uid | The UID of the Pod | string | Yes |
k8s.service.name | The name of the Service | string | Yes |
k8s.service_account.name | The name of the Service-account | string | Yes |
k8s.volume.name | The name of the Volume | string | Yes |
k8s.volume.type | The type of the Volume | string | Yes |
partition | [DEPRECATED] The partition in the Volume | string | No |
Kubernetes Cluster receiver resource attributes#
| Attribute | Description | Type | Enabled by default |
|---|---|---|---|
container.id | The container id. | string | Yes |
container.image.name | The container image name | string | Yes |
container.image.tag | The container image tag | string | Yes |
container.runtime | The container runtime used by Kubernetes Node. | string | No |
container.runtime.version | The version of container runtime used by Kubernetes Node. | string | No |
k8s.cluster.name | The k8s cluster name. | string | Yes |
k8s.clusterrole.annotations | Annotations of the Cluster Role. | string | Yes |
k8s.clusterrole.labels | Labels of the Cluster Role. | string | Yes |
k8s.clusterrole.name | The name of the Cluster Role. | string | Yes |
k8s.clusterrole.rules | Rules of the Cluster Role. | string | Yes |
k8s.clusterrole.start_time | The start time of the Cluster Role. | string | Yes |
k8s.clusterrole.type | The type of the Cluster Role. | string | Yes |
k8s.clusterrole.uid | The UID of the Role. | string | Yes |
k8s.clusterrolebinding.annotations | Annotations of the Cluster Role Binding. | string | Yes |
k8s.clusterrolebinding.labels | Labels of the Cluster Role Binding. | string | Yes |
k8s.clusterrolebinding.name | The name of the Cluster Role Binding. | string | Yes |
k8s.clusterrolebinding.role_ref | RoleRef can reference a Cluster Role. | string | Yes |
k8s.clusterrolebinding.start_time | The start time of the Cluster Role Binding. | string | Yes |
k8s.clusterrolebinding.subjects | Subjects holds references to the objects, the cluster role applies to. | string | Yes |
k8s.clusterrolebinding.type | The type of the Cluster Role Binding. | string | Yes |
k8s.clusterrolebinding.uid | The UID of the Cluster Role Binding. | string | Yes |
k8s.container.name | The k8s container name | string | Yes |
k8s.container.status.current_waiting_reason | Current waiting reason of the Container. | string | Yes |
k8s.container.status.last_terminated_reason | Last terminated reason of a container. | string | No |
k8s.cronjob.concurrency_policy | The concurrency policy of the k8s CronJob. | string | Yes |
k8s.cronjob.last_schedule_time | The time when the CronJob was last scheduled. | string | Yes |
k8s.cronjob.last_successful_time | The time when the CronJob last completed successfully. | string | Yes |
k8s.cronjob.name | The k8s CronJob name | string | Yes |
k8s.cronjob.schedule | The schedule of the k8s CronJob in Cron format. | string | Yes |
k8s.cronjob.start_time | The start time of the Cronjob. | string | Yes |
k8s.cronjob.suspend | The suspension state of the k8s CronJob. | string | Yes |
k8s.cronjob.uid | The k8s CronJob uid. | string | Yes |
k8s.daemonset.name | The k8s daemonset name. | string | Yes |
k8s.daemonset.selectors | The selectors used to identify which nodes the DaemonSet pods should be scheduled on. | string | Yes |
k8s.daemonset.start_time | The start time of the Daemonset. | string | Yes |
k8s.daemonset.strategy | The deployment strategy used for DaemonSet updates (RollingUpdate or OnDelete). | string | Yes |
k8s.daemonset.uid | The k8s daemonset uid. | string | Yes |
k8s.deployment.name | The name of the Deployment. | string | Yes |
k8s.deployment.start_time | The start time of the Deployment. | string | Yes |
k8s.deployment.uid | The UID of the Deployment. | string | Yes |
k8s.hpa.name | The k8s hpa name. | string | Yes |
k8s.hpa.scaletargetref.apiversion | The API version of the target resource to scale for the HorizontalPodAutoscaler. | string | No |
k8s.hpa.scaletargetref.kind | The kind of the target resource to scale for the HorizontalPodAutoscaler. | string | No |
k8s.hpa.scaletargetref.name | The name of the target resource to scale for the HorizontalPodAutoscaler. | string | No |
k8s.hpa.uid | The k8s hpa uid. | string | Yes |
k8s.ingress.annotations | Annotations of the Ingress. | string | Yes |
k8s.ingress.labels | Labels of the Ingress. | string | Yes |
k8s.ingress.name | The name of the Ingress. | string | Yes |
k8s.ingress.namespace | The namespace of the Ingress. | string | Yes |
k8s.ingress.rules | Rules of the Ingress. | string | Yes |
k8s.ingress.start_time | The start time of the Ingress. | string | Yes |
k8s.ingress.type | The type of the Ingress. | string | Yes |
k8s.ingress.uid | The UID of the Ingress. | string | Yes |
k8s.job.end_time | The end time of the Job. | string | Yes |
k8s.job.name | The k8s pod name. | string | Yes |
k8s.job.start_time | The start time of the Job. | string | Yes |
k8s.job.uid | The k8s job uid. | string | Yes |
k8s.kubelet.version | The version of Kubelet running on the node. | string | No |
k8s.namespace.name | The k8s namespace name. | string | Yes |
k8s.namespace.start_time | The start time of the Namespace. | string | Yes |
k8s.namespace.uid | The k8s namespace uid. | string | Yes |
k8s.node.name | The k8s node name. | string | Yes |
k8s.node.start_time | The start time of the Node. | string | Yes |
k8s.node.uid | The k8s node uid. | string | Yes |
k8s.persistentvolume.access_modes | The access modes of the Persistent Volume. | string | Yes |
k8s.persistentvolume.annotations | The annotations of the Persistent Volume. | string | Yes |
k8s.persistentvolume.finalizers | Finalizers of the Persistent Volume. | string | Yes |
k8s.persistentvolume.labels | Labels of the Persistent Volume | string | Yes |
k8s.persistentvolume.name | The name of the PersistentVolume. | string | Yes |
k8s.persistentvolume.namespace | The namespace of the Persistent Volume | string | Yes |
k8s.persistentvolume.phase | The phase of the Persistent Volume. | string | Yes |
k8s.persistentvolume.reclaim_policy | The reclaim policy of the PersistentVolume. Values: Delete, Recycle, Retain. | string | No |
k8s.persistentvolume.start_time | The start time of the Persistent Volume. | string | Yes |
k8s.persistentvolume.storage_class | The storage class of the Persistent Volume. | string | Yes |
k8s.persistentvolume.type | The type of the Persistent Volume. | string | Yes |
k8s.persistentvolume.uid | The UID of the PersistentVolume. | string | Yes |
k8s.persistentvolume.volume_mode | The volume mode of the Persistent Volume. | string | Yes |
k8s.persistentvolumeclaim.access_modes | Access modes of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.annotations | The annotations of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.finalizers | Finalizers of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.labels | Labels of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.name | The name of the PersistentVolumeClaim. | string | Yes |
k8s.persistentvolumeclaim.namespace | The namespace of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.phase | The phase of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.selector | The selector of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.start_time | The start time of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.storage_class | The storage class of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.type | The type of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.uid | The UID of the PersistentVolumeClaim. | string | Yes |
k8s.persistentvolumeclaim.volume_mode | The volume mode of the Persistent Volume Claim. | string | Yes |
k8s.persistentvolumeclaim.volume_name | The volume name of the Persistent Volume Claim. | string | Yes |
k8s.pod.name | The k8s pod name. | string | Yes |
k8s.pod.qos_class | The k8s pod qos class name. One of Guaranteed, Burstable, BestEffort. | string | No |
k8s.pod.start_time | The start time of the Pod. | string | Yes |
k8s.pod.uid | The k8s pod uid. | string | Yes |
k8s.replicaset.name | The k8s replicaset name | string | Yes |
k8s.replicaset.start_time | The start time of the Replicaset. | string | Yes |
k8s.replicaset.uid | The k8s replicaset uid | string | Yes |
k8s.replicationcontroller.name | The k8s replicationcontroller name. | string | Yes |
k8s.replicationcontroller.uid | The k8s replicationcontroller uid. | string | Yes |
k8s.resourcequota.name | The k8s resourcequota name. | string | Yes |
k8s.resourcequota.uid | The k8s resourcequota uid. | string | Yes |
k8s.role.annotations | Annotations of the Role. | string | Yes |
k8s.role.labels | Labels of the Role. | string | Yes |
k8s.role.name | The name of the Role. | string | Yes |
k8s.role.namespace | The namespace of the Role. | string | Yes |
k8s.role.rules | Rules of the Role. | string | Yes |
k8s.role.start_time | The start time of the Role. | string | Yes |
k8s.role.type | The type of the Role. | string | Yes |
k8s.role.uid | The UID of the Role. | string | Yes |
k8s.rolebinding.annotations | Annotations of the Role Binding. | string | Yes |
k8s.rolebinding.labels | Labels of the Role Binding. | string | Yes |
k8s.rolebinding.name | The name of the Role Binding. | string | Yes |
k8s.rolebinding.namespace | The namespace of the Role Binding. | string | Yes |
k8s.rolebinding.role_ref | RoleRef can reference a Role in the current namespace. | string | Yes |
k8s.rolebinding.start_time | The start time of the Role Binding. | string | Yes |
k8s.rolebinding.subjects | Subjects holds references to the objects, the role applies to. | string | Yes |
k8s.rolebinding.type | The type of the Role Binding. | string | Yes |
k8s.rolebinding.uid | The UID of the Role Binding. | string | Yes |
k8s.service.cluster_ip | The cluster IP of the service | string | Yes |
k8s.service.name | The k8s service name. | string | Yes |
k8s.service.namespace | The namespace of the service | string | Yes |
k8s.service.publish_not_ready_addresses | Whether the Service publishes not-ready endpoints. | bool | No |
k8s.service.traffic_distribution | The traffic distribution policy for the Service (e.g., PreferClose). | string | No |
k8s.service.type | The k8s service type. | string | Yes |
k8s.service.uid | The k8s service uid. | string | Yes |
k8s.serviceaccount.annotations | Annotations of the Service Account. | string | Yes |
k8s.serviceaccount.automount_serviceaccount_token | Automount service account token of the Service Account. | string | Yes |
k8s.serviceaccount.image_pull_secrets | Image pull secrets of the Service Account. | string | Yes |
k8s.serviceaccount.labels | Labels of the Service Account. | string | Yes |
k8s.serviceaccount.name | The name of the Service Account. | string | Yes |
k8s.serviceaccount.namespace | The namespace of the Service Account. | string | Yes |
k8s.serviceaccount.secrets | Secrets of the Service Account. | string | Yes |
k8s.serviceaccount.start_time | The start time of the Service Account. | string | Yes |
k8s.serviceaccount.type | The type of the Service Account. | string | Yes |
k8s.serviceaccount.uid | The UID of the Service Account. | string | Yes |
k8s.statefulset.name | The k8s statefulset name. | string | Yes |
k8s.statefulset.pod_management_policy | The k8s statefulset Pod creation and termination order policy. | string | Yes |
k8s.statefulset.service_name | The k8s statefulset service name. | string | Yes |
k8s.statefulset.start_time | The start time of the Statefulset. | string | Yes |
k8s.statefulset.uid | The k8s statefulset uid. | string | Yes |
k8s.storageclass.name | The name of the StorageClass. | string | Yes |
openshift.clusterquota.name | The k8s ClusterResourceQuota name. | string | Yes |
openshift.clusterquota.uid | The k8s ClusterResourceQuota uid. | string | Yes |
os.description | The os description used by Kubernetes Node. | string | No |
os.type | The os type used by Kubernetes Node. | string | No |
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#
| Attribute | Description | Values | Metrics |
|---|---|---|---|
direction | Direction of flow of bytes/operations (receive or transmit). | receive, transmit | k8s.node.network.errors, k8s.node.network.io, k8s.pod.network.errors, k8s.pod.network.io |
fs.type | The type of filesystem component. | rootfs, logs | k8s.container.ephemeral_storage.usage |
interface | Name 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#
| Attribute | Description | Values | Metrics |
|---|---|---|---|
condition | the name of Kubernetes Node condition. Example: Ready, Memory, PID, DiskPressure | — | k8s.node.condition |
k8s.container.status.reason | The reason of the current container status. | ContainerCreating, CrashLoopBackOff, CreateContainerConfigError, ErrImagePull, ImagePullBackOff, OOMKilled, Completed, Error, ContainerCannotRun | k8s.container.status.reason |
k8s.container.status.state | The 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, waiting | k8s.container.status.state |
k8s.namespace.name | The k8s namespace name. | — | openshift.appliedclusterquota.limit, openshift.appliedclusterquota.used |
k8s.persistentvolume.status.phase | The phase of the PersistentVolume. | Pending, Available, Bound, Released, Failed | k8s.persistentvolume.status.phase |
k8s.persistentvolumeclaim.status.phase | The phase of the PersistentVolumeClaim. | Pending, Bound, Lost | k8s.persistentvolumeclaim.status.phase |
k8s.service.endpoint.address_type | The address type of the endpoint. | IPv4, IPv6, FQDN | k8s.service.endpoint.count |
k8s.service.endpoint.condition | The condition of the service endpoint. | ready, serving, terminating | k8s.service.endpoint.count |
k8s.service.endpoint.zone | The zone of the service endpoint, typically corresponding to a failure domain. | — | k8s.service.endpoint.count |
resource | the 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.