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

Last updated: July 5, 2026

Set Up AI Coding Insights

Connect Claude Code and Cursor to Dash0, then link GitHub to close the loop from session to merged PR.

Setup has two parts: connect your coding agent (Claude Code or Cursor) so sessions and cost flow into Dash0, then connect GitHub to link that activity to pull requests and cycle time.

Each agent has a ready-made integration under Integrations in Dash0, with copy-paste configuration that fills in your endpoint and token. Start there, copy the configuration, and you are minutes away from first signal.

Step 1: Find Your Dash0 Endpoint and Token

Every agent needs the same two values from Dash0:

  • The OTLP endpoint: The URL the agent sends telemetry to, for example https://ingress.<region>.aws.dash0.com.
  • An authorization token: A token used to authenticate against your organization.

Both are available in Settings → Auth Tokens and in the integration page for your agent.

Tip

If you manage more than one dataset, decide up front which dataset should receive coding-agent telemetry, and set it consistently across every agent and developer.

Step 2: Connect Your AI Coding Agent

Choose your coding agent and follow the corresponding setup instructions. Both agents send telemetry to the same Dash0 endpoint and appear together in AI Coding Insights, grouped by model rather than by vendor.

Claude Code

Connect Claude Code to Dash0 using the Dash0 Agent Plugin.

The recommended way to instrument Claude Code is the Dash0 Agent Claude Code Plugin, which captures agent activity as OpenTelemetry traces: tool calls, LLM invocations, token usage, cost, and errors.

Install the Plugin

Install from within Claude Code:

bash
1
/plugin install dash0@claude-plugins-official

Alternatively, install it from the Dash0 marketplace:

bash
12
/plugin marketplace add dash0hq/claude-marketplace
/plugin install dash0-agent-plugin@dash0

For headless or CI environments, install with the claude CLI and the user scope:

bash
123
git config --global url."https://github.com/".insteadOf "git@github.com:"
claude plugin marketplace add dash0hq/claude-marketplace --scope user
claude plugin install dash0-agent-plugin@dash0 --scope user

Configure the Plugin

Create a configuration file with YAML frontmatter. Use ~/.claude/dash0-agent-plugin.local.md for a user-wide setup, or .claude/dash0-agent-plugin.local.md inside a repository for a project-specific one:

yaml
123456789
---
otlp_url: "https://ingress.<region>.aws.dash0.com"
auth_token: "your-dash0-auth-token"
dataset: "default"
agent_name: "claude-code"
team_name: "platform"
omit_io: true
omit_user_info: false
---

You can also configure the plugin through the /plugin UI (Installed → dash0 → Configure, then /reload-plugins) or through environment variables. Settings are applied in that order of precedence, with the UI taking priority, then a project-level file, then a user-level file, then environment variables:

bash
123456
export DASH0_OTLP_URL="https://ingress.<region>.aws.dash0.com"
export DASH0_DATASET="default"
export DASH0_AGENT_NAME="claude-code"
export DASH0_TEAM_NAME="platform"
export DASH0_OMIT_IO="true"
export DASH0_OMIT_USER_INFO="false"

For security, the auth token cannot be set through a DASH0_ variable. Use CLAUDE_PLUGIN_OPTION_AUTH_TOKEN instead:

bash
1
export CLAUDE_PLUGIN_OPTION_AUTH_TOKEN="your-dash0-auth-token"

Configuration Options

OptionRequiredPurpose
otlp_urlYesThe Dash0 OTLP endpoint.
auth_tokenYesThe Dash0 authorization token.
datasetNoThe dataset the telemetry is routed to.
agent_nameNoThe service identifier for the agent. Defaults to claude-code.
team_nameNoAttributes the agent's spans to a team.
omit_ioNoStrips prompts and tool input/output from the telemetry. Defaults to true.
omit_user_infoNoAnonymizes user identity. Defaults to false.
Note

With omit_io set to true (the default), the Conversation preview on the Sessions tab will not contain prompt or tool content. Set it to false if you want to read full conversations in Dash0, keeping in mind that this sends prompt and tool I/O to your dataset.

Alternative: Native Claude Code Tracing (beta)

Claude Code can also export OpenTelemetry traces on its own, configured entirely through environment variables, without the plugin. This path is in beta and captures less detail than the plugin: it omits turn-by-turn conversation history, permission prompts, subagent coordination, and context compaction events. The plugin remains the recommended option. Use native tracing only when you cannot install the plugin.

Set the following, pointing the endpoint at the OTLP value from Step 1 and using the token as a bearer header:

bash
1234567
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1
export ENABLE_BETA_TRACING_DETAILED=1
export OTEL_TRACES_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT="https://ingress.<region>.aws.dash0.com"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer your-dash0-auth-token"

To route to a specific dataset, add Dash0-Dataset=<name> to the headers. To attribute sessions to a developer, set OTEL_RESOURCE_ATTRIBUTES="user.name=$(git config user.name)". Add the same exports to your shell profile so they persist across sessions, and check your integration page for the exact endpoint and any protocol settings your region requires.

Note

Native tracing identifies itself with the instrumentation scope com.anthropic.claude_code.tracing, while the plugin uses dash0-agent-plugin. Dash0 separates both into AI Coding Insights, so you can run either one.

Cursor

Connect Cursor to Dash0 using the Dash0 Agent Cursor Plugin. Follow the Dash0 Agent Cursor Plugin setup instructions.

Info

AI Coding Insights groups by model, not by vendor. Claude Code and Cursor land in the same views, comparable on cost, adoption, and cycle time. Models the pricing catalog cannot resolve appear in an explicit unpriced bucket rather than being silently counted as zero.

Step 3: Attribute Usage to Teams

AI Coding Insights groups usage by team. Telemetry without a team is grouped under unknown, which is why an organization that has just started sending data sees most activity there.

Set a team on every agent (team_name for the Claude Code plugin, and the equivalent setting on any other agent you connect) so cost, adoption, and productivity break down cleanly per team. Apply it consistently across developers.

When you roll AI Coding Insights out to a team, point every developer at the same endpoint, token, and dataset, and store the token in a shared secret manager rather than distributing it by hand. With the Claude Code plugin, each developer's identity is read automatically from their local Git configuration (git config user.name), so per-user attribution works without extra setup as long as everyone has their Git identity configured. Keep omit_io at its default unless the team has agreed to capture prompt content.

Step 4: Connect GitHub for Productivity Metrics

The Cost, Adoption, and Tools & Skills pillars work from agent telemetry alone. The Productivity pillar, including assisted pull requests and cycle time from session to merge, needs branch and pull-request lifecycle data from your version control. Connect GitHub so Dash0 can attribute merged pull requests back to the sessions that produced them.

Follow Set Up GitHub Integration to connect it from Settings → Integrations in Dash0.

Note

After connecting to GitHub, select the dataset in Dash0 where you want to send productivity metrics for AI Coding Insights. Until GitHub is connected and enough merged pull requests are attributed, the Productivity tab shows a prompt to connect rather than populated metrics, and cycle time can read as zero. By default, nothing is connected. Once you select a dataset, metrics begin flowing into Dash0.

Dataset selection for GitHub integration metrics

Step 5: Verify the Data Arrives

  1. Run a short session in your agent that issues at least one prompt.

  2. Open Darkplane → AI Coding in Dash0.

  3. Set the time range to cover the session, for example Last 30 minutes.

  4. Confirm the session appears on the Sessions tab with a user, duration, model, and prompt count.

    AI Coding Insights Overview showing cost, adoption, productivity metrics, and recent sessions

If sessions do not appear, see Troubleshoot AI Coding Insights.

Troubleshooting

  • No sessions appear: Confirm the agent is configured with the correct endpoint and token, and that the selected time range covers the session.
  • Authentication errors: Re-check the token and endpoint values against the integration page.
  • Data lands in the wrong dataset: Verify the dataset value matches an existing dataset name.
  • Everything is grouped under unknown: Set a team on the agent as shown in Step 4.
  • Productivity tab is empty: Connect GitHub as shown in Step 5, and allow time for pull requests to merge and be attributed.
  • No conversation content (Claude Code): This is expected when omit_io is true. Set it to false to capture prompts and tool I/O.

To inspect what the Claude Code plugin sends, run it with debug output enabled:

bash
1
DASH0_DEBUG=true DASH0_DEBUG_FILE=/tmp/dash0-debug.log claude

For the full set of issues, including missing token metrics, duplicate sessions, multi-user attribution, and high data volume, see Troubleshoot AI Coding Insights.

Further Reading