You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Emitted when a user accepts or rejects an individual hunk.
341
+
342
+
| Attribute | Description |
343
+
|---|---|
344
+
|`outcome`|`accepted` or `rejected`|
345
+
|`language_id`| Language of the edited file |
346
+
|`request_id`| Chat request identifier |
347
+
|`line_count`| Total lines in the hunk |
348
+
|`lines_added`| Lines added |
349
+
|`lines_removed`| Lines removed |
350
+
351
+
##### `copilot_chat.inline.done`
352
+
353
+
Emitted when an inline chat edit is accepted or rejected.
354
+
355
+
| Attribute | Description |
356
+
|---|---|
357
+
|`accepted`|`true` or `false`|
358
+
|`language_id`| Language of the edited file |
359
+
|`edit_count`| Number of edits suggested |
360
+
|`edit_line_count`| Total lines across all edits |
361
+
|`reply_type`| How the response was shown |
362
+
|`is_notebook`| Whether the document is a notebook |
363
+
364
+
##### `copilot_chat.edit.survival`
365
+
366
+
Emitted at intervals (5s, 30s, 2min, 5min, 10min, 15min) after an edit is accepted, measuring how much of the AI-generated code survives.
367
+
368
+
| Attribute | Description |
369
+
|---|---|
370
+
|`edit_source`|`apply_patch`, `replace_string`, `code_mapper`, or `inline_chat`|
371
+
|`survival_rate_four_gram`| 0-1 ratio of AI edit still present (4-gram similarity) |
372
+
|`survival_rate_no_revert`| 0-1 ratio of edit ranges not reverted |
373
+
|`time_delay_ms`| Milliseconds since edit acceptance |
374
+
|`did_branch_change`| Whether git branch changed (ignore if `true`) |
375
+
|`request_id`| Chat request identifier |
376
+
377
+
##### `copilot_chat.user.feedback`
378
+
379
+
Emitted when a user votes on a chat response (thumbs up/down).
380
+
381
+
| Attribute | Description |
382
+
|---|---|
383
+
|`rating`|`positive` or `negative`|
384
+
|`participant`| Chat participant name |
385
+
|`conversation_id`| Conversation session ID |
386
+
|`request_id`| Chat request identifier |
387
+
388
+
##### `copilot_chat.cloud.session.invoke`
389
+
390
+
Emitted when a cloud/remote agent session is started.
391
+
392
+
| Attribute | Description |
393
+
|---|---|
394
+
|`partner_agent`|`copilot`, `claude`, or `codex`|
395
+
|`model`| Model identifier |
396
+
|`request_id`| Chat request identifier |
397
+
281
398
### Resource Attributes
282
399
283
400
All signals carry:
@@ -449,9 +566,9 @@ In your trace viewer, filter by `service.name` to see traces from specific agent
449
566
450
567
**Traces** — Visualize the full agent execution in Jaeger or Grafana Tempo. Each `invoke_agent` span contains child `chat` and `execute_tool` spans, making it easy to identify bottlenecks and debug failures. Subagent invocations appear as nested `invoke_agent` spans under `execute_tool runSubagent`.
451
568
452
-
**Metrics** — Track token usage trends by model and provider, monitor tool success rates via `copilot_chat.tool.call.count`, and watch perceived latency with `copilot_chat.time_to_first_token`. All metrics carry the same resource attributes (`service.name`, `service.version`, `session.id`) for consistent filtering.
569
+
**Metrics** — Track token usage trends by model and provider, monitor tool success rates via `copilot_chat.tool.call.count`, and watch perceived latency with `copilot_chat.time_to_first_token`. Agent activity metrics (`copilot_chat.edit.acceptance.count`, `copilot_chat.edit.survival.four_gram`, `copilot_chat.lines_of_code.count`) power accept rate and edit survival dashboards. All metrics carry the same resource attributes (`service.name`, `service.version`, `session.id`) for consistent filtering.
453
570
454
-
**Events** — `copilot_chat.session.start` tracks session creation. `copilot_chat.tool.call` events provide per-invocation timing and error details. `gen_ai.client.inference.operation.details` gives the full LLM call record including token usage and, when content capture is enabled, the complete prompt/response messages. Use `gen_ai.conversation.id` to correlate all signals belonging to the same session.
571
+
**Events** — `copilot_chat.session.start` tracks session creation. `copilot_chat.tool.call` events provide per-invocation timing and error details. `copilot_chat.edit.feedback` and `copilot_chat.edit.survival` events enable drill-down into which edits were accepted/rejected and how code survival varies by edit source. `copilot_chat.user.feedback` links thumbs-up/down votes to specific conversations for quality investigation. `gen_ai.client.inference.operation.details` gives the full LLM call record including token usage and, when content capture is enabled, the complete prompt/response messages. Use `gen_ai.conversation.id` to correlate all signals belonging to the same session.
0 commit comments