Dash0 Raises $110M Series B at $1B Valuation

Last updated: June 15, 2026

Kubernetes Resources

Resource equality rules and naming conventions for Kubernetes workloads, pods, nodes, and clusters.

This page documents how Dash0 identifies and names Kubernetes resources using Kubernetes semantic conventions from OpenTelemetry.

Tip

For real-world examples of how these rules solve fragmentation issues, see Why Resource Equality?

Equality Rules

Kubernetes resources are identified using a hierarchy of rules that prioritize the most stable and unique identifiers.

Kubernetes Workload Equality

For applications running in pods:

  • By Pod UID: k8s.pod.uid (unique across clusters)
Note

The k8s.pod.uid attribute uniquely identifies a pod throughout its entire lifecycle, even across node migrations or restarts. This is the only pod-based equality rule. If k8s.pod.uid is not present, the resource will fall back to workload-level equality rules (deployment, daemonset, etc.) or service triplet equality.

Kubernetes Resource Equality

Cluster-level resources, such as namespaces and deployments, are identified separately from pod-level resources.

For aggregate metrics and events about Kubernetes resources (not pods):

  • Workload Schedulers: k8s.daemonset.uid OR k8s.deployment.uid OR k8s.replicaset.uid OR k8s.statefulset.uid OR k8s.cronjob.uid OR k8s.job.uid OR k8s.replicationcontroller.uid
  • Autoscaling: k8s.hpa.uid
  • Storage: k8s.persistentvolume.uid OR k8s.persistentvolumeclaim.uid
  • Networking: k8s.service.uid
  • Policy: k8s.resourcequota.uid
  • Namespaces: k8s.namespace.uid OR k8s.namespace.name
  • Clusters: k8s.cluster.uid OR k8s.cluster.name OR aws.eks.cluster.arn

Generic Kubernetes Objects (k8s.object)

When Kubernetes telemetry comes from objects that do not have a dedicated semantic convention (e.g., custom resources, ConfigMaps, Secrets, Ingresses, or other objects collected via the k8sobjectsreceiver), Dash0 falls back to identifying them by k8s.object.uid. This prevents these resources from being incorrectly merged into the parent namespace, while still giving them a stable identity and a human-readable name from k8s.object.name.

This rule is evaluated only when no per-Kind workload attribute (Pod, Deployment, Service, etc.) is present on the resource.

Kubernetes Node Equality

Nodes are identified only when pod and workload attributes are absent, preventing node metrics from merging with pod metrics.

When k8s.node.name or k8s.node.id is set AND no pod/workload attributes are present:

  • By Node ID: k8s.node.id OR k8s.node.name

Naming Rules

Kubernetes resource names are derived from Kubernetes-specific attributes, preferring human-readable names over UIDs.

ConditionName
k8s.pod.name or k8s.pod.uid setPod name or UID
k8s.job.name or k8s.job.uid setJob name or UID
k8s.cronjob.name or k8s.cronjob.uid setCronJob name or UID
k8s.daemonset.name or k8s.daemonset.uid setDaemonSet name or UID
k8s.replicaset.name or k8s.replicaset.uid setReplicaSet name or UID
k8s.deployment.name or k8s.deployment.uid setDeployment name or UID
k8s.statefulset.name or k8s.statefulset.uid setStatefulSet name or UID
k8s.replicationcontroller.name or k8s.replicationcontroller.uid setReplicationController name or UID
k8s.hpa.name or k8s.hpa.uid setHorizontalPodAutoscaler name or UID
k8s.persistentvolume.name or k8s.persistentvolume.uid setPersistentVolume name or UID
k8s.persistentvolumeclaim.name or k8s.persistentvolumeclaim.uid setPersistentVolumeClaim name or UID
k8s.service.name or k8s.service.uid setService name or UID
k8s.resourcequota.name or k8s.resourcequota.uid setResourceQuota name or UID
k8s.object.name or k8s.object.uid set (no namespace UID and no Kind-specific attrs)Generic Kubernetes object name or UID
k8s.namespace.name or k8s.namespace.uid setNamespace name
k8s.node.name or k8s.node.uid set (no workload attrs)Node name or UID
k8s.cluster.name, aws.eks.cluster.arn, or k8s.cluster.uid setCluster name, ARN, or UID
Generic Kubernetes Object naming

The k8s.object.* naming rule is skipped when k8s.namespace.uid is present on the same resource. This ensures that a Namespace record carrying both attributes is named from k8s.namespace.*, not from the generic k8s.object.* keys.

Typing Rules

Kubernetes resource types are assigned based on the presence of specific Kubernetes attributes. Types enable filtering and visualization by resource category in Dash0.

ConditionTypeUI Label
k8s.pod.name or k8s.pod.uid setk8s.podPod
k8s.cronjob.name or k8s.cronjob.uid setk8s.cronjobCronJob
k8s.job.name or k8s.job.uid setk8s.jobJob
k8s.replicaset.name or k8s.replicaset.uid setk8s.replicasetReplicaSet
k8s.daemonset.name or k8s.daemonset.uid setk8s.daemonsetDaemonSet
k8s.deployment.name or k8s.deployment.uid setk8s.deploymentDeployment
k8s.statefulset.name or k8s.statefulset.uid setk8s.statefulsetStatefulSet
k8s.replicationcontroller.name or k8s.replicationcontroller.uid setk8s.replicationcontrollerReplicationController
k8s.hpa.name or k8s.hpa.uid setk8s.hpaHorizontalPodAutoscaler
k8s.persistentvolume.name or k8s.persistentvolume.uid setk8s.persistentvolumePersistentVolume
k8s.persistentvolumeclaim.name or k8s.persistentvolumeclaim.uid setk8s.persistentvolumeclaimPersistentVolumeClaim
k8s.service.name or k8s.service.uid setk8s.serviceService
k8s.resourcequota.name or k8s.resourcequota.uid setk8s.resourcequotaResourceQuota
k8s.object.uid set (no Kind-specific attrs)k8s.objectOther Kubernetes object
k8s.namespace.name or k8s.namespace.uid setk8s.namespaceNamespace
k8s.node.name or k8s.node.uid set (no workload attrs)k8s.nodeNode
k8s.cluster.name, aws.eks.cluster.arn, or k8s.cluster.uid setk8s.clusterCluster

Best Practices

Service Mesh Considerations

When using service meshes like Istio or Linkerd, pod association mechanisms based on IP address lookups may be unreliable due to sidecar proxies. For reliable resource correlation in service mesh environments, ensure your instrumentation includes k8s.pod.uid directly from the Downward API rather than relying on IP-based association. See Kubernetes Attributes Best Practices for detailed guidance.

Further Reading

For more information on resource equality and Kubernetes-specific configurations, explore the following resources.

Dash0 Guides & Knowledge

OpenTelemetry Resources