Skip to content

feat(dashboards): Add Node.js runtime metrics prebuilt dashboard UI#113517

Merged
chargome merged 10 commits intomasterfrom
cg/nodejs-health-dashboard-frontend
May 5, 2026
Merged

feat(dashboards): Add Node.js runtime metrics prebuilt dashboard UI#113517
chargome merged 10 commits intomasterfrom
cg/nodejs-health-dashboard-frontend

Conversation

@chargome
Copy link
Copy Markdown
Member

@chargome chargome commented Apr 21, 2026

Add the Node.js Runtime Metrics prebuilt dashboard and its onboarding panel. Seven widgets:

  • Event Loop Utilization, CPU Utilization, Process Uptime (KPIs)
  • Memory Usage (RSS / heap total / heap used — area chart)
  • CPU Utilization Over Time (line)
  • HTTP Request Duration (p50 / p95 — line, spans dataset)

Surfaces the node.runtime.* trace metrics emitted by nodeRuntimeMetricsIntegration (getsentry/sentry-javascript#19923) so users can monitor CPU, memory, and event loop health alongside request latency.

Metric names, types, and aggregations are aligned with the SDK:

  • max() on the pre-computed p50/p99 event loop delay percentiles (averaging pre-computed percentiles is statistically incorrect).
  • sum() on process.uptime — the SDK emits elapsed-since-last-tick deltas as a counter, so summing across the window gives total process-seconds.

Trade-off: users with transactions but no runtime metrics will see empty widgets rather than the onboarding panel.

Onboarding:
Screenshot 2026-04-20 at 15 39 56

Dashboard:
Screenshot 2026-04-21 at 10 38 08

depends on #113516
ref getsentry/sentry-javascript#19923
closes https://linear.app/getsentry/issue/DAIN-1532/create-prebuilt-nodejs-health-dashboard

@chargome chargome self-assigned this Apr 21, 2026
@chargome chargome requested a review from a team as a code owner April 21, 2026 08:40
@linear-code
Copy link
Copy Markdown

linear-code Bot commented Apr 21, 2026

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 21, 2026
Copy link
Copy Markdown
Member

@gggritso gggritso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM overall, but the aggregation of percentiles is … very scary, are you sure you want to do that?

Copy link
Copy Markdown
Member

@gggritso gggritso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just two nits about using existing types 👍🏻

Comment thread static/app/views/dashboards/utils/prebuiltConfigs/utils/traceMetricField.ts Outdated
Comment thread static/app/views/dashboards/utils/prebuiltConfigs/utils/traceMetricField.ts Outdated
Copy link
Copy Markdown
Contributor

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 1d159e0. Configure here.

Comment thread static/app/views/dashboards/utils/prebuiltConfigs/utils/traceMetricField.ts Outdated
Copy link
Copy Markdown
Member

@gggritso gggritso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! Thanks for putting this together, I bet Node.js people will like this a lot 👍🏻

@chargome chargome merged commit c36c5b4 into master May 5, 2026
67 checks passed
@chargome chargome deleted the cg/nodejs-health-dashboard-frontend branch May 5, 2026 09:24
cleptric pushed a commit that referenced this pull request May 5, 2026
…113517)

Add the Node.js Runtime Metrics prebuilt dashboard and its onboarding
panel. Seven widgets:

  - Event Loop Utilization, CPU Utilization, Process Uptime (KPIs)
  - Memory Usage (RSS / heap total / heap used — area chart)
  - CPU Utilization Over Time (line)
  - HTTP Request Duration (p50 / p95 — line, spans dataset)

Surfaces the `node.runtime.*` trace metrics emitted by
`nodeRuntimeMetricsIntegration` (getsentry/sentry-javascript#19923) so
users can monitor CPU, memory, and event loop health alongside request
latency.

Metric names, types, and aggregations are aligned with the SDK:

- `max()` on the pre-computed p50/p99 event loop delay percentiles
(averaging pre-computed percentiles is statistically incorrect).
- `sum()` on `process.uptime` — the SDK emits elapsed-since-last-tick
deltas as a counter, so summing across the window gives total
process-seconds.

Trade-off: users with transactions but no runtime metrics will see empty
widgets rather than the onboarding panel.

Onboarding:
<img width="1714" height="1200" alt="Screenshot 2026-04-20 at 15 39 56"
src="https://github.com/user-attachments/assets/2e539210-0207-4849-b0c7-afe5d945a6a1"
/>

Dashboard:
<img width="2404" height="980" alt="Screenshot 2026-04-21 at 10 38 08"
src="https://github.com/user-attachments/assets/46de8e4e-6f4f-4ad4-8069-63de9e5b5a98"
/>


depends on #113516
ref getsentry/sentry-javascript#19923
closes
https://linear.app/getsentry/issue/DAIN-1532/create-prebuilt-nodejs-health-dashboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants