Skip to content

Latest commit

 

History

History
85 lines (70 loc) · 15.7 KB

File metadata and controls

85 lines (70 loc) · 15.7 KB

K8s

Kubernetes Attributes

Kubernetes resource attributes.

Attribute Type Description Examples Stability
k8s.cluster.name string The name of the cluster. opentelemetry-cluster Experimental
k8s.cluster.uid string A pseudo-ID for the cluster, set to the UID of the kube-system namespace. [1] 218fc5a9-a5f1-4b54-aa05-46717d0ab26d Experimental
k8s.container.name 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 Experimental
k8s.container.restart_count int Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec. Experimental
k8s.container.status.last_terminated_reason string Last terminated reason of the Container. Evicted; Error Experimental
k8s.cronjob.name string The name of the CronJob. opentelemetry Experimental
k8s.cronjob.uid string The UID of the CronJob. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.daemonset.name string The name of the DaemonSet. opentelemetry Experimental
k8s.daemonset.uid string The UID of the DaemonSet. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.deployment.name string The name of the Deployment. opentelemetry Experimental
k8s.deployment.uid string The UID of the Deployment. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.job.name string The name of the Job. opentelemetry Experimental
k8s.job.uid string The UID of the Job. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.namespace.name string The name of the namespace that the pod is running in. default Experimental
k8s.node.name string The name of the Node. node-1 Experimental
k8s.node.uid string The UID of the Node. 1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2 Experimental
k8s.pod.annotation.<key> string The annotation key-value pairs placed on the Pod, the <key> being the annotation name, the value being the annotation value. k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets=true; k8s.pod.annotation.mycompany.io/arch=x64; k8s.pod.annotation.data= Experimental
k8s.pod.label.<key> string The label key-value pairs placed on the Pod, the <key> being the label name, the value being the label value. k8s.pod.label.app=my-app; k8s.pod.label.mycompany.io/arch=x64; k8s.pod.label.data= Experimental
k8s.pod.name string The name of the Pod. opentelemetry-pod-autoconf Experimental
k8s.pod.uid string The UID of the Pod. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.replicaset.name string The name of the ReplicaSet. opentelemetry Experimental
k8s.replicaset.uid string The UID of the ReplicaSet. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.statefulset.name string The name of the StatefulSet. opentelemetry Experimental
k8s.statefulset.uid string The UID of the StatefulSet. 275ecb36-5aa8-4c2a-9c47-d8bb681b9aff Experimental
k8s.volume.name string The name of the K8s volume. volume0 Experimental
k8s.volume.type string The type of the K8s volume. emptyDir; persistentVolumeClaim Experimental

[1]: 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.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 Experimental
downwardAPI A downwardAPI volume Experimental
emptyDir An emptyDir volume Experimental
local A local volume Experimental
persistentVolumeClaim A persistentVolumeClaim volume Experimental
secret A secret volume Experimental

Deprecated Kubernetes Attributes

Describes deprecated k8s attributes.

Attribute Type Description Examples Stability
k8s.pod.labels.<key> string Deprecated, use k8s.pod.label instead. k8s.pod.label.app=my-app Deprecated
Replaced by k8s.pod.label.