Dash0 acquires Polar Signals

Changelog

Recent changes and improvements to Dash0

Join us on a journey through Observability and OpenTelemetry as we improve our product. Stay connected with our Newsletter or RSS for fresh updates.

Mar 6, 2026

Dash0 Semantic Conventions Are Now Public

Every metric, attribute, and event that Dash0 adds to your telemetry is now defined in a public, machine-readable registry. The Dash0 Semantic Conventions give you a single place to look up what each field means, where it comes from, and how to query it.

At Dash0, we live and breathe OpenTelemetry Semantic Conventions. And in building Dash0, we have defined attributes we add to telemetry you send us, and metrics we make available to you out of the box like the synthetic metrics that you use a lot for alerting.

We like a lot of what we see in the OpenTelemetry Weaver project, which provides the tooling that the OpenTelemetry project uses to publish the OpenTelemetry Semantic Conventions.

And so we did the same ourselves.

Why a public registry?

Dash0 enriches incoming telemetry with attributes such as dash0.operation.name, dash0.resource.type, or dash0.log.pattern.
Until now, the meaning of these fields lived in internal documentation.
Making them public means you can discover every Dash0-specific attribute, metric, and event in one place. And chances are, you may discover the next Dash0 feature you love!

What is in the Dash0 Semantic Conventions registry

The registry covers four areas:

Attributes

Every attribute Dash0 materialises on spans, logs, metrics, and web events is documented — from resource identity (dash0.resource.id, dash0.resource.name and dash0.resource.type) to AI-inferred log fields (dash0.log.ai.message_inferred).

Also OTLP protocol fields that Dash0 maps to queryable attributes (otel.trace.id, otel.span.kind, otel.log.severity.range, and many others) are included as well.

Metrics

All dash0.* metrics are listed with their instrument, unit, and stability level.
Synthetic metrics like dash0.spans and dash0.spans.duration are clearly marked, along with their deprecated Prometheus aliases.


The registry also covers website monitoring (dash0.web.*), synthetic checks (dash0.synthetic_check.*), alerting (dash0.check.*), and so on.

Events

The dash0.deployment event — that you can emit from CI/CD pipelines to mark a service deployment (for example using the brand new Dash0 CLI) is fully specified, including its required resource attributes and optional VCS metadata.

Open in Dash0

Every metric and attribute page includes an Open in Dash0 link that takes you straight to the relevant explorer with the right filters pre-applied.
Click a metric name to open it in the Metrics Explorer.
Click an attribute to jump to the Traces, Logs, Metrics, or Web Events Explorer with the right filters pre-set.

Browse the full registry at dash0hq.github.io/dash0-semantic-conventions. We will also integrate it in the Dash0 Documentation soon.

Read more

Mar 6, 2026

Linear integration

Agent0 now integrates with Linear, bridging project management and observability to bring issue context directly into debugging and investigation workflows in Dash0.

What's New

  • Linear integration for Agent0: Agent0 can now reference Linear issues, projects, and teams while investigating production behavior, so you can tie runtime signals to the work your team already tracks.

  • Invoke Agent0 from Linear: Mention @Dash0 in any Linear issue or comment to start an investigation without leaving Linear. Agent0 reads the issue context, runs analysis against your telemetry, and posts results back into the same thread, including tool execution steps and a deep link to the full session in Dash0.

  • Context preserved across tools: Agent0 responses posted into Linear include a deep link that reopens the investigation in Dash0 with organization, dataset, and time range already set.

  • Read-only access: Agent0 reads your Linear workspace but cannot create, modify, or close issues.

Availability

Available now for all Dash0 organizations. Set up in Organization Settings → Integrations → Add → Linear. Open integration settings.

Read more

Mar 6, 2026

Preferred dataset

Admins can now mark any dataset as preferred for the organization. Dash0 opens the preferred dataset by default for all members of the organization unless a different dataset is specified in the URL or if they previously visited a different dataset.

What's New

Preferred dataset: Enable the Preferred toggle on any dataset's Overview page. Dash0 opens that dataset for all organization members when no dataset is encoded in the URL.

Note that if users already opened a dataset before, that previously stored dataset has precedence over the preferred organisation dataset.

Available to all Dash0 users. Changing the preferred dataset requires admin permissions.

Preferred toggle button in dataset settings
Read more

Mar 4, 2026

Manage Dashboards, Views, Check Rules, and Synthetic Checks from the Terminal

Infrastructure as code changed how teams manage servers. The same principle should apply to observability: your dashboards, alerting rules, views, and synthetic checks deserve version control, code review, and automated deployment. The Dash0 CLI gives you full CRUD control over all four asset types, plus the apply command that brings GitOps workflows to your observability configuration.

One consistent interface for every asset type

Dashboards, check rules, views, and synthetic checks all share the same set of subcommands:

sh
12345
dash0 dashboards list
dash0 check-rules get <id>
dash0 views create -f view.yaml
dash0 synthetic-checks update <id> -f check.yaml
dash0 dashboards delete <id>

list, get, create, update, delete: the same verbs, the same flags, the same output formats across every asset type. No need to learn a different interface for each one.

Export, edit, re-apply

The get command with -o yaml or -o json gives you the full asset definition, ready for editing:

sh
123
dash0 dashboards get <id> -o yaml > dashboard.yaml
# edit dashboard.yaml
dash0 dashboards update <id> -f dashboard.yaml

The apply command: GitOps for observability

apply is the single command that ties it all together.Point it at a file or a directory, and it figures out the rest:

sh
12345
# Apply a single file
dash0 apply -f dashboard.yaml
# Apply an entire directory recursively
dash0 apply -f assets/

The command auto-detects whether each asset needs to be created or updated. Multi-document YAML files (separated by ---) let you bundle related assets into a single file. Hidden files and directories are skipped, so your .git folder stays out of the way.

Prometheus alerting rules, native in Dash0

Already have Prometheus alerting rules? The CLI accepts PrometheusRule CRD files directly:

sh
12
dash0 check-rules create -f prometheus-rules.yaml
dash0 apply -f prometheus-rules.yaml

Each alerting rule in the CRD becomes a Dash0 check rule. Recording rules are skipped automatically. No manual conversion required.

Multiple output formats

Every list and get command supports table, wide, json, yaml, and csv output. Use wide for a quick overview that includes dataset, origin, and URL. Use csv with --skip-header for machine-readable automation.

Get started

sh
123456789
export DASH0_AUTH_TOKEN=... # Get the value at https://app.dash0.com/goto/settings/auth-tokens
# See what you have
dash0 dashboards list
# Export, tweak, and re-apply
dash0 dashboards get <id> -o yaml > my-dashboard.yaml
dash0 apply -f my-dashboard.yaml

Asset management is available in all stable releases of the Dash0 CLI: no experimental flag needed.

Read more

Mar 3, 2026

Query Spans and Traces from the Terminal

A slow API call rarely tells the whole story. To understand why a request took 3 seconds, you need to see every hop it made: the database query, the downstream RPC, the cache miss that should not have happened. Now you can explore all of that without leaving the terminal. The Dash0 CLI introduces two commands for distributed tracing: spans query to search across spans, and traces get to reconstruct a full trace end-to-end.

Search spans like you search logs

The spans query command brings to spans the same filtering, output formats, and custom columns you already know from logs query:

sh
1234
dash0 -X spans query \
--from now-1h \
--filter "service.name is checkout-service" \
--filter "otel.span.status.code is ERROR"

The default table shows timestamp, duration, span name, status, service name, parent ID, trace ID, and span links. Swap in any OTLP attribute as a column to surface the dimensions that matter to your investigation:

sh
12345
dash0 -X spans query \
--column timestamp \
--column duration \
--column "span name" \
--column http.request.method

JSON and CSV outputs are available for scripting and downstream processing.

Reconstruct full traces

Once you have a trace ID — from a span query, a log record, or an alerting rule — traces get fetches every span in the trace and displays them as an indented tree:

sh
1
dash0 -X traces get 0af7651916cd43dd8448eb211c80319c

Modern architectures do not always fit into a single trace. A message queue consumer might link back to the producer's trace; a batch job might reference the request that triggered it.

The --follow-span-links flag tells the CLI to chase those connections automatically:

sh
1
dash0 -X traces get 0af7651916cd43dd8448eb211c80319c --follow-span-links

The CLI walks span links recursively (up to 20 traces), displaying each linked trace under a clear header. You can set a custom lookback period for the linked traces, like --follow-span-links 2h, to control how far back the search reaches.

Get started

sh
1234
export DASH0_AUTH_TOKEN=... # Get the value at https://app.dash0.com/goto/settings/auth-tokens
dash0 -X spans query --from now-15m

Span and trace commands are experimental: enable them with -X and tell us how they fit into your workflow.

Read more

Mar 3, 2026

Query Logs from the Terminal

Every investigation involves logs at one point or another. With the dash0 CLI, you can search, filter, and inspect log records stored in Dash0 without leaving your shell.

Powerful filtering at your fingertips

The --filter flag accepts the same expression language you use in the Dash0 UI so you can zero in on exactly the records that matter. Combine multiple filters (AND logic) to slice through millions of log lines in seconds:

sh
12345
dash0 -X logs query \
--from now-1h \
--filter "service.name is api-gateway" \
--filter "otel.log.severity.range is_one_of ERROR FATAL" \
--limit 200

Supported operators range from exact matches (is, is_not) and substring checks (contains, starts_with) to regex (matches), numeric comparisons (gt, gte, lt, lte), and presence tests (is_set, is_not_set). If you can describe the condition in the Dash0 Logging Explorer, the CLI can express it.

Flexible output for humans and machines

By default, logs query prints a clean table with timestamp, severity, and body. Need the full OTLP payload for a script? Switch to --output json. Feeding results into awk or a spreadsheet? Use --output csv.

Custom columns let you pull any attribute into view:

sh
1234
dash0 -X logs query \
--column time \
--column service.name \
--column body

Any OTLP attribute key, at resource, scope, or log record level, works as a column, so you see exactly the dimensions you care about.

Built for automation

Relative timestamps (now-15m, now-1h), machine-readable CSV output, and --skip-header make logs query a natural fit for shell scripts, CI checks, and AI-agent workflows. Pipe it into jq, grep, or your favorite data tool.

sh
12345
# Count errors in the last 30 minutes
dash0 -X logs query \
--from now-30m \
--filter "otel.log.severity.range is ERROR" \
-o csv --skip-header | wc -l

Get started

Install or update the Dash0 CLI, set your credentials, and start querying:

sh
1234
export DASH0_AUTH_TOKEN=... # Get the value at https://app.dash0.com/goto/settings/auth-tokens
dash0 -X logs query --from now-1h

Logs query is an experimental command: enable it with the -X flag and let us know what you think.

Read more

Feb 27, 2026

Support for Managing Members and Teams via API, Go SDK, and CLI

You can now programmatically automate and manage your organization's members and teams using our full suite of interfaces.

We have extended the following tools with comprehensive management capabilities for members and teams:

Teams Management

The core team API endpoints, starting with /teams, cover operations like:

  • Retrieving a list of all teams in your organization.

  • Creating new teams with specific access configurations.

  • Adding and removing members from teams.

  • Fetching details for a single team.

  • Updating existing team properties, such as the name.

  • Deleting teams.

CLI Snippets

sh
1234567891011
# List all teams
dash0 teams -X list
# Create a new team
dash0 teams -X create --name "Frontend Developers"
# Add members to a team
dash0 teams -X add-members <teamId> <memberIdOrEmail> <memberIdOrEmail> <memberIdOrEmail>
# Delete a team
dash0 teams -X delete <teamId>

The teams command is currently experimental (like all recently introduced commands), and therefore requires the –X/-–experimental flag.

Members Management

The API endpoints under /members let you manage individuals in your organization:

  • Listing all members in the organization.

  • Inviting new users to the organization.

  • Managing member roles and permissions.

CLI Snippets

sh
12345678
# List all members
dash0 members -X list
# Invite a new user
dash0 members -X invite "user@example.com"
# Invite a new user
dash0 members -X remove "user@example.com"

The members command is currently experimental (like all recently introduced commands), and therefore requires the –X/-–experimental flag.

Read more

Feb 25, 2026

Filter bar updates

The filter bar across all Dash0 explorer pages has new capabilities for managing filters across pages, resolving conflicts, and copying individual filters.

What's New

Pin filters: Pin any filter to carry it across pages. Navigate from Trace Explorer to Log Explorer, Services, or Resources and your pinned filters are already there. No need to re-enter the same context on every page.

Pinned filters showcase

Conflict detection: The filter bar now detects when two active filters check the same key with different values and shows a warning. This commonly happens when opening a link from a teammate that has filters already applied.

Conflict resolution: When a conflict is detected, Dash0 offers a merge — the conflicting values become a single filter that matches any of them. Accept with one click.

Conflicting filters with on demand resolution

Copy individual filters: Copy a single filter without copying your entire filter list. Expand a filter and click the copy icon.

Updated filter bar: Filters are more compact by default and expand on interaction to show available actions (pin, copy). They auto-collapse when not in use.

Collapsed filters

Available in: Trace Explorer, Log Explorer, Services, Resources, Websites, and Failed Checks.

\

Read more

Feb 20, 2026

Dashboard Annotations

Overlay events on any dashboard chart to see what changed alongside your metrics.

A latency spike tells you something is wrong. Seeing a pod restart or a container reschedule seconds earlier tells you why. Dashboard annotations put those events directly on your charts.

When editing a panel, click Add annotation, pick an event type, scope it to a service, and add filters. You can add multiple annotations per panel to layer different event scopes on the same chart. Click any marker on the timeline to see full event details.

Dashboard Annotation

Annotations work with events already flowing into Dash0. If you’re not collecting events yet, the Dash0 Kubernetes operator (v0.92.1+) gathers Kubernetes events automatically from monitored namespaces. For application-level events, any structured log record with an otel.event.name attribute is recognized as a log event and can be used as an annotation source.

Read more

Feb 19, 2026

Kubernetes Operator: export and sync to multiple backends simultaneously

Telemetry export and API sync now support multi-cast to any number of backends

Starting with version 0.102.0 of the Dash0 Kubernetes Operator, you can configure any number and combination of backends that best fits your requirements and the operator will ensure the collectors send the data to all of them.

Together with the previously released per-namespace export and API sync configuration, this allows a very flexible routing to different backends.

For example, to send the data from one namespace to two different Dash0 datasets and in addition to a gRPC endpoint, you could use the following exports in your Dash0Monitoring config:

yaml
12345678910111213141516171819202122
apiVersion: operator.dash0.com/v1beta1
kind: Dash0Monitoring
metadata:
name: dash0-monitoring-resource
namespace: some-namespace
spec:
exports:
- dash0:
endpoint: ingress...
dataset: custom-dataset-one
authorization:
...
apiEndpoint: https://api..
- dash0:
endpoint: ingress...
dataset: custom-dataset-two
authorization:
...
apiEndpoint: https://api..
- grpc:
endpoint: ...
...

You can find more details in the operator's documentation.

Read more

Feb 16, 2026

Log Events from Any Structured Log Source

Dash0 now recognizes any structured log record using the `otel.event.name` attribute or field as a log event.

Log events in OpenTelemetry are a subset of log records with a special field, EventName, that specifies the type of event it represents. Log events of the same type are supposed to use the same schema for their body.

(Foreshadowing: soon you are going to care a lot about log events in Dash0. Dun dun DUN!)

EventName being a field in OTLP has been an issue: support for OTLP fields is very sparse beyond the Logs API in the SDKs (with notable SDKs not having support to this day) and the OpenTelemetry Collector. Most other logging agents that can send logs over OTLP do not support fields for log records beyond timestamp, body and attributes. And since attributes are generally well supported in the ecosystem, OpenTelemetry Semantic Conventions v1.39.0 introduced otel.event.name as an attribute-level fallback for the EventName field.

In compliance with the semantic conventions, Dash0 now supports otel.event.name as fallback for the EventName field. Log records ingested via OTLP that do not have the EventName field set, are nevertheless treated as log events also when the otel.event.name attribute is present. The same applies to other structured log formats: their logs are similarly handled as log events when the top-level otel.event.name field is set.

Read more

Feb 13, 2026

Introducing Light Mode

Tailor your workspace with the new Light Mode theme.

Observability is a marathon, not a sprint. While our default dark interface is a favorite for many, we know that lighting conditions and personal preferences vary throughout the day. To give you more flexibility in how you monitor your systems, we’re introducing a Light Mode option for the entire Dash0 UI.

Designed for clarity We’ve carefully adapted our interface to ensure that the transition to a lighter palette feels natural. Every component—from the Service Map to complex trace views—has been refined to maintain the visual hierarchy you're used to. Whether you’re working in a sunlit room or simply prefer a paper-like aesthetic, the new theme provides a clean, focused environment for your data.

Screenshot of Dash0s Service Map showcasing the new light mode.

What’s new:

  • Visual Flexibility — Easily switch between Light and Dark modes to match your surroundings or personal workflow.

  • Consistent Semantics — We’ve tuned our color palette so that critical status indicators and OTel metrics remain clear and recognizable against the lighter background.

  • Automatic Switching — Set Dash0 to "System" mode to have the UI automatically sync with your OS theme as the day turns into night.

How to switch The fastest way to change your theme is via the Command Menu:

  1. Press CMD+K (or CTRL+K) to open the menu.

  2. Type "Theme" and select your preferred mode.

Alternatively, you can click on your profile avatar in the sidebar to find the theme selector under your account settings.

Read more