Skip to content

feat(telemetry): add export command#953

Open
EhabY wants to merge 1 commit into
feat/issue-903-export-telemetry-otlp-writerfrom
feat/issue-903-export-telemetry
Open

feat(telemetry): add export command#953
EhabY wants to merge 1 commit into
feat/issue-903-export-telemetry-otlp-writerfrom
feat/issue-903-export-telemetry

Conversation

@EhabY
Copy link
Copy Markdown
Collaborator

@EhabY EhabY commented May 13, 2026

Summary

  • add the coder.exportTelemetry command UI flow
  • register the command through CommandManager and package contributions
  • connect date-range selection, format selection, save dialog, export progress, and telemetry flushing

Closes #903.
Follow-up: #952 tracks adding recent local telemetry to support bundles.

Stack: 4 / 4. Base: #961.

Review follow-up

  • adds TelemetryService.flush()
  • flushes buffered local telemetry before discovering and reading telemetry files so recent events are included

Validation

  • pnpm test:extension ./test/unit/telemetry/export/range.test.ts ./test/unit/telemetry/export/files.test.ts ./test/unit/telemetry/export/writers.test.ts ./test/unit/core/commandManager.test.ts
  • pnpm test:extension
  • pnpm typecheck
  • pnpm lint
  • pnpm format:check
  • pnpm build

Generated by Coder Agents.

@EhabY EhabY self-assigned this May 13, 2026
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 35eba99 to 821a950 Compare May 13, 2026 14:37
@EhabY EhabY force-pushed the feat/issue-906-auth-workspace-telemetry branch 5 times, most recently from 18ab98f to 5523f85 Compare May 15, 2026 10:01
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 821a950 to 728e014 Compare May 15, 2026 10:06
@EhabY EhabY changed the base branch from feat/issue-906-auth-workspace-telemetry to main May 15, 2026 10:06
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 728e014 to c450036 Compare May 17, 2026 17:09
@EhabY EhabY changed the title feat(telemetry): export local telemetry feat(telemetry): add export command May 17, 2026
@EhabY EhabY changed the base branch from main to feat/issue-903-export-telemetry-otlp-writer May 17, 2026 17:10
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from c450036 to 4daf2f8 Compare May 17, 2026 19:42
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from ab7dcf4 to acadd7e Compare May 17, 2026 19:42
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 4daf2f8 to 9534418 Compare May 18, 2026 17:03
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch 5 times, most recently from 539131f to fe6675e Compare May 20, 2026 10:29
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from 25db18c to d70fc4b Compare May 20, 2026 10:45
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch 2 times, most recently from 55cccf2 to 71bcce7 Compare May 21, 2026 09:55
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from e762a74 to 1a94594 Compare May 21, 2026 10:33
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from 7ce5f22 to d9f955a Compare May 21, 2026 15:14
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 1a94594 to 5439875 Compare May 21, 2026 15:15
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from d9f955a to f7308bf Compare May 21, 2026 16:00
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from 541629e to e31dd3e Compare May 21, 2026 16:10
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from f7308bf to 6ac4715 Compare May 21, 2026 16:14
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from e31dd3e to 87b5f8d Compare May 21, 2026 16:15
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch 2 times, most recently from 3187fae to 4574a38 Compare May 26, 2026 14:03
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from 5bb2db1 to 6ccf541 Compare May 26, 2026 15:52
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from 96bd6f9 to 9951691 Compare May 26, 2026 16:28
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from 883cbb5 to 5bae441 Compare May 26, 2026 20:16
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch 2 times, most recently from 263d0d1 to 593ee03 Compare May 26, 2026 20:29
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 5bae441 to e3bdba2 Compare May 26, 2026 20:35
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from 593ee03 to d8aa467 Compare May 26, 2026 20:37
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch 2 times, most recently from 227c58d to 581f2a3 Compare May 26, 2026 21:31
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from d8aa467 to 4929d92 Compare May 26, 2026 22:19
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 581f2a3 to 31ddd07 Compare May 26, 2026 22:19
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry-otlp-writer branch from 4929d92 to 22d73a9 Compare May 26, 2026 22:27
Adds the "Coder: Export Telemetry" command that lets users save
recorded telemetry as a JSON array or an OTLP/JSON zip. The flow
prompts for a date range, a format, and a save location, then streams
events from the on-disk sink through the chosen writer inside a
cancellable progress notification.

TelemetryService gains public getContext() and flush() methods so the
command can attach an export-time snapshot to the OTLP zip and drain
pending events before listing files. #emit routes through getContext()
so the snapshot stays in sync with what events carry.

Flush and file-listing run inside withCancellableProgress so the
on-disk snapshot is taken right before streaming; the AbortSignal is
threaded through the event iterator and into the OTLP writer. Reveal
errors are swallowed locally so a missing revealFileInOS handler
(web/remote hosts) does not report "Telemetry export failed" after a
successful save. Writer failures show a single error notification
instead of re-throwing into the wrapping command.invoked trace (which
would leak the user's chosen save path via buildErrorBlock). Prompts
set ignoreFocusOut so an accidental focus loss does not silently
abort, and the custom-date prompt states the current UTC date
explicitly. The empty-events case removes the empty output file and
shows an info notification.

Adds unit tests for command orchestration, TelemetryService.getContext
/ flush, plus a Uri.fsPath getter on the vscode test mock so fsPath
template-literal interpolations stop rendering "undefined".
@EhabY EhabY force-pushed the feat/issue-903-export-telemetry branch from 31ddd07 to 7416865 Compare May 26, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Telemetry: coder.exportTelemetry command (Logs, Traces, and Metrics OTLP/JSON)

1 participant