535 lines
28 KiB
Markdown
535 lines
28 KiB
Markdown
# Kubernetes
|
|
|
|
**Status**: [Development][DocumentStatus]
|
|
|
|
Useful resources to understand Kubernetes objects and metadata:
|
|
|
|
* [Namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
|
|
* [Names and UIDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/).
|
|
* [Pods](https://kubernetes.io/docs/concepts/workloads/pods/)
|
|
* [Controllers](https://kubernetes.io/docs/concepts/workloads/controllers/)
|
|
|
|
The "name" of a Kubernetes object is unique for that type of object within a
|
|
"namespace" and only at a specific moment of time (names can be reused over
|
|
time). The "uid" is unique across your whole cluster, and very likely across
|
|
time. Because of this it is recommended to always set the UID for every
|
|
Kubernetes object, but "name" is usually more user friendly so can be also set.
|
|
|
|
## Cluster
|
|
|
|
<!-- semconv entity.k8s.cluster -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.cluster`
|
|
|
|
**Description:** A Kubernetes Cluster.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.cluster.name`](/docs/registry/attributes/k8s.md) | string | The name of the cluster. | `opentelemetry-cluster` | `Recommended` |  |
|
|
| [`k8s.cluster.uid`](/docs/registry/attributes/k8s.md) | string | A pseudo-ID for the cluster, set to the UID of the `kube-system` namespace. [1] | `218fc5a9-a5f1-4b54-aa05-46717d0ab26d` | `Recommended` |  |
|
|
|
|
**[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](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.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Node
|
|
|
|
<!-- semconv entity.k8s.node -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.node`
|
|
|
|
**Description:** A Kubernetes Node object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.node.name`](/docs/registry/attributes/k8s.md) | string | The name of the Node. | `node-1` | `Recommended` |  |
|
|
| [`k8s.node.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Node. | `1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2` | `Recommended` |  |
|
|
| [`k8s.node.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Node, the `<key>` being the annotation name, the value being the annotation value, even if the value is empty. [1] | `0`; `` | `Opt-In` |  |
|
|
| [`k8s.node.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label placed on the Node, the `<key>` being the label name, the value being the label value, even if the value is empty. [2] | `arm64`; `` | `Opt-In` |  |
|
|
|
|
**[1] `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 `""`.
|
|
|
|
**[2] `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 `""`.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Namespace
|
|
|
|
Namespaces provide a scope for names. Names of objects need to be unique within
|
|
a namespace, but not across namespaces.
|
|
|
|
<!-- semconv entity.k8s.namespace -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.namespace`
|
|
|
|
**Description:** A Kubernetes Namespace.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.namespace.name`](/docs/registry/attributes/k8s.md) | string | The name of the namespace that the pod is running in. | `default` | `Recommended` |  |
|
|
| [`k8s.namespace.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the Namespace. [1] | `k8s.namespace.annotation.ttl=0`; `k8s.namespace.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.namespace.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the Namespace. [2] | `k8s.namespace.label.kubernetes.io/metadata.name=default`; `k8s.namespace.label.data=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.namespace.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.namespace.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Pod
|
|
|
|
The smallest and simplest Kubernetes object. A Pod represents a set of running
|
|
containers on your cluster.
|
|
|
|
<!-- semconv entity.k8s.pod -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.pod`
|
|
|
|
**Description:** A Kubernetes Pod object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.pod.name`](/docs/registry/attributes/k8s.md) | string | The name of the Pod. | `opentelemetry-pod-autoconf` | `Recommended` |  |
|
|
| [`k8s.pod.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Pod. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.pod.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation placed on the Pod, the `<key>` being the annotation name, the value being the annotation value. [1] | `true`; `x64`; `` | `Opt-In` |  |
|
|
| [`k8s.pod.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label placed on the Pod, the `<key>` being the label name, the value being the label value. [2] | `my-app`; `x64`; `` | `Opt-In` |  |
|
|
|
|
**[1] `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 `""`.
|
|
|
|
**[2] `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 `""`.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Container
|
|
|
|
A container specification in a Pod template. This type is intended to be used to
|
|
capture information such as name of a container in a Pod template which is different
|
|
from the name of the running container.
|
|
|
|
Note: This type is different from [container](./container.md), which corresponds
|
|
to a running container.
|
|
|
|
<!-- semconv entity.k8s.container -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.container`
|
|
|
|
**Description:** A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.container.name`](/docs/registry/attributes/k8s.md) | 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` | `Recommended` |  |
|
|
| [`k8s.container.restart_count`](/docs/registry/attributes/k8s.md) | 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. | | `Recommended` |  |
|
|
| [`k8s.container.status.last_terminated_reason`](/docs/registry/attributes/k8s.md) | string | Last terminated reason of the Container. | `Evicted`; `Error` | `Recommended` |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## ReplicaSet
|
|
|
|
<!-- semconv entity.k8s.replicaset -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.replicaset`
|
|
|
|
**Description:** A Kubernetes ReplicaSet object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.replicaset.name`](/docs/registry/attributes/k8s.md) | string | The name of the ReplicaSet. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.replicaset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the ReplicaSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.replicaset.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the ReplicaSet. [1] | `k8s.replicaset.annotation.replicas=0`; `k8s.replicaset.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.replicaset.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the ReplicaSet. [2] | `k8s.replicaset.label.app=guestbook`; `k8s.replicaset.label.injected=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.replicaset.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.replicaset.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Deployment
|
|
|
|
An API object that manages a replicated application, typically by running Pods
|
|
with no local state. Each replica is represented by a Pod, and the Pods are
|
|
distributed among the nodes of a cluster.
|
|
|
|
<!-- semconv entity.k8s.deployment -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.deployment`
|
|
|
|
**Description:** A Kubernetes Deployment object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.deployment.name`](/docs/registry/attributes/k8s.md) | string | The name of the Deployment. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.deployment.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Deployment. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.deployment.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the Deployment. [1] | `k8s.deployment.annotation.replicas=1`; `k8s.deployment.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.deployment.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the Deployment. [2] | `k8s.deployment.label.app=guestbook`; `k8s.deployment.label.injected=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.deployment.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.deployment.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## StatefulSet
|
|
|
|
Manages the deployment and scaling of a set of Pods, and provides guarantees
|
|
about the ordering and uniqueness of these Pods.
|
|
|
|
<!-- semconv entity.k8s.statefulset -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.statefulset`
|
|
|
|
**Description:** A Kubernetes StatefulSet object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.statefulset.name`](/docs/registry/attributes/k8s.md) | string | The name of the StatefulSet. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.statefulset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the StatefulSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.statefulset.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the StatefulSet. [1] | `k8s.statefulset.annotation.replicas=1`; `k8s.statefulset.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.statefulset.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the StatefulSet. [2] | `k8s.statefulset.label.app=guestbook`; `k8s.statefulset.label.injected=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.statefulset.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.statefulset.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## DaemonSet
|
|
|
|
A DaemonSet ensures that all (or some) Nodes run a copy of a Pod.
|
|
|
|
<!-- semconv entity.k8s.daemonset -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.daemonset`
|
|
|
|
**Description:** A Kubernetes DaemonSet object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.daemonset.name`](/docs/registry/attributes/k8s.md) | string | The name of the DaemonSet. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.daemonset.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the DaemonSet. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.daemonset.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the DaemonSet. [1] | `k8s.daemonset.annotation.replicas=1`; `k8s.daemonset.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.daemonset.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the DaemonSet. [2] | `k8s.daemonset.label.app=guestbook`; `k8s.daemonset.label.injected=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.daemonset.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.daemonset.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Job
|
|
|
|
A Job creates one or more Pods and ensures that a specified number of them
|
|
successfully terminate.
|
|
|
|
<!-- semconv entity.k8s.job -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.job`
|
|
|
|
**Description:** A Kubernetes Job object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.job.name`](/docs/registry/attributes/k8s.md) | string | The name of the Job. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.job.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the Job. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.job.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The annotation key-value pairs placed on the Job. [1] | `k8s.job.annotation.number=1`; `k8s.job.annotation.data=` | `Opt-In` |  |
|
|
| [`k8s.job.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label key-value pairs placed on the Job. [2] | `k8s.job.label.jobtype=ci`; `k8s.job.label.automated=` | `Opt-In` |  |
|
|
|
|
**[1] `k8s.job.annotation.<key>`:** The `<key>` being the annotation name, the value being the annotation value, even if the value is empty.
|
|
|
|
**[2] `k8s.job.label.<key>`:** The `<key>` being the label name, the value being the label value, even if the value is empty.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## CronJob
|
|
|
|
A CronJob creates Jobs on a repeating schedule.
|
|
|
|
<!-- semconv entity.k8s.cronjob -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.cronjob`
|
|
|
|
**Description:** A Kubernetes CronJob object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.cronjob.name`](/docs/registry/attributes/k8s.md) | string | The name of the CronJob. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.cronjob.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the CronJob. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
| [`k8s.cronjob.annotation.<key>`](/docs/registry/attributes/k8s.md) | string | The cronjob annotation placed on the CronJob, the `<key>` being the annotation name, the value being the annotation value. [1] | `4`; `` | `Opt-In` |  |
|
|
| [`k8s.cronjob.label.<key>`](/docs/registry/attributes/k8s.md) | string | The label placed on the CronJob, the `<key>` being the label name, the value being the label value. [2] | `weekly`; `` | `Opt-In` |  |
|
|
|
|
**[1] `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 `""`.
|
|
|
|
**[2] `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 `""`.
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## ReplicationController
|
|
|
|
A ReplicationController ensures that a specified number of pod replicas are running at any one time.
|
|
|
|
<!-- semconv entity.k8s.replicationcontroller -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.replicationcontroller`
|
|
|
|
**Description:** A Kubernetes ReplicationController object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.replicationcontroller.name`](/docs/registry/attributes/k8s.md) | string | The name of the replication controller. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.replicationcontroller.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the replication controller. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## HorizontalPodAutoscaler
|
|
|
|
A HorizontalPodAutoscaler (HPA for short) automatically updates a workload resource
|
|
(such as a Deployment or StatefulSet), with the aim of automatically scaling the workload to match demand.
|
|
|
|
<!-- semconv entity.k8s.hpa -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.hpa`
|
|
|
|
**Description:** A Kubernetes HorizontalPodAutoscaler object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.hpa.name`](/docs/registry/attributes/k8s.md) | string | The name of the horizontal pod autoscaler. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.hpa.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the horizontal pod autoscaler. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## ResourceQuota
|
|
|
|
A ResourceQuota provides constraints that limit aggregate resource consumption per namespace.
|
|
|
|
<!-- semconv entity.k8s.resourcequota -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
|
|
**Status:** 
|
|
|
|
**type:** `k8s.resourcequota`
|
|
|
|
**Description:** A Kubernetes ResourceQuota object.
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`k8s.resourcequota.name`](/docs/registry/attributes/k8s.md) | string | The name of the resource quota. | `opentelemetry` | `Recommended` |  |
|
|
| [`k8s.resourcequota.uid`](/docs/registry/attributes/k8s.md) | string | The UID of the resource quota. | `275ecb36-5aa8-4c2a-9c47-d8bb681b9aff` | `Recommended` |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
|
|
|
|
## Kubernetes specific guidelines
|
|
|
|
The following guidelines are specific to Kubernetes:
|
|
|
|
- [Service attributes](../non-normative/k8s-attributes.md#service-attributes)
|
|
- [Naming known exceptions](../non-normative/naming-known-exceptions.md)
|