copilot-otel-metrics

Configure GitHub Copilot OpenTelemetry export and generate local or Azure telemetry stacks.

1.4k|284|Updated Nov 2, 2025
One-click install
npx skills add https://github.com/microsoft/hve-core --skill copilot-otel-metrics
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: copilot-otel-metrics
Source: https://github.com/microsoft/hve-core/tree/main/.github/skills/experimental/copilot-otel-metrics
Command: npx skills add https://github.com/microsoft/hve-core --skill copilot-otel-metrics

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Turning on GitHub Copilot's OpenTelemetry export is error-prone: settings names change between extension builds, prompt content leaks into spans even with content capture disabled, and there is no direct path from VS Code to Azure Monitor. This Skill walks the user from zero to queryable telemetry, handling the settings write, the backend stack, and the dashboard while keeping the user in control of every mutation.

Core Features & Use Cases

  • Four independent modes: local-setup (diff-approved settings write), local-stack (digest-pinned Collector plus Grafana LGTM compose stack), org-distribution (fleet settings guidance), and azure-capture (Bicep, Terraform, and CLI templates for Application Insights and Log Analytics).
  • Fail-closed telemetry filtering: the bundled Collector configuration drops unknown attributes and scrubs prompt content carriers before storage, with runtime tests proving what the filter reaches.
  • Verification-first workflow: helper scripts (verify.py, baseline.py, inspect_metrics.py, validate_dashboard.py) confirm data actually landed in the store rather than trusting exporter response codes.
  • Use Case: A platform engineer wants organization-wide Copilot usage metrics. The Skill generates the Azure collector config, infrastructure templates, and a KQL dashboard, explains the shared ingest credential risk, and hands over deploy commands for the operator to run.

Quick Start

Ask the agent to set up Copilot OpenTelemetry metrics locally, and it will propose the settings diff and generate the local Grafana stack for you to start.

Frequently Asked Questions about copilot-otel-metrics

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enable OpenTelemetry metrics for GitHub Copilot in VS Code?

Enable the github.copilot.chat.otel settings in your VS Code user settings.json, pointing the OTLP endpoint at a local collector. This Skill shows the exact diff, writes it only after your approval, and takes a timestamped backup first.

How do I send Copilot telemetry to Azure Application Insights?

Copilot cannot export directly to Azure Monitor because its static headers cannot satisfy rotating Entra credentials, so a collector is mandatory. The Skill generates the collector configuration plus Bicep, Terraform, or Azure CLI templates for Application Insights and Log Analytics.

Does disabling captureContent remove prompt text from Copilot spans?

No. With captureContent set to false, spans were still observed carrying user requests, input and output messages, tool call arguments, and system instructions in plaintext. Treat any Copilot telemetry store as holding prompt content regardless of the setting.

What do I need to run the local Copilot telemetry stack?

You need Docker with Compose v2, operator-supplied Grafana credentials, and Python 3 for the helper scripts. The stack uses digest-pinned Collector and Grafana OTel-LGTM images with all ports bound to loopback.

Why does my Copilot telemetry dashboard show no data?

An accepted export request is not evidence of stored data, and metric or setting names change between extension builds. Run verify.py to check stored signals and inspect_metrics.py to enumerate what your installed build actually emits.