Dash0 Raises $110M Series B at $1B Valuation
Monitor GitHub Copilot CLI with cost visibility, adoption tracking, and productivity signals across your engineering teams — without changing how developers work.
GitHub Copilot CLI is GitHub's agentic coding tool that runs in your terminal. With the Dash0 agent plugin it emits OpenTelemetry traces about every session — token usage, cost, the model behind each turn, tool calls, and the pull requests it helps ship. Sending that telemetry to Dash0 gives engineering leaders and platform teams a single place to understand how Copilot CLI is adopted, what it costs, and the impact it has — without changing how developers work.
GitHub Copilot CLI ships native OpenTelemetry that carries the full token, cost, model, and tool-execution detail of each session. The Dash0 agent plugin turns that into canonical per-turn spans and exports them to Dash0. Pointing it at Dash0 powers the AI Coding section, giving you cost visibility, adoption tracking, and productivity signals across your teams.
Add the Dash0 marketplace, install the plugin from it, and restart copilot so the hooks load at startup:
Run the configure command inside Copilot CLI:
When prompted, provide your Dash0 connection details:
{{endpoint_otlp_http}}{{token}}{{dataset}}This writes your configuration to ~/.copilot/dash0-agent-plugin.local.md, or, if you choose project scope,
to .copilot/dash0-agent-plugin.local.md in the current workspace. Furthermore, it installs a launch shell
function that enables Copilot's native OpenTelemetry into a per-session file, the source of per-turn token,
cost, and model usage. Open a new shell (or source your profile) afterward so the launch function takes effect.
For more information on choosing a dataset, see the dataset documentation.
Copilot CLI automatically attaches the authenticated user to every span, so cost and adoption break down by user and
model out of the box. To also break down by team or department, provide a team name when running /dash0-configure — it
is written to the plugin config and attached to every span.
copilot, then issue any command.A copilot launched from a shell without the launch function still emits spans — just without per-turn usage detail.