Commit f2d21a0
feat: add OpenTelemetry support across all SDKs (#785)
* docs: add OpenTelemetry TelemetryConfig and trace context propagation documentation
Add telemetry documentation across all SDK docs:
- getting-started.md: New 'Telemetry & Observability' section with
per-language examples, TelemetryConfig options table, file export
example, and trace context propagation explanation
- Per-SDK READMEs (Node.js, Python, Go, .NET): Add telemetry option
to constructor/options lists and new Telemetry sections with
language-specific examples and dependency notes
- observability/opentelemetry.md: Add 'Built-in Telemetry Support'
section at top with multi-language examples, options table,
propagation details, and dependency matrix
- docs/index.md: Update Observability description
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: add OpenTelemetry support across all SDKs
Add TelemetryConfig to all four SDKs (Node, Python, Go, .NET) to configure
OpenTelemetry instrumentation on the Copilot CLI process. This includes:
- TelemetryConfig type with OTLP endpoint, file exporter, source name, and
capture-content options, mapped to CLI environment variables
- W3C Trace Context propagation (traceparent/tracestate) on session.create,
session.resume, and session.send RPC calls
- Trace context restoration in tool call handlers (v2 RPC and v3 broadcast)
so user tool code executes within the correct distributed trace
- Telemetry helper modules (telemetry.ts, telemetry.py, telemetry.go,
Telemetry.cs) with unit tests
- Updated generated types from latest schema
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* refactor(nodejs): remove @opentelemetry/api dependency
Replace the optional @opentelemetry/api peer dependency with a
user-provided callback approach:
- Add TraceContext interface and TraceContextProvider type
- Add onGetTraceContext callback to CopilotClientOptions
- Pass traceparent/tracestate directly on ToolInvocation for inbound context
- Remove @opentelemetry/api from peerDependencies and devDependencies
- Rewrite telemetry.ts to a simple callback-based helper (~27 lines)
- Update tests, README, and OpenTelemetry docs with wire-up examples
Users who want distributed trace propagation provide a callback:
const client = new CopilotClient({
onGetTraceContext: () => {
const carrier = {};
propagation.inject(context.active(), carrier);
return carrier;
},
});
TelemetryConfig (CLI env vars) is unchanged and requires no dependency.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>1 parent 05dd60e commit f2d21a0
File tree
95 files changed
+2345
-38
lines changed- docs
- observability
- dotnet
- src
- test
- go
- nodejs
- src
- test
- python
- copilot
- test/scenarios
- auth
- byok-anthropic/go
- byok-azure/go
- byok-ollama/go
- byok-openai/go
- gh-app/go
- bundling
- app-backend-to-server/go
- app-direct-server/go
- container-proxy/go
- fully-bundled/go
- callbacks
- hooks/go
- permissions/go
- user-input/go
- modes
- default/go
- minimal/go
- prompts
- attachments/go
- reasoning-effort/go
- system-message/go
- sessions
- concurrent-sessions/go
- infinite-sessions/go
- session-resume/go
- streaming/go
- tools
- custom-agents/go
- mcp-servers/go
- no-tools/go
- skills/go
- tool-filtering/go
- tool-overrides/go
- virtual-filesystem/go
- transport
- reconnect/go
- stdio/go
- tcp/go
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
95 files changed
+2345
-38
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1395 | 1395 | | |
1396 | 1396 | | |
1397 | 1397 | | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
1398 | 1511 | | |
1399 | 1512 | | |
1400 | 1513 | | |
| |||
1406 | 1519 | | |
1407 | 1520 | | |
1408 | 1521 | | |
| 1522 | + | |
1409 | 1523 | | |
1410 | 1524 | | |
1411 | 1525 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
4 | 156 | | |
5 | 157 | | |
6 | 158 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| |||
546 | 547 | | |
547 | 548 | | |
548 | 549 | | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
549 | 576 | | |
550 | 577 | | |
551 | 578 | | |
| |||
0 commit comments