| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- /*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
- /*
- * DO NOT EDIT, this is an Auto-generated file from:
- * buildscripts/semantic-convention/templates/registry/semantic_attributes-h.j2
- */
- #pragma once
- #include "opentelemetry/common/macros.h"
- #include "opentelemetry/version.h"
- OPENTELEMETRY_BEGIN_NAMESPACE
- namespace semconv
- {
- namespace k8s
- {
- /**
- The name of the cluster.
- */
- static constexpr const char *kK8sClusterName = "k8s.cluster.name";
- /**
- A pseudo-ID for the cluster, set to the UID of the @code kube-system @endcode namespace.
- <p>
- K8s doesn't have support for obtaining a cluster ID. If this is ever
- added, we will recommend collecting the @code k8s.cluster.uid @endcode through the
- official APIs. In the meantime, we are able to use the @code uid @endcode of the
- @code kube-system @endcode namespace as a proxy for cluster ID. Read on for the
- rationale.
- <p>
- Every object created in a K8s cluster is assigned a distinct UID. The
- @code kube-system @endcode namespace is used by Kubernetes itself and will exist
- for the lifetime of the cluster. Using the @code uid @endcode of the @code kube-system @endcode
- 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
- <a href="https://www.itu.int/ITU-T/studygroups/com17/oid.html">ISO/IEC 9834-8 and ITU-T X.667</a>.
- Which states:
- <blockquote>
- 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).</blockquote>
- <p>
- Therefore, UIDs between clusters should be extremely unlikely to
- conflict.
- */
- static constexpr const char *kK8sClusterUid = "k8s.cluster.uid";
- /**
- The name of the Container from Pod specification, must be unique within a Pod. Container runtime
- usually uses different globally unique name (@code container.name @endcode).
- */
- static constexpr const char *kK8sContainerName = "k8s.container.name";
- /**
- Number of times the container was restarted. This attribute can be used to identify a particular
- container (running or stopped) within a container spec.
- */
- static constexpr const char *kK8sContainerRestartCount = "k8s.container.restart_count";
- /**
- Last terminated reason of the Container.
- */
- static constexpr const char *kK8sContainerStatusLastTerminatedReason =
- "k8s.container.status.last_terminated_reason";
- /**
- The cronjob annotation placed on the CronJob, the @code <key> @endcode being the annotation name,
- the value being the annotation value. <p> Examples: <ul> <li>An annotation @code retries @endcode
- with value @code 4 @endcode SHOULD be recorded as the
- @code k8s.cronjob.annotation.retries @endcode attribute with value @code "4" @endcode.</li>
- <li>An annotation @code data @endcode with empty string value SHOULD be recorded as
- the @code k8s.cronjob.annotation.data @endcode attribute with value @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sCronjobAnnotation = "k8s.cronjob.annotation";
- /**
- The label placed on the CronJob, the @code <key> @endcode being the label name, the value being
- the label value. <p> Examples: <ul> <li>A label @code type @endcode with value @code weekly
- @endcode SHOULD be recorded as the
- @code k8s.cronjob.label.type @endcode attribute with value @code "weekly" @endcode.</li>
- <li>A label @code automated @endcode with empty string value SHOULD be recorded as
- the @code k8s.cronjob.label.automated @endcode attribute with value @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sCronjobLabel = "k8s.cronjob.label";
- /**
- The name of the CronJob.
- */
- static constexpr const char *kK8sCronjobName = "k8s.cronjob.name";
- /**
- The UID of the CronJob.
- */
- static constexpr const char *kK8sCronjobUid = "k8s.cronjob.uid";
- /**
- The annotation key-value pairs placed on the DaemonSet.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sDaemonsetAnnotation = "k8s.daemonset.annotation";
- /**
- The label key-value pairs placed on the DaemonSet.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sDaemonsetLabel = "k8s.daemonset.label";
- /**
- The name of the DaemonSet.
- */
- static constexpr const char *kK8sDaemonsetName = "k8s.daemonset.name";
- /**
- The UID of the DaemonSet.
- */
- static constexpr const char *kK8sDaemonsetUid = "k8s.daemonset.uid";
- /**
- The annotation key-value pairs placed on the Deployment.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sDeploymentAnnotation = "k8s.deployment.annotation";
- /**
- The label key-value pairs placed on the Deployment.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sDeploymentLabel = "k8s.deployment.label";
- /**
- The name of the Deployment.
- */
- static constexpr const char *kK8sDeploymentName = "k8s.deployment.name";
- /**
- The UID of the Deployment.
- */
- static constexpr const char *kK8sDeploymentUid = "k8s.deployment.uid";
- /**
- The name of the horizontal pod autoscaler.
- */
- static constexpr const char *kK8sHpaName = "k8s.hpa.name";
- /**
- The UID of the horizontal pod autoscaler.
- */
- static constexpr const char *kK8sHpaUid = "k8s.hpa.uid";
- /**
- The annotation key-value pairs placed on the Job.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sJobAnnotation = "k8s.job.annotation";
- /**
- The label key-value pairs placed on the Job.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sJobLabel = "k8s.job.label";
- /**
- The name of the Job.
- */
- static constexpr const char *kK8sJobName = "k8s.job.name";
- /**
- The UID of the Job.
- */
- static constexpr const char *kK8sJobUid = "k8s.job.uid";
- /**
- The annotation key-value pairs placed on the Namespace.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sNamespaceAnnotation = "k8s.namespace.annotation";
- /**
- The label key-value pairs placed on the Namespace.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sNamespaceLabel = "k8s.namespace.label";
- /**
- The name of the namespace that the pod is running in.
- */
- static constexpr const char *kK8sNamespaceName = "k8s.namespace.name";
- /**
- The phase of the K8s namespace.
- <p>
- This attribute aligns with the @code phase @endcode field of the
- <a
- href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#namespacestatus-v1-core">K8s
- NamespaceStatus</a>
- */
- static constexpr const char *kK8sNamespacePhase = "k8s.namespace.phase";
- /**
- The annotation placed on the Node, the @code <key> @endcode being the annotation name, the value
- being the annotation value, even if the value is empty. <p> Examples: <ul> <li>An annotation @code
- node.alpha.kubernetes.io/ttl @endcode with value @code 0 @endcode SHOULD be recorded as the @code
- k8s.node.annotation.node.alpha.kubernetes.io/ttl @endcode attribute with value @code "0"
- @endcode.</li> <li>An annotation @code data @endcode with empty string value SHOULD be recorded as
- the @code k8s.node.annotation.data @endcode attribute with value @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sNodeAnnotation = "k8s.node.annotation";
- /**
- The label placed on the Node, the @code <key> @endcode being the label name, the value being the
- label value, even if the value is empty. <p> Examples: <ul> <li>A label @code kubernetes.io/arch
- @endcode with value @code arm64 @endcode SHOULD be recorded as the @code
- k8s.node.label.kubernetes.io/arch @endcode attribute with value @code "arm64" @endcode.</li> <li>A
- label @code data @endcode with empty string value SHOULD be recorded as the @code
- k8s.node.label.data @endcode attribute with value @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sNodeLabel = "k8s.node.label";
- /**
- The name of the Node.
- */
- static constexpr const char *kK8sNodeName = "k8s.node.name";
- /**
- The UID of the Node.
- */
- static constexpr const char *kK8sNodeUid = "k8s.node.uid";
- /**
- The annotation placed on the Pod, the @code <key> @endcode being the annotation name, the value
- being the annotation value. <p> Examples: <ul> <li>An annotation @code
- kubernetes.io/enforce-mountable-secrets @endcode with value @code true @endcode SHOULD be recorded
- as the @code k8s.pod.annotation.kubernetes.io/enforce-mountable-secrets @endcode attribute with
- value @code "true" @endcode.</li> <li>An annotation @code mycompany.io/arch @endcode with value
- @code x64 @endcode SHOULD be recorded as the @code k8s.pod.annotation.mycompany.io/arch @endcode
- attribute with value @code "x64" @endcode.</li> <li>An annotation @code data @endcode with empty
- string value SHOULD be recorded as the @code k8s.pod.annotation.data @endcode attribute with value
- @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sPodAnnotation = "k8s.pod.annotation";
- /**
- The label placed on the Pod, the @code <key> @endcode being the label name, the value being the
- label value. <p> Examples: <ul> <li>A label @code app @endcode with value @code my-app @endcode
- SHOULD be recorded as the @code k8s.pod.label.app @endcode attribute with value @code "my-app"
- @endcode.</li> <li>A label @code mycompany.io/arch @endcode with value @code x64 @endcode SHOULD
- be recorded as the @code k8s.pod.label.mycompany.io/arch @endcode attribute with value @code "x64"
- @endcode.</li> <li>A label @code data @endcode with empty string value SHOULD be recorded as the
- @code k8s.pod.label.data @endcode attribute with value @code "" @endcode.</li>
- </ul>
- */
- static constexpr const char *kK8sPodLabel = "k8s.pod.label";
- /**
- Deprecated, use @code k8s.pod.label @endcode instead.
- @deprecated
- {"note": "Replaced by @code k8s.pod.label @endcode.", "reason": "renamed", "renamed_to":
- "k8s.pod.label"}
- */
- OPENTELEMETRY_DEPRECATED static constexpr const char *kK8sPodLabels = "k8s.pod.labels";
- /**
- The name of the Pod.
- */
- static constexpr const char *kK8sPodName = "k8s.pod.name";
- /**
- The UID of the Pod.
- */
- static constexpr const char *kK8sPodUid = "k8s.pod.uid";
- /**
- The annotation key-value pairs placed on the ReplicaSet.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sReplicasetAnnotation = "k8s.replicaset.annotation";
- /**
- The label key-value pairs placed on the ReplicaSet.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sReplicasetLabel = "k8s.replicaset.label";
- /**
- The name of the ReplicaSet.
- */
- static constexpr const char *kK8sReplicasetName = "k8s.replicaset.name";
- /**
- The UID of the ReplicaSet.
- */
- static constexpr const char *kK8sReplicasetUid = "k8s.replicaset.uid";
- /**
- The name of the replication controller.
- */
- static constexpr const char *kK8sReplicationcontrollerName = "k8s.replicationcontroller.name";
- /**
- The UID of the replication controller.
- */
- static constexpr const char *kK8sReplicationcontrollerUid = "k8s.replicationcontroller.uid";
- /**
- The name of the resource quota.
- */
- static constexpr const char *kK8sResourcequotaName = "k8s.resourcequota.name";
- /**
- The UID of the resource quota.
- */
- static constexpr const char *kK8sResourcequotaUid = "k8s.resourcequota.uid";
- /**
- The annotation key-value pairs placed on the StatefulSet.
- <p>
- The @code <key> @endcode being the annotation name, the value being the annotation value, even if
- the value is empty.
- */
- static constexpr const char *kK8sStatefulsetAnnotation = "k8s.statefulset.annotation";
- /**
- The label key-value pairs placed on the StatefulSet.
- <p>
- The @code <key> @endcode being the label name, the value being the label value, even if the value
- is empty.
- */
- static constexpr const char *kK8sStatefulsetLabel = "k8s.statefulset.label";
- /**
- The name of the StatefulSet.
- */
- static constexpr const char *kK8sStatefulsetName = "k8s.statefulset.name";
- /**
- The UID of the StatefulSet.
- */
- static constexpr const char *kK8sStatefulsetUid = "k8s.statefulset.uid";
- /**
- The name of the K8s volume.
- */
- static constexpr const char *kK8sVolumeName = "k8s.volume.name";
- /**
- The type of the K8s volume.
- */
- static constexpr const char *kK8sVolumeType = "k8s.volume.type";
- namespace K8sNamespacePhaseValues
- {
- /**
- Active namespace phase as described by <a
- href="https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase">K8s API</a>
- */
- static constexpr const char *kActive = "active";
- /**
- Terminating namespace phase as described by <a
- href="https://pkg.go.dev/k8s.io/[email protected]/core/v1#NamespacePhase">K8s API</a>
- */
- static constexpr const char *kTerminating = "terminating";
- } // namespace K8sNamespacePhaseValues
- namespace K8sVolumeTypeValues
- {
- /**
- A <a
- href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim">persistentVolumeClaim</a>
- volume
- */
- static constexpr const char *kPersistentVolumeClaim = "persistentVolumeClaim";
- /**
- A <a
- href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#configmap">configMap</a>
- volume
- */
- static constexpr const char *kConfigMap = "configMap";
- /**
- A <a
- href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#downwardapi">downwardAPI</a>
- volume
- */
- static constexpr const char *kDownwardApi = "downwardAPI";
- /**
- An <a href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#emptydir">emptyDir</a>
- volume
- */
- static constexpr const char *kEmptyDir = "emptyDir";
- /**
- A <a href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#secret">secret</a>
- volume
- */
- static constexpr const char *kSecret = "secret";
- /**
- A <a href="https://v1-30.docs.kubernetes.io/docs/concepts/storage/volumes/#local">local</a> volume
- */
- static constexpr const char *kLocal = "local";
- } // namespace K8sVolumeTypeValues
- } // namespace k8s
- } // namespace semconv
- OPENTELEMETRY_END_NAMESPACE
|