Class K8sIncubatingAttributes

java.lang.Object
io.opentelemetry.semconv.incubating.K8sIncubatingAttributes

public final class K8sIncubatingAttributes extends Object
  • Field Details

    • K8S_CLUSTER_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CLUSTER_NAME
      The name of the cluster.
    • K8S_CLUSTER_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CLUSTER_UID
      A pseudo-ID for the cluster, set to the UID of the kube-system namespace.

      Notes:

      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_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CONTAINER_NAME
      The name of the Container from Pod specification, must be unique within a Pod. Container runtime usually uses different globally unique name (container.name).
    • K8S_CONTAINER_RESTART_COUNT

      public static final io.opentelemetry.api.common.AttributeKey<Long> K8S_CONTAINER_RESTART_COUNT
      Number of times the container was restarted. This attribute can be used to identify a particular container (running or stopped) within a container spec.
    • K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON
      Last terminated reason of the Container.
    • K8S_CONTAINER_STATUS_REASON

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CONTAINER_STATUS_REASON
      The reason for the container state. Corresponds to the reason field of the: K8s ContainerStateWaiting or K8s ContainerStateTerminated
    • K8S_CONTAINER_STATUS_STATE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CONTAINER_STATUS_STATE
      The state of the container. K8s ContainerState
    • K8S_CRONJOB_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_CRONJOB_ANNOTATION
      The cronjob annotation placed on the CronJob, the <key> being the annotation name, the value being the annotation value.

      Notes:

      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 "".
    • K8S_CRONJOB_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_CRONJOB_LABEL
      The label placed on the CronJob, the <key> being the label name, the value being the label value.

      Notes:

      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_CRONJOB_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CRONJOB_NAME
      The name of the CronJob.
    • K8S_CRONJOB_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_CRONJOB_UID
      The UID of the CronJob.
    • K8S_DAEMONSET_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_DAEMONSET_ANNOTATION
      The annotation placed on the DaemonSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_DAEMONSET_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_DAEMONSET_LABEL
      The label placed on the DaemonSet, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_DAEMONSET_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_DAEMONSET_NAME
      The name of the DaemonSet.
    • K8S_DAEMONSET_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_DAEMONSET_UID
      The UID of the DaemonSet.
    • K8S_DEPLOYMENT_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_DEPLOYMENT_ANNOTATION
      The annotation placed on the Deployment, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_DEPLOYMENT_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_DEPLOYMENT_LABEL
      The label placed on the Deployment, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_DEPLOYMENT_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_DEPLOYMENT_NAME
      The name of the Deployment.
    • K8S_DEPLOYMENT_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_DEPLOYMENT_UID
      The UID of the Deployment.
    • K8S_HPA_METRIC_TYPE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_METRIC_TYPE
      The type of metric source for the horizontal pod autoscaler.

      Notes:

      This attribute reflects the type field of spec.metrics[] in the HPA.

    • K8S_HPA_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_NAME
      The name of the horizontal pod autoscaler.
    • K8S_HPA_SCALETARGETREF_API_VERSION

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_SCALETARGETREF_API_VERSION
      The API version of the target resource to scale for the HorizontalPodAutoscaler.

      Notes:

      This maps to the apiVersion field in the scaleTargetRef of the HPA spec.

    • K8S_HPA_SCALETARGETREF_KIND

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_SCALETARGETREF_KIND
      The kind of the target resource to scale for the HorizontalPodAutoscaler.

      Notes:

      This maps to the kind field in the scaleTargetRef of the HPA spec.

    • K8S_HPA_SCALETARGETREF_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_SCALETARGETREF_NAME
      The name of the target resource to scale for the HorizontalPodAutoscaler.

      Notes:

      This maps to the name field in the scaleTargetRef of the HPA spec.

    • K8S_HPA_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HPA_UID
      The UID of the horizontal pod autoscaler.
    • K8S_HUGEPAGE_SIZE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_HUGEPAGE_SIZE
      The size (identifier) of the K8s huge page.
    • K8S_JOB_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_JOB_ANNOTATION
      The annotation placed on the Job, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_JOB_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_JOB_LABEL
      The label placed on the Job, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_JOB_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_JOB_NAME
      The name of the Job.
    • K8S_JOB_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_JOB_UID
      The UID of the Job.
    • K8S_NAMESPACE_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_NAMESPACE_ANNOTATION
      The annotation placed on the Namespace, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_NAMESPACE_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_NAMESPACE_LABEL
      The label placed on the Namespace, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_NAMESPACE_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NAMESPACE_NAME
      The name of the namespace that the pod is running in.
    • K8S_NAMESPACE_PHASE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NAMESPACE_PHASE
      The phase of the K8s namespace.

      Notes:

      This attribute aligns with the phase field of the K8s NamespaceStatus

    • K8S_NODE_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_NODE_ANNOTATION
      The annotation placed on the Node, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_NODE_CONDITION_STATUS

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NODE_CONDITION_STATUS
      The status of the condition, one of True, False, Unknown.

      Notes:

      This attribute aligns with the status field of the NodeCondition

    • K8S_NODE_CONDITION_TYPE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NODE_CONDITION_TYPE
      The condition type of a K8s Node.

      Notes:

      K8s Node conditions as described by K8s documentation.

      This attribute aligns with the type field of the NodeCondition

      The set of possible values is not limited to those listed here. Managed Kubernetes environments, or custom controllers MAY introduce additional node condition types. When this occurs, the exact value as reported by the Kubernetes API SHOULD be used.

    • K8S_NODE_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_NODE_LABEL
      The label placed on the Node, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_NODE_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NODE_NAME
      The name of the Node.
    • K8S_NODE_SYSTEM_CONTAINER_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NODE_SYSTEM_CONTAINER_NAME
      The name of the system container running on the K8s Node.
    • K8S_NODE_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_NODE_UID
      The UID of the Node.
    • K8S_PERSISTENTVOLUME_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_PERSISTENTVOLUME_ANNOTATION
      The annotation placed on the PersistentVolume, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      Examples:

      • An annotation pv.kubernetes.io/provisioned-by with value kubernetes.io/aws-ebs SHOULD be recorded as the k8s.persistentvolume.annotation.pv.kubernetes.io/provisioned-by attribute with value "kubernetes.io/aws-ebs".
      • An annotation data with empty string value SHOULD be recorded as the k8s.persistentvolume.annotation.data attribute with value "".
    • K8S_PERSISTENTVOLUME_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_PERSISTENTVOLUME_LABEL
      The label placed on the PersistentVolume, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      Examples:

      • A label type with value ssd SHOULD be recorded as the k8s.persistentvolume.label.type attribute with value "ssd".
      • A label data with empty string value SHOULD be recorded as the k8s.persistentvolume.label.data attribute with value "".
    • K8S_PERSISTENTVOLUME_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUME_NAME
      The name of the PersistentVolume.
    • K8S_PERSISTENTVOLUME_RECLAIM_POLICY

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUME_RECLAIM_POLICY
      The reclaim policy of the PersistentVolume.

      Notes:

      This attribute aligns with the persistentVolumeReclaimPolicy field of the K8s PersistentVolumeSpec.

    • K8S_PERSISTENTVOLUME_STATUS_PHASE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUME_STATUS_PHASE
      The phase of the PersistentVolume.

      Notes:

      This attribute aligns with the phase field of the K8s PersistentVolumeStatus.

    • K8S_PERSISTENTVOLUME_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUME_UID
      The UID of the PersistentVolume.
    • K8S_PERSISTENTVOLUMECLAIM_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_PERSISTENTVOLUMECLAIM_ANNOTATION
      The annotation placed on the PersistentVolumeClaim, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      Examples:

      • An annotation volume.beta.kubernetes.io/storage-provisioner with value kubernetes.io/aws-ebs SHOULD be recorded as the k8s.persistentvolumeclaim.annotation.volume.beta.kubernetes.io/storage-provisioner attribute with value "kubernetes.io/aws-ebs".
      • An annotation data with empty string value SHOULD be recorded as the k8s.persistentvolumeclaim.annotation.data attribute with value "".
    • K8S_PERSISTENTVOLUMECLAIM_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_PERSISTENTVOLUMECLAIM_LABEL
      The label placed on the PersistentVolumeClaim, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      Examples:

      • A label app with value my-app SHOULD be recorded as the k8s.persistentvolumeclaim.label.app attribute with value "my-app".
      • A label data with empty string value SHOULD be recorded as the k8s.persistentvolumeclaim.label.data attribute with value "".
    • K8S_PERSISTENTVOLUMECLAIM_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUMECLAIM_NAME
      The name of the PersistentVolumeClaim.
    • K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUMECLAIM_STATUS_PHASE
      The phase of the PersistentVolumeClaim.

      Notes:

      This attribute aligns with the phase field of the K8s PersistentVolumeClaimStatus.

    • K8S_PERSISTENTVOLUMECLAIM_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_PERSISTENTVOLUMECLAIM_UID
      The UID of the PersistentVolumeClaim.
    • K8S_POD_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_POD_ANNOTATION
      The annotation placed on the Pod, the <key> being the annotation name, the value being the annotation value.

      Notes:

      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 "".
    • K8S_POD_HOSTNAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_HOSTNAME
      Specifies the hostname of the Pod.

      Notes:

      The K8s Pod spec has an optional hostname field, which can be used to specify a hostname. Refer to K8s docs for more information about this field.

      This attribute aligns with the hostname field of the K8s PodSpec.

    • K8S_POD_IP

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_IP
      IP address allocated to the Pod.

      Notes:

      This attribute aligns with the podIP field of the K8s PodStatus.

    • K8S_POD_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_POD_LABEL
      The label placed on the Pod, the <key> being the label name, the value being the label value.

      Notes:

      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_POD_LABELS

      @Deprecated public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_POD_LABELS
      Deprecated.
      Replaced by k8s.pod.label.
      Deprecated, use k8s.pod.label instead.
    • K8S_POD_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_NAME
      The name of the Pod.
    • K8S_POD_START_TIME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_START_TIME
      The start timestamp of the Pod.

      Notes:

      Date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.

      This attribute aligns with the startTime field of the K8s PodStatus, in ISO 8601 (RFC 3339 compatible) format.

    • K8S_POD_STATUS_PHASE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_STATUS_PHASE
      The phase for the pod. Corresponds to the phase field of the: K8s PodStatus
    • K8S_POD_STATUS_REASON

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_STATUS_REASON
      The reason for the pod state. Corresponds to the reason field of the: K8s PodStatus
    • K8S_POD_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_POD_UID
      The UID of the Pod.
    • K8S_REPLICASET_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_REPLICASET_ANNOTATION
      The annotation placed on the ReplicaSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_REPLICASET_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_REPLICASET_LABEL
      The label placed on the ReplicaSet, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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_REPLICASET_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_REPLICASET_NAME
      The name of the ReplicaSet.
    • K8S_REPLICASET_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_REPLICASET_UID
      The UID of the ReplicaSet.
    • K8S_REPLICATIONCONTROLLER_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_REPLICATIONCONTROLLER_NAME
      The name of the replication controller.
    • K8S_REPLICATIONCONTROLLER_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_REPLICATIONCONTROLLER_UID
      The UID of the replication controller.
    • K8S_RESOURCEQUOTA_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_RESOURCEQUOTA_NAME
      The name of the resource quota.
    • K8S_RESOURCEQUOTA_RESOURCE_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_RESOURCEQUOTA_RESOURCE_NAME
      The name of the K8s resource a resource quota defines.

      Notes:

      The value for this attribute can be either the full count/<resource>[.<group>] string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, just the resource name (e.g., pods, services, configmaps). Both forms are supported by Kubernetes for object count quotas. See Kubernetes Resource Quotas documentation for more details.

    • K8S_RESOURCEQUOTA_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_RESOURCEQUOTA_UID
      The UID of the resource quota.
    • K8S_SERVICE_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_SERVICE_ANNOTATION
      The annotation placed on the Service, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      Examples:

      • An annotation prometheus.io/scrape with value true SHOULD be recorded as the k8s.service.annotation.prometheus.io/scrape attribute with value "true".
      • An annotation data with empty string value SHOULD be recorded as the k8s.service.annotation.data attribute with value "".
    • K8S_SERVICE_ENDPOINT_ADDRESS_TYPE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_ENDPOINT_ADDRESS_TYPE
      The address type of the service endpoint.

      Notes:

      The network address family or type of the endpoint. This attribute aligns with the addressType field of the K8s EndpointSlice. It is used to differentiate metrics when a Service is backed by multiple address types (e.g., in dual-stack clusters).

    • K8S_SERVICE_ENDPOINT_CONDITION

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_ENDPOINT_CONDITION
      The condition of the service endpoint.

      Notes:

      The current operational condition of the service endpoint. An endpoint can have multiple conditions set at once (e.g., both serving and terminating during rollout). This attribute aligns with the condition fields in the K8s EndpointSlice.

    • K8S_SERVICE_ENDPOINT_ZONE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_ENDPOINT_ZONE
      The zone of the service endpoint.

      Notes:

      The zone where the endpoint is located, typically corresponding to a failure domain. This attribute aligns with the zone field of endpoints in the K8s EndpointSlice. It enables zone-aware monitoring of service endpoint distribution and supports features like Topology Aware Routing.

      If the zone is not populated (e.g., nodes without the topology.kubernetes.io/zone label), the attribute value will be an empty string.

    • K8S_SERVICE_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_SERVICE_LABEL
      The label placed on the Service, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      Examples:

      • A label app with value my-service SHOULD be recorded as the k8s.service.label.app attribute with value "my-service".
      • A label data with empty string value SHOULD be recorded as the k8s.service.label.data attribute with value "".
    • K8S_SERVICE_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_NAME
      The name of the Service.
    • K8S_SERVICE_PUBLISH_NOT_READY_ADDRESSES

      public static final io.opentelemetry.api.common.AttributeKey<Boolean> K8S_SERVICE_PUBLISH_NOT_READY_ADDRESSES
      Whether the Service publishes not-ready endpoints.

      Notes:

      Whether the Service is configured to publish endpoints before the pods are ready. This attribute is typically used to indicate that a Service (such as a headless Service for a StatefulSet) allows peer discovery before pods pass their readiness probes. It aligns with the publishNotReadyAddresses field of the K8s ServiceSpec.

    • K8S_SERVICE_SELECTOR

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_SERVICE_SELECTOR
      The selector key-value pair placed on the Service, the <key> being the selector key, the value being the selector value.

      Notes:

      These selectors are used to correlate with pod labels. Each selector key-value pair becomes a separate attribute.

      Examples:

      • A selector app=my-app SHOULD be recorded as the k8s.service.selector.app attribute with value "my-app".
      • A selector version=v1 SHOULD be recorded as the k8s.service.selector.version attribute with value "v1".
    • K8S_SERVICE_TRAFFIC_DISTRIBUTION

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_TRAFFIC_DISTRIBUTION
      The traffic distribution policy for the Service.

      Notes:

      Specifies how traffic is distributed to endpoints for this Service. This attribute aligns with the trafficDistribution field of the K8s ServiceSpec. Known values include PreferSameZone (prefer endpoints in the same zone as the client) and PreferSameNode (prefer endpoints on the same node, fallback to same zone, then cluster-wide). If this field is not set on the Service, the attribute SHOULD NOT be emitted. When not set, Kubernetes distributes traffic evenly across all endpoints cluster-wide.

    • K8S_SERVICE_TYPE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_TYPE
      The type of the Kubernetes Service.

      Notes:

      This attribute aligns with the type field of the K8s ServiceSpec.

    • K8S_SERVICE_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_SERVICE_UID
      The UID of the Service.
    • K8S_STATEFULSET_ANNOTATION

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_STATEFULSET_ANNOTATION
      The annotation placed on the StatefulSet, the <key> being the annotation name, the value being the annotation value, even if the value is empty.

      Notes:

      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 "".
    • K8S_STATEFULSET_LABEL

      public static final io.opentelemetry.semconv.AttributeKeyTemplate<String> K8S_STATEFULSET_LABEL
      The label placed on the StatefulSet, the <key> being the label name, the value being the label value, even if the value is empty.

      Notes:

      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 "".
    • K8S_STATEFULSET_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_STATEFULSET_NAME
      The name of the StatefulSet.
    • K8S_STATEFULSET_UID

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_STATEFULSET_UID
      The UID of the StatefulSet.
    • K8S_STORAGECLASS_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_STORAGECLASS_NAME
      The name of K8s StorageClass object.
    • K8S_VOLUME_NAME

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_VOLUME_NAME
      The name of the K8s volume.
    • K8S_VOLUME_TYPE

      public static final io.opentelemetry.api.common.AttributeKey<String> K8S_VOLUME_TYPE
      The type of the K8s volume.