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.
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.
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.
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.
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.