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

Last updated: April 18, 2026

Identify Resources by Name and Type

When Dash0 identifies a resource through resource equality, it also assigns a human-readable name and type based on the available resource attributes. These are stored as dash0.resource.name and dash0.resource.type resource attributes and appear throughout the Dash0 UI: on the Map, in span detail panels, in the Log explorer, in alert notifications, and more.

How Names and Types are Determined

Naming and typing rules follow the same precedence order as resource equality rules. Each equality rule has a corresponding naming rule that uses a subset of the same attribute keys. Names prefer human-readable values (e.g., k8s.pod.name) over UIDs, falling back to UIDs when names aren't available.

User-Defined Override

If a resource already contains dash0.resource.name or dash0.resource.type attributes, those values take precedence over all computed rules. This gives you full control over how a resource appears in Dash0.

Naming Rules by Technology

Rules are listed in descending order of precedence.

Kubernetes Workloads

ConditionTypeUI LabelName
k8s.pod.name or k8s.pod.uid setk8s.podPodPod name or UID
k8s.job.name or k8s.job.uid setk8s.jobJobJob name or UID
k8s.cronjob.name or k8s.cronjob.uid setk8s.cronjobCronJobCronJob name or UID
k8s.daemonset.name or k8s.daemonset.uid setk8s.daemonsetDaemonSetDaemonSet name or UID
k8s.replicaset.name or k8s.replicaset.uid setk8s.replicasetReplicaSetReplicaSet name or UID
k8s.deployment.name or k8s.deployment.uid setk8s.deploymentDeploymentDeployment name or UID
k8s.statefulset.name or k8s.statefulset.uid setk8s.statefulsetStatefulSetStatefulSet name or UID
k8s.namespace.name or k8s.namespace.uid setk8s.namespaceNamespaceNamespace name
k8s.node.name or k8s.node.uid set (no workload attrs)k8s.nodeNodeNode name or UID
k8s.cluster.name, aws.eks.cluster.arn, or k8s.cluster.uid setk8s.clusterClusterCluster name, ARN, or UID

AWS Services

ConditionTypeUI LabelName
cloud.provider == "aws" + faas.instance setaws.lambda.functionLambda Function<faas.name> (function name)
aws.ecs.task.arn setaws.ecs.taskECS TaskTask ARN or derived name
aws.ecs.cluster.arn setaws.ecs.clusterECS ClusterCluster ARN or derived name
cloud.provider == "aws" + messaging.system == "aws_sqs"aws.sqs.queueSQS Queue<messaging.destination.name>
cloud.provider == "aws" + messaging.system == "aws_sns"aws.sns.topicSNS Topic<messaging.destination.name>
cloud.provider == "aws" + faas.trigger == "http" + API Gateway identifieraws.api_gatewayAPI GatewayAPI ID from URL or <faas.name>

Example AWS Lambda name: For a function named user-service-prod, the name will be user-service-prod.

Example ECS Task name: For a task with ARN arn:aws:ecs:us-east-1:123456789012:task/my-cluster/abc123, the name may be derived as my-cluster/abc123.

Example SQS Queue name: For a queue with messaging.destination.name = order-processing-queue, the name will be order-processing-queue.

GCP Services

ConditionTypeUI LabelName
cloud.provider == "gcp" + faas.instance setgcp.cloud_run.serviceCloud Run Service<faas.name> (service name)
cloud.provider == "gcp" + messaging.system == "gcp_pubsub"gcp.pubsub.topicPub/Sub Topic<messaging.destination.name>
cloud.provider == "gcp" + gcp.gcs.bucket.name setgcp.storage.bucketStorage Bucket<gcp.gcs.bucket.name>

Example Cloud Run name: For a service named api-service in region us-central1, the name will be api-service.

Example Pub/Sub name: For a topic with messaging.destination.name = events-topic, the name will be events-topic.

Example GCS Bucket name: For a bucket named my-data-bucket, the name will be my-data-bucket.

Container and Host

ConditionTypeUI LabelName
container.name or container.id set (non-K8s)containerContainerContainer name or ID
host.name or host.id sethostHostHost name or ID

Other Platforms

ConditionTypeUI LabelName
heroku.app.id setheroku.dynoHeroku Dyno<heroku.app.id>:<service.instance.id>
cicd.pipeline.name setcicd.pipelineCI/CD PipelinePipeline name
cloud.provider == "Vercel" + faas.name + cloud.regionvercel.functionVercel Function<faas.name> (<cloud.region>)
cloud.provider == "Vercel" + faas.name (no region)vercel.functionVercel Function<faas.name>

Browser/RUM Applications

ConditionTypeUI LabelName
telemetry.sdk.language == "webjs" or process.runtime.name == "browser"browserWebsiteDerived from service attributes

For browser applications, the name is constructed from available service attributes:

  • With namespace and name: <service.namespace>:<service.name>
  • With name only: <service.name>
  • With instance ID only: <service.instance.id>
Note

Each unique combination of browser attributes (user agent, screen size, etc.) creates a distinct resource. This prevents incorrect merging of telemetry from different browser configurations.

Fallback Rules

When none of the technology-specific rules match, Dash0 falls back to service-based naming:

  1. Service with namespace or instance ID: If service.namespace and/or service.instance.id are set, the name is built from the service triplet. No type is assigned.
  2. Service name only: If only service.name is set, it becomes the resource name. No type is assigned.
  3. No attributes match: The resource is named unknown and no dash0.resource.type is set.
Note

With OpenTelemetry moving toward SDK-set service.instance.id attributes, service-based naming is intentionally low priority. Use the technology-specific rules or dash0.resource.name for more meaningful names.

Best Practices

  1. Use resource detectors in OpenTelemetry SDKs to automatically populate platform-specific attributes
  2. For AWS services, enable the AWS resource detector to populate ARNs and service identifiers
  3. For GCP services, enable the GCP resource detector to populate project and service information
  4. For Kubernetes, use the K8sAttributes processor in the OpenTelemetry Collector to enrich telemetry with pod, deployment, and namespace metadata
  5. Set custom names using dash0.resource.name when the computed name isn't suitable for your use case
  6. Monitor resource types using dash0.resource.type to ensure resources are being classified correctly
  7. For browser applications, set service.name to a meaningful application identifier for better resource naming