telemetry: schema-first event registry (typed catalog + generated docs)
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 32/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- typescript
- Bereich
- observability-sre
Rechercherichtung
Beginne mit dem Lesen von src/instrumentation/CONVENTIONS.md, den domänenspezifischen Dateien unter src/instrumentation/* und src/instrumentation/EVENTS.md. Verfolge TelemetryService.trace/log/logError, Span und ihre Tests, um die aktuelle Typisierung von Ereignissen und Eigenschaften zu verstehen. Die Arbeit ist abgeschlossen, wenn das ausgewählte Registry-Design implementiert, die Instrumentierung und die Tests aktualisiert wurden und die generierte EVENTS.md ihre CI-Aktualitätsprüfung besteht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
Telemetry events, properties, and value unions are declared per-domain in src/instrumentation/* and documented by hand in src/instrumentation/EVENTS.md. Nothing structurally prevents:
- emitting an event name that isn't cataloged anywhere,
- adding/renaming a property without updating the docs,
- drifting from the conventions in
src/instrumentation/CONVENTIONS.md(a recent audit found camelCase keys, kebab-case enum values, and caller-setresultthat review missed).
Proposal
Adopt a schema-first registry as the single source of truth for the telemetry surface, the way OTel itself defines semantic conventions in a registry and generates code + docs from it (Weaver).
TS-native sketch:
- A central
TelemetryEventMapinterface declaring every event with its properties and measurements (value unions spelled out). TelemetryService.trace/log/logErrorconstrained tokeyof TelemetryEventMap;Spanbecomes generic (Span<E>) sosetProperty/setMeasurementkeys and values are type-checked per event. An undeclared event or attribute key becomes a compile error.EVENTS.mdgenerated from the registry (script walking the interface + JSDoc), with a CI--checkmode so the doc can never go stale.
Known costs / open questions
- Every instrumentation class and its tests are touched by the
Span<E>generic. - Phase names compose at runtime (
parent.child), so child phases need registry entries or looser typing. - The registry partially duplicates per-domain unions the instrumentation classes already export; decide whether the registry imports those types or replaces them.
Cheaper interim guards (could land independently)
- Type the event-name parameter of
TelemetryService.trace/logas a union of registered names (names are already top-level string literals; near-zero churn). - ESLint restriction banning raw
telemetry.trace(/.log(outsidesrc/instrumentation(the layering rule from CONVENTIONS.md). - Golden event catalog aggregated from the test suite's sinks, checked like the existing OTLP goldens.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 132
- Forks
- 48
- Ø Merge
- 2 T. 5 Std.
- Gemergte PRs (30 T.)
- 19
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus coder/vscode-coder
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
coder/vscode-coder#1141 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
OAuth follow-ups: DCR off by default on 2.38, unnoticed nightly scope failures, CLI inheriting CODER_SESSION_TOKENEvtl. vergeben @EhabY hat das vor 3 Tagen übernommen. Offenbug tech-debt
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
coder/vscode-coder#1140 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Improvement tech-debt vs-code
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
coder/vscode-coder#1135 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Migrate CI setup to pnpm/setupEvtl. vergeben @EhabY hat das vor 24 Tagen übernommen. Offentech-debt
coder/vscode-coder#1119 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Design the VS Code Workspaces panelEvtl. vergeben @chrifro hat das vor 27 Tagen übernommen. Offen
coder/vscode-coder#1113 · 3 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in coder/vscode-coder
Ähnliche Issues
-
bug help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
agent-task risk:low
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
guyellis/http-status-check#512 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
microsoft/playwright#43327 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
microsoft/TypeScript#64758 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
opensearch-project/OpenSearch-Dashboards#12937 ·
Maintainer antworten meist innerhalb von 2 Tagen