microsoft / microsoft/vscode

Title: OTEL telemetry (github-copilot service) stopped emitting session ID and billable-model chat spans since v0.59.0 (VS Code 1.130)

Open
#328,393 1 comment 0 reactions 2 assignees Claimed by @dmitrivMS View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

Summary

Since VS Code 1.130 (May 29), the github-copilot OTEL service has stopped emitting several critical span attributes and entire categories of spans that we rely on for usage/billing analysis. This affects both Copilot chat mode and Local chat mode. As a result, our OTLP-based usage tracking pipeline can no longer attribute cost or session data correctly.

Environment
Affected component: VS Code, github-copilot OTEL service (chat + agent telemetry)
Unaffected component: GitHub Copilot CLI — github-copilot service, version 1.0.73, telemetry payload complete and working as expected
Timeline of regressions:
Before May 17 — service version 1.0.67: full payload including enduser.pseudo.id
May 17 – May 29 — service version 0.58.0: enduser.pseudo.id no longer present
Since May 29 (VS Code 1.130) — service version 0.59.0: session ID attributes and billable-model chat spans missing
What we observed
1. Session ID attributes disappeared from chat and agent spans

Prior to 0.59.0, chat spans (for both billable models, e.g. sonnet-5, and non-billable models, e.g. gpt-4o-mini) included one or more of:

copilot_chat.session_id
copilot_chat.chat_session_id
gen_ai.conversation.id

invoke_agent spans also included these same session identifiers, plus:

github.copilot.git.branch
github.copilot.git.repository

Since 0.59.0, these attributes no longer appear on either span type.

2. Chat spans for billable models are missing entirely

Previously, within a single trace group we received numerous chat spans for billable models (e.g. sonnet-5). Since 0.59.0, chat spans only appear for non-billable models (e.g. gpt-4o-mini). This means we currently have no visibility into billable-model usage via telemetry.

3. enduser.pseudo.id removed (regression predates 0.59.0)

Before May 17, both Local and Copilot chat modes emitted traces from github-copilot service version 1.0.67, which included enduser.pseudo.id — useful for per-user correlation. No traces from that service version (or with that attribute) have been seen since.

4. Copilot CLI is unaffected

The Copilot CLI's github-copilot service (version 1.0.73) continues to emit the full expected payload, confirming this is specific to the VS Code integration.

Impact

Without session IDs and billable-model chat spans, our OTLP-based usage/cost tracking pipeline cannot:

Correlate spans to a specific chat session or user
Distinguish or quantify billable vs. non-billable model usage
Produce accurate billing calculations

This effectively breaks usage/cost attribution for GitHub Copilot in VS Code.

Request

Please investigate the telemetry changes introduced around service version 0.59.0 (VS Code 1.130) and restore:

copilot_chat.session_id / copilot_chat.chat_session_id / gen_ai.conversation.id on chat and invoke_agent spans
Chat spans for billable models (e.g. sonnet-5)
enduser.pseudo.id (removed since the 1.0.67 → 0.58.0 transition)
Supporting data is included in attached files

[before_0.58.0.json](https://github.com/user-attachments/files/30586577/before_0.58.0.json)

[0.58.0.json](https://github.com/user-attachments/files/30586612/0.58.0.json)

[0.59.0.json](https://github.com/user-attachments/files/30586628/0.59.0.json)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.