getsentry / getsentry/sentry-javascript

feat(node): Add garbage collection metrics to NodeRuntimeMetrics

Aperta
#23,272 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Feature Metrics Node.js
Lingua principale
TypeScript
Stelle
8.7k
Fork
1.8k
Merge medio
1g 17h
PR unite (30g)
523

Descrizione

### Description

`NodeRuntimeMetrics` already collects heap, RSS, event loop delay, and ELU, but has no visibility into GC — often the direct cause of event-loop stalls and tail latency.

Add GC pause metrics collected via a `perf_hooks` `PerformanceObserver` on `gc` entries, aggregated over the existing collection interval:

- `gc.pause.duration` (total/avg pause time)
- `gc.pause.max` or `gc.pause.p95` (worst pause in the window)
- `gc.count` broken down by kind (minor/scavenge vs major/mark-sweep)

Opt-in by default, consistent with the other advanced metrics in the `collect` option. Aligns with the OTel `process.runtime.v8js.gc.*` conventions.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia dall'implementazione di NodeRuntimeMetrics e dal relativo intervallo di raccolta esistente e dalle opzioni avanzate di raccolta. Leggi la documentazione di Node.js perf_hooks PerformanceObserver relativa alle voci gc, quindi traccia come vengono aggregate le metriche attuali di heap, RSS, ritardo dell'event loop ed ELU. Il lavoro è completato quando vengono riportati i totali delle pause GC e una metrica aggregata della pausa peggiore, con i conteggi separati in base al tipo di raccolta, minor e major.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
node.js, typescript
Ambito
observability
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.