copilot, traced · interactive figures

Play with the data before you wire up your own.

These are the four live figures from the talk, running standalone. Everything is modelled on real Copilot OpenTelemetry — the attribute names, the span shapes, and the cost numbers all come from spans captured off the wire. Full deck in slides.html; the working setup is in the repository.

01

Anatomy of one turn

try: click the second and third chat spans

A single Copilot turn as a trace. invoke_agent is the turn and carries cost; chat spans are LLM round trips and carry the cache tokens; execute_tool spans are tool calls. Flip the surface toggle to see how the same attributes arrive from VS Code and from the CLI.

02

Why the cache missed

try: turn on the timestamp, then turn it off again

A 26-turn session. Each toggle is a real way to invalidate the prompt prefix. The diamonds under the strip are github.copilot.session.compaction_complete span events — Copilot telling you exactly when it rewrote your prompt.

03

Build your pipeline

try: pick your backend, then copy the config

Choose which surfaces you want and where the telemetry should land. The diagram and the config below it are generated from your choice — including the collector scrub processor, which is the whole argument for putting a collector in the path.

04

What a cache miss costs

try: “unstable prefix” then “after tuning”

Credits are calibrated against a real span — a turn the CLI reported as AI Credits 20.5 emitted github.copilot.nano_aiu = 20546625000 over 7 round trips. Cached input is modelled at ~10% of the cost of fresh input. Treat the absolute numbers as a model; the point is that the number is measurable at all.