K8s

K8s Cluster

Status: Development

type: k8s.cluster

Description: A Kubernetes Cluster.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.cluster.namestringThe name of the cluster.opentelemetry-clusterRecommendedDevelopment
k8s.cluster.uidstringA pseudo-ID for the cluster, set to the UID of the kube-system namespace. [1]218fc5a9-a5f1-4b54-aa05-46717d0ab26dRecommendedDevelopment

[1] k8s.cluster.uid: K8s doesn’t have support for obtaining a cluster ID. If this is ever added, we will recommend collecting the k8s.cluster.uid through the official APIs. In the meantime, we are able to use the uid of the kube-system namespace as a proxy for cluster ID. Read on for the rationale.

Every object created in a K8s cluster is assigned a distinct UID. The kube-system namespace is used by Kubernetes itself and will exist for the lifetime of the cluster. Using the uid of the kube-system namespace is a reasonable proxy for the K8s ClusterID as it will only change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are UUIDs as standardized by ISO/IEC 9834-8 and ITU-T X.667. Which states:

If generated according to one of the mechanisms defined in Rec. ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be different from all other UUIDs generated before 3603 A.D., or is extremely likely to be different (depending on the mechanism chosen).

Therefore, UIDs between clusters should be extremely unlikely to conflict.

K8s Container

Status: Development

type: k8s.container

Description: A container in a PodTemplate.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.container.namestringThe name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name).redisRecommendedDevelopment
k8s.container.restart_countintNumber of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.RecommendedDevelopment
k8s.container.status.last_terminated_reasonstringLast terminated reason of the Container.Evicted; ErrorRecommendedDevelopment

K8s Cronjob

Status: Development

type: k8s.cronjob

Description: A Kubernetes CronJob object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.cronjob.namestringThe name of the CronJob.opentelemetryRecommendedDevelopment
k8s.cronjob.uidstringThe UID of the CronJob.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.cronjob.annotation.<key>stringThe cronjob annotation placed on the CronJob, the <key> being the annotation name, the value being the annotation value. [2]4; ``Opt-InDevelopment
k8s.cronjob.label.<key>stringThe label placed on the CronJob, the <key> being the label name, the value being the label value. [3]weekly; ``Opt-InDevelopment

[2] k8s.cronjob.annotation.<key>: Examples:

  • An annotation retries with value 4 SHOULD be recorded as the k8s.cronjob.annotation.retries attribute with value "4".
  • An annotation data with empty string value SHOULD be recorded as the k8s.cronjob.annotation.data attribute with value "".

[3] k8s.cronjob.label.<key>: Examples:

  • A label type with value weekly SHOULD be recorded as the k8s.cronjob.label.type attribute with value "weekly".
  • A label automated with empty string value SHOULD be recorded as the k8s.cronjob.label.automated attribute with value "".

K8s Daemonset

Status: Development

type: k8s.daemonset

Description: A Kubernetes DaemonSet object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.daemonset.namestringThe name of the DaemonSet.opentelemetryRecommendedDevelopment
k8s.daemonset.uidstringThe UID of the DaemonSet.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.daemonset.annotation.<key>stringThe annotation placed on the DaemonSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [4]1; ``Opt-InDevelopment
k8s.daemonset.label.<key>stringThe label placed on the DaemonSet, the <key> being the label name, the value being the label value, even if the value is empty. [5]guestbook; ``Opt-InDevelopment

[4] k8s.daemonset.annotation.<key>: Examples:

  • A label replicas with value 1 SHOULD be recorded as the k8s.daemonset.annotation.replicas attribute with value "1".
  • A label data with empty string value SHOULD be recorded as the k8s.daemonset.annotation.data attribute with value "".

[5] k8s.daemonset.label.<key>: Examples:

  • A label app with value guestbook SHOULD be recorded as the k8s.daemonset.label.app attribute with value "guestbook".
  • A label data with empty string value SHOULD be recorded as the k8s.daemonset.label.injected attribute with value "".

K8s Deployment

Status: Development

type: k8s.deployment

Description: A Kubernetes Deployment object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.deployment.namestringThe name of the Deployment.opentelemetryRecommendedDevelopment
k8s.deployment.uidstringThe UID of the Deployment.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.deployment.annotation.<key>stringThe annotation placed on the Deployment, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [6]1; ``Opt-InDevelopment
k8s.deployment.label.<key>stringThe label placed on the Deployment, the <key> being the label name, the value being the label value, even if the value is empty. [7]guestbook; ``Opt-InDevelopment

[6] k8s.deployment.annotation.<key>: Examples:

  • A label replicas with value 1 SHOULD be recorded as the k8s.deployment.annotation.replicas attribute with value "1".
  • A label data with empty string value SHOULD be recorded as the k8s.deployment.annotation.data attribute with value "".

[7] k8s.deployment.label.<key>: Examples:

  • A label replicas with value 0 SHOULD be recorded as the k8s.deployment.label.app attribute with value "guestbook".
  • A label injected with empty string value SHOULD be recorded as the k8s.deployment.label.injected attribute with value "".

K8s Hpa

Status: Development

type: k8s.hpa

Description: A Kubernetes HorizontalPodAutoscaler object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.hpa.namestringThe name of the horizontal pod autoscaler.opentelemetryRecommendedDevelopment
k8s.hpa.scaletargetref.api_versionstringThe API version of the target resource to scale for the HorizontalPodAutoscaler. [8]apps/v1; autoscaling/v2RecommendedDevelopment
k8s.hpa.scaletargetref.kindstringThe kind of the target resource to scale for the HorizontalPodAutoscaler. [9]Deployment; StatefulSetRecommendedDevelopment
k8s.hpa.scaletargetref.namestringThe name of the target resource to scale for the HorizontalPodAutoscaler. [10]my-deployment; my-statefulsetRecommendedDevelopment
k8s.hpa.uidstringThe UID of the horizontal pod autoscaler.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment

[8] k8s.hpa.scaletargetref.api_version: This maps to the apiVersion field in the scaleTargetRef of the HPA spec.

[9] k8s.hpa.scaletargetref.kind: This maps to the kind field in the scaleTargetRef of the HPA spec.

[10] k8s.hpa.scaletargetref.name: This maps to the name field in the scaleTargetRef of the HPA spec.

K8s Job

Status: Development

type: k8s.job

Description: A Kubernetes Job object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.job.namestringThe name of the Job.opentelemetryRecommendedDevelopment
k8s.job.uidstringThe UID of the Job.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.job.annotation.<key>stringThe annotation placed on the Job, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [11]1; ``Opt-InDevelopment
k8s.job.label.<key>stringThe label placed on the Job, the <key> being the label name, the value being the label value, even if the value is empty. [12]ci; ``Opt-InDevelopment

[11] k8s.job.annotation.<key>: Examples:

  • A label number with value 1 SHOULD be recorded as the k8s.job.annotation.number attribute with value "1".
  • A label data with empty string value SHOULD be recorded as the k8s.job.annotation.data attribute with value "".

[12] k8s.job.label.<key>: Examples:

  • A label jobtype with value ci SHOULD be recorded as the k8s.job.label.jobtype attribute with value "ci".
  • A label data with empty string value SHOULD be recorded as the k8s.job.label.automated attribute with value "".

K8s Namespace

Status: Development

type: k8s.namespace

Description: A Kubernetes Namespace.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.namespace.namestringThe name of the namespace that the pod is running in.defaultRecommendedDevelopment
k8s.namespace.annotation.<key>stringThe annotation placed on the Namespace, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [13]0; ``Opt-InDevelopment
k8s.namespace.label.<key>stringThe label placed on the Namespace, the <key> being the label name, the value being the label value, even if the value is empty. [14]default; ``Opt-InDevelopment

[13] k8s.namespace.annotation.<key>: Examples:

  • A label ttl with value 0 SHOULD be recorded as the k8s.namespace.annotation.ttl attribute with value "0".
  • A label data with empty string value SHOULD be recorded as the k8s.namespace.annotation.data attribute with value "".

[14] k8s.namespace.label.<key>: Examples:

  • A label kubernetes.io/metadata.name with value default SHOULD be recorded as the k8s.namespace.label.kubernetes.io/metadata.name attribute with value "default".
  • A label data with empty string value SHOULD be recorded as the k8s.namespace.label.data attribute with value "".

K8s Node

Status: Development

type: k8s.node

Description: A Kubernetes Node object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.node.namestringThe name of the Node.node-1RecommendedDevelopment
k8s.node.uidstringThe UID of the Node.1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2RecommendedDevelopment
k8s.node.annotation.<key>stringThe annotation placed on the Node, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [15]0; ``Opt-InDevelopment
k8s.node.label.<key>stringThe label placed on the Node, the <key> being the label name, the value being the label value, even if the value is empty. [16]arm64; ``Opt-InDevelopment

[15] k8s.node.annotation.<key>: Examples:

  • An annotation node.alpha.kubernetes.io/ttl with value 0 SHOULD be recorded as the k8s.node.annotation.node.alpha.kubernetes.io/ttl attribute with value "0".
  • An annotation data with empty string value SHOULD be recorded as the k8s.node.annotation.data attribute with value "".

[16] k8s.node.label.<key>: Examples:

  • A label kubernetes.io/arch with value arm64 SHOULD be recorded as the k8s.node.label.kubernetes.io/arch attribute with value "arm64".
  • A label data with empty string value SHOULD be recorded as the k8s.node.label.data attribute with value "".

K8s Pod

Status: Development

type: k8s.pod

Description: A Kubernetes Pod object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.pod.namestringThe name of the Pod.opentelemetry-pod-autoconfRecommendedDevelopment
k8s.pod.uidstringThe UID of the Pod.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.pod.annotation.<key>stringThe annotation placed on the Pod, the <key> being the annotation name, the value being the annotation value. [17]true; x64; ``Opt-InDevelopment
k8s.pod.label.<key>stringThe label placed on the Pod, the <key> being the label name, the value being the label value. [18]my-app; x64; ``Opt-InDevelopment

[17] k8s.pod.annotation.<key>: Examples:

  • An annotation kubernetes.io/enforce-mountable-secrets with value true SHOULD be recorded as the k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets attribute with value "true".
  • An annotation mycompany.io/arch with value x64 SHOULD be recorded as the k8s.pod.annotation.mycompany.io/arch attribute with value "x64".
  • An annotation data with empty string value SHOULD be recorded as the k8s.pod.annotation.data attribute with value "".

[18] k8s.pod.label.<key>: Examples:

  • A label app with value my-app SHOULD be recorded as the k8s.pod.label.app attribute with value "my-app".
  • A label mycompany.io/arch with value x64 SHOULD be recorded as the k8s.pod.label.mycompany.io/arch attribute with value "x64".
  • A label data with empty string value SHOULD be recorded as the k8s.pod.label.data attribute with value "".

K8s Replicaset

Status: Development

type: k8s.replicaset

Description: A Kubernetes ReplicaSet object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.replicaset.namestringThe name of the ReplicaSet.opentelemetryRecommendedDevelopment
k8s.replicaset.uidstringThe UID of the ReplicaSet.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.replicaset.annotation.<key>stringThe annotation placed on the ReplicaSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [19]0; ``Opt-InDevelopment
k8s.replicaset.label.<key>stringThe label placed on the ReplicaSet, the <key> being the label name, the value being the label value, even if the value is empty. [20]guestbook; ``Opt-InDevelopment

[19] k8s.replicaset.annotation.<key>: Examples:

  • A label replicas with value 0 SHOULD be recorded as the k8s.replicaset.annotation.replicas attribute with value "0".
  • A label data with empty string value SHOULD be recorded as the k8s.replicaset.annotation.data attribute with value "".

[20] k8s.replicaset.label.<key>: Examples:

  • A label app with value guestbook SHOULD be recorded as the k8s.replicaset.label.app attribute with value "guestbook".
  • A label injected with empty string value SHOULD be recorded as the k8s.replicaset.label.injected attribute with value "".

K8s Replicationcontroller

Status: Development

type: k8s.replicationcontroller

Description: A Kubernetes ReplicationController object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.replicationcontroller.namestringThe name of the replication controller.opentelemetryRecommendedDevelopment
k8s.replicationcontroller.uidstringThe UID of the replication controller.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment

K8s Resourcequota

Status: Development

type: k8s.resourcequota

Description: A Kubernetes ResourceQuota object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.resourcequota.namestringThe name of the resource quota.opentelemetryRecommendedDevelopment
k8s.resourcequota.uidstringThe UID of the resource quota.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment

K8s Statefulset

Status: Development

type: k8s.statefulset

Description: A Kubernetes StatefulSet object.

Other Attributes:

:warning: This entity definition contains attributes without a role. Stable Entities MUST NOT have attributes without a defined role.

AttributeTypeDescriptionExamplesRequirement LevelStability
k8s.statefulset.namestringThe name of the StatefulSet.opentelemetryRecommendedDevelopment
k8s.statefulset.uidstringThe UID of the StatefulSet.275ecb36-5aa8-4c2a-9c47-d8bb681b9affRecommendedDevelopment
k8s.statefulset.annotation.<key>stringThe annotation placed on the StatefulSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty. [21]1; ``Opt-InDevelopment
k8s.statefulset.label.<key>stringThe label placed on the StatefulSet, the <key> being the label name, the value being the label value, even if the value is empty. [22]guestbook; ``Opt-InDevelopment

[21] k8s.statefulset.annotation.<key>: Examples:

  • A label replicas with value 1 SHOULD be recorded as the k8s.statefulset.annotation.replicas attribute with value "1".
  • A label data with empty string value SHOULD be recorded as the k8s.statefulset.annotation.data attribute with value "".

[22] k8s.statefulset.label.<key>: Examples:

  • A label replicas with value 0 SHOULD be recorded as the k8s.statefulset.label.app attribute with value "guestbook".
  • A label injected with empty string value SHOULD be recorded as the k8s.statefulset.label.injected attribute with value "".