CtrlK
BlogDocsLog inGet started
Tessl Logo

dash0/agent-skills

Expert guidance for configuring and deploying the OpenTelemetry Collector. Use when setting up a Collector pipeline, configuring receivers, exporters, or processors, deploying a Collector to Kubernetes or Docker, or forwarding telemetry to Dash0. Triggers on requests involving collector, pipeline, OTLP receiver, exporter, or Dash0 collector setup.

100

Quality

100%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

dash0.mdskills/otel-semantic-conventions/rules/

title:
Dash0 Derived Attributes and Features
impact:
HIGH
tags:
dash0, derived-attributes, service-mapping, operations

Dash0

To get full value from Dash0, ensure your telemetry sets the attributes listed in the table below. Dash0 derives enriched attributes from incoming telemetry — if the source attributes are missing or incorrect, the features degrade silently without errors.

Derived capabilities

CapabilityDepends OnWhat Happens
Service mapping and topologyservice.name, correct span kinds, peer.service or server.address on client spansBuilds the service dependency graph and call flows
Operation classificationhttp.request.method, http.route, db.operation.name, rpc.methodBuilds dash0.operation.name for grouping requests by operation
Span type detectionPresence of namespace attributes (http.*, db.*, messaging.*, rpc.*)Classifies spans as HTTP, database, messaging, or RPC for type-specific views
Adaptive samplingConsistent attribute naming across servicesMakes intelligent sampling decisions based on attribute patterns
AI-powered log analysisStructured severity, log body conventionsGenerates log templates and groups similar log entries

Minimum attributes to set

At a minimum, ensure every service sets the following. Without them, Dash0 features degrade silently — no errors, just missing data.

What to setWhyConsequence if missing
service.nameService attributionTelemetry appears as unknown_service
Correct span kind (SERVER, CLIENT, etc.)Service map edgesDatabase calls with INTERNAL kind do not appear as dependencies
Protocol attributes (http.*, db.*, messaging.*, rpc.*)Span type classificationSpans are classified as generic, losing type-specific dashboards
Consistent attribute names across all servicesCross-service queriesTopology views show fragmented services; queries return partial results

Dash0 derived attributes

These attributes are automatically derived by Dash0 from incoming telemetry. They are not set by instrumentation — Dash0 computes them at ingestion time.

The otel.* attributes below are Dash0's attribute representations of OpenTelemetry protocol fields that are not natively attributes (e.g., trace ID, span duration, severity number). Dash0 surfaces them as queryable attributes for filtering and analysis.

Resource attributes

AttributeTypeDescription
dash0.resource.idstringUnique identifier for the resource in Dash0
dash0.resource.typestringType classification (e.g., k8s.pod, host, vercel.project)
dash0.resource.namestringHuman-readable name for the resource

Span attributes

AttributeTypeDescription
dash0.span.namestringDash0-normalized span name (e.g., SELECT … FROM my-table WHERE …)
dash0.span.typestringSpan type classification: http, rpc, database, messaging
dash0.operation.namestringLogical operation name (e.g., GET /articles/<article-id>)
dash0.operation.typestringOperation type: http, rpc, database, messaging
otel.trace.idstringTrace identifier (from OTel protocol trace ID field)
otel.span.idstringSpan identifier (from OTel protocol span ID field)
otel.parent.idstringParent span identifier (from OTel protocol parent span ID field)
otel.span.namestringOriginal OpenTelemetry span name (from OTel protocol span name field)
otel.span.kindstringSpan kind: SERVER, CLIENT, PRODUCER, CONSUMER, INTERNAL (from OTel protocol span kind field)
otel.span.durationdoubleSpan duration in seconds (computed from OTel protocol start/end time fields)
otel.span.start_timeintSpan start time in Unix nanoseconds (from OTel protocol start time field)
otel.span.end_timeintSpan end time in Unix nanoseconds (from OTel protocol end time field)
otel.span.status.codestringSpan status code: OK, ERROR (from OTel protocol status field)
otel.span.status.messagestringSpan status description (from OTel protocol status field)

Log attributes

AttributeTypeDescription
dash0.log.processor.typestringLog processor type (e.g., json)
dash0.log.templatestringAI-inferred log template with variables replaced by placeholders
dash0.log.attribute.<key>variesLog attributes automatically extracted through log AI
otel.log.bodystringLog record body (from OTel protocol log body field)
otel.log.timestringLog record timestamp (from OTel protocol time field)
otel.log.severity.numberintSeverity as number, e.g., 17 for ERROR (from OTel protocol severity number field)
otel.log.severity.textstringSeverity as text, e.g., ERROR (from OTel protocol severity text field)
otel.log.severity.rangestringCategorical severity range: ERROR, WARN, INFO, DEBUG, TRACE

Metric attributes

AttributeTypeDescription
otel.metric.namestringMetric name (from OTel protocol metric name field)
otel.metric.descriptionstringMetric description (from OTel protocol metric description field)
otel.metric.typestringMetric type: GAUGE, HISTOGRAM, SUM, etc. (from OTel protocol metric type)
otel.metric.unitstringMetric unit, e.g., s, bytes, 1 (from OTel protocol metric unit field)

References

  • Dash0 Semantic Conventions — full list of derived attributes
  • Dash0 Semantic Conventions Explainer — comprehensive guide to conventions

skills

otel-semantic-conventions

README.md

tile.json