semantic-conventions/semantic_conventions/resource/k8s.yaml

211 lines
5.9 KiB
YAML

groups:
- id: k8s.cluster
prefix: k8s.cluster
type: resource
brief: >
A Kubernetes Cluster.
attributes:
- id: name
type: string
brief: >
The name of the cluster.
examples: ['opentelemetry-cluster']
- id: uid
type: string
brief: >
A pseudo-ID for the cluster, set to the UID of the `kube-system`
namespace.
note: |
K8s does not 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](https://www.itu.int/ITU-T/studygroups/com17/oid.html).
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.
examples: ['218fc5a9-a5f1-4b54-aa05-46717d0ab26d']
- id: k8s.node
prefix: k8s.node
type: resource
brief: >
A Kubernetes Node object.
attributes:
- id: name
type: string
brief: >
The name of the Node.
examples: ['node-1']
- id: uid
type: string
brief: >
The UID of the Node.
examples: ['1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2']
- id: k8s.namespace
prefix: k8s.namespace
type: resource
brief: >
A Kubernetes Namespace.
attributes:
- id: name
type: string
brief: >
The name of the namespace that the pod is running in.
examples: ['default']
- id: k8s.pod
prefix: k8s.pod
type: resource
brief: >
A Kubernetes Pod object.
attributes:
- id: uid
type: string
brief: >
The UID of the Pod.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the Pod.
examples: ['opentelemetry-pod-autoconf']
- id: k8s.container
prefix: k8s.container
type: resource
brief: >
A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).
attributes:
- id: name
type: string
brief: >
The name of the Container from Pod specification, must be unique
within a Pod. Container runtime usually uses different globally unique
name (`container.name`).
examples: ['redis']
- id: restart_count
type: int
brief: >
Number of times the container was restarted. This attribute can be
used to identify a particular container (running or stopped) within a
container spec.
examples: [0, 2]
- id: k8s.replicaset
prefix: k8s.replicaset
type: resource
brief: >
A Kubernetes ReplicaSet object.
attributes:
- id: uid
type: string
brief: >
The UID of the ReplicaSet.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the ReplicaSet.
examples: ['opentelemetry']
- id: k8s.deployment
prefix: k8s.deployment
type: resource
brief: >
A Kubernetes Deployment object.
attributes:
- id: uid
type: string
brief: >
The UID of the Deployment.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the Deployment.
examples: ['opentelemetry']
- id: k8s.statefulset
prefix: k8s.statefulset
type: resource
brief: >
A Kubernetes StatefulSet object.
attributes:
- id: uid
type: string
brief: >
The UID of the StatefulSet.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the StatefulSet.
examples: ['opentelemetry']
- id: k8s.daemonset
prefix: k8s.daemonset
type: resource
brief: >
A Kubernetes DaemonSet object.
attributes:
- id: uid
type: string
brief: >
The UID of the DaemonSet.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the DaemonSet.
examples: ['opentelemetry']
- id: k8s.job
prefix: k8s.job
type: resource
brief: >
A Kubernetes Job object.
attributes:
- id: uid
type: string
brief: >
The UID of the Job.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the Job.
examples: ['opentelemetry']
- id: k8s.cronjob
prefix: k8s.cronjob
type: resource
brief: >
A Kubernetes CronJob object.
attributes:
- id: uid
type: string
brief: >
The UID of the CronJob.
examples: ['275ecb36-5aa8-4c2a-9c47-d8bb681b9aff']
- id: name
type: string
brief: >
The name of the CronJob.
examples: ['opentelemetry']