<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu" -->

---
title: Monitoring GitHub Copilot usage with the Aspire Dashboard
description: Developers can now measure GitHub Copilot&#x27;s actual behavior instead of relying on gut feeling, by enabling its OpenTelemetry export and viewing traces locally...
canonical: https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Monitoring GitHub Copilot usage with the Aspire Dashboard | daily.dev
og:description: Developers can now measure GitHub Copilot&#x27;s actual behavior instead of relying on gut feeling, by enabling its OpenTelemetry export and viewing traces locally...
og:url: https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu
og:image: https://api.daily.dev/og/posts/0cezslPyU.png
og:image:alt: Monitoring GitHub Copilot usage with the Aspire Dashboard
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitoring GitHub Copilot usage with the Aspire Dashboard

**[The Art of Simplicity](https://daily.dev/sources/bartwullems)** · 5 min read · 0 upvotes · 0 comments

## Summary

Developers can now measure GitHub Copilot's actual behavior instead of relying on gut feeling, by enabling its OpenTelemetry export and viewing traces locally in the Aspire Dashboard. The setup involves running the Aspire Dashboard container, enabling two VS Code settings (github.copilot.chat.otel.enabled and captureContent), and then inspecting per-agent-turn traces that show model calls, tool executions, token usage, cache hit rates, and which model actually responded. The traces use GenAI semantic-convention attributes, work with either otlp-http or otlp-grpc, and can later be forwarded to a team-wide backend like Application Insights or Grafana via an OTel Collector for aggregated, persistent metrics.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://bartwullems.blogspot.com/2026/09/monitoring-github-copilot-usage-with.html>

## Questions this post answers

### How do I enable OpenTelemetry tracing for GitHub Copilot Chat in VS Code?

Add "github.copilot.chat.otel.enabled": true to your VS Code settings.json, then reload the window since settings changes don't apply to an already-running one. Optionally add "github.copilot.chat.otel.captureContent": true to include actual prompt and response text in spans rather than just token counts and durations. After a chat turn, wait 10-30 seconds for the batched telemetry to send.

_Developers debugging slow copilot sessions can find more agent-tracing workflows like this on daily.dev._

### How can I view GitHub Copilot's OpenTelemetry traces locally without a cloud backend?

Run the Aspire Dashboard, a single container with a built-in OTLP endpoint and trace viewer, via the Aspire CLI command 'aspire dashboard run' or by pulling the mcr.microsoft.com/dotnet/aspire-dashboard container image and exposing ports 18888 and 4318. Then open http://localhost:18888 to see a Traces view populate once Copilot Chat emits telemetry.

_Anyone comparing local observability setups for AI coding tools can track guides like this on daily.dev._

### What information does a GitHub Copilot agent turn trace contain in OpenTelemetry?

Each agent turn produces a span tree named invoke_agent copilot (or invoke_agent claude for Claude sessions) containing chat spans for model calls and execute_tool spans for tool invocations like readFile or runCommand, each with duration. Spans carry GenAI semantic-convention attributes including gen_ai.usage.input_tokens/output_tokens, gen_ai.usage.cache_read.input_tokens for prompt caching, gen_ai.response.model showing which model actually answered, and gen_ai.tool.name.

_Developers diagnosing why an AI coding assistant feels slow can follow tracing breakdowns like this on daily.dev._

## Similar posts on daily.dev

- [Monitoring Claude Code usage with the Aspire Dashboard](https://daily.dev/posts/monitoring-claude-code-usage-with-the-aspire-dashboard-dsl5mc6me) · The Art of Simplicity · 0 upvotes · 0 comments
- [Copilot usage metrics dashboard and API in public preview](https://daily.dev/posts/copilot-usage-metrics-dashboard-and-api-in-public-preview-knh1ilq73) · GitHub Changelog · 1 upvotes · 0 comments

---

Tags: [#github](https://daily.dev/tags/github), [#observability](https://daily.dev/tags/observability), [#vscode](https://daily.dev/tags/vscode), [#opentelemetry](https://daily.dev/tags/opentelemetry)

[View this post on daily.dev](https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Monitoring GitHub Copilot usage with the Aspire Dashboard","url":"https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu"},"datePublished":"2026-09-02T04:56:13.312Z","dateModified":"2026-09-02T04:56:39.353Z","description":"Developers can now measure GitHub Copilot's actual behavior instead of relying on gut feeling, by enabling its OpenTelemetry export and viewing traces locally...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6d6b10ed355f5521dbd9e0b4da371c61?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/6d6b10ed355f5521dbd9e0b4da371c61?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"The Art of Simplicity","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"The Art of Simplicity","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/52b68c70636d44f0901ae7cd107c9438","url":"https://daily.dev/sources/bartwullems"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"github,observability,vscode,opentelemetry","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"The Art of Simplicity","item":"https://daily.dev/sources/bartwullems"},{"@type":"ListItem","position":3,"name":"Monitoring GitHub Copilot usage with the Aspire Dashboard"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/monitoring-github-copilot-usage-with-the-aspire-dashboard-0cezslpyu#faq","mainEntity":[{"@type":"Question","name":"How do I enable OpenTelemetry tracing for GitHub Copilot Chat in VS Code?","acceptedAnswer":{"@type":"Answer","text":"Add \"github.copilot.chat.otel.enabled\": true to your VS Code settings.json, then reload the window since settings changes don't apply to an already-running one. Optionally add \"github.copilot.chat.otel.captureContent\": true to include actual prompt and response text in spans rather than just token counts and durations. After a chat turn, wait 10-30 seconds for the batched telemetry to send. Developers debugging slow copilot sessions can find more agent-tracing workflows like this on daily.dev."}},{"@type":"Question","name":"How can I view GitHub Copilot's OpenTelemetry traces locally without a cloud backend?","acceptedAnswer":{"@type":"Answer","text":"Run the Aspire Dashboard, a single container with a built-in OTLP endpoint and trace viewer, via the Aspire CLI command 'aspire dashboard run' or by pulling the mcr.microsoft.com/dotnet/aspire-dashboard container image and exposing ports 18888 and 4318. Then open http://localhost:18888 to see a Traces view populate once Copilot Chat emits telemetry. Anyone comparing local observability setups for AI coding tools can track guides like this on daily.dev."}},{"@type":"Question","name":"What information does a GitHub Copilot agent turn trace contain in OpenTelemetry?","acceptedAnswer":{"@type":"Answer","text":"Each agent turn produces a span tree named invoke_agent copilot (or invoke_agent claude for Claude sessions) containing chat spans for model calls and execute_tool spans for tool invocations like readFile or runCommand, each with duration. Spans carry GenAI semantic-convention attributes including gen_ai.usage.input_tokens/output_tokens, gen_ai.usage.cache_read.input_tokens for prompt caching, gen_ai.response.model showing which model actually answered, and gen_ai.tool.name. Developers diagnosing why an AI coding assistant feels slow can follow tracing breakdowns like this on daily.dev."}}]}
```

