-
-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: added ELU metrics #6820
feat: added ELU metrics #6820
Conversation
Performance Report✔️ no performance regression detected 🚀🚀 Significant benchmark improvement detected
Full benchmark results
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good idea for additional metrics
Can you deploy this to a feat group, add panels to a dashboard, and screenshot here?
The idea being to see what this looks like in practice. How useful it is, how the buckets should be tweaked, etc.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## unstable #6820 +/- ##
============================================
+ Coverage 62.21% 62.70% +0.49%
============================================
Files 571 578 +7
Lines 60017 61410 +1393
Branches 1975 2118 +143
============================================
+ Hits 37338 38510 +1172
- Misses 22636 22862 +226
+ Partials 43 38 -5 |
name: `${key}nodejs_eventloop_active`, | ||
help: "Histogram of Event Loop active time between two successive calls.", | ||
registers: [register], | ||
buckets: [1, intervalMs / 10, intervalMs / 2, intervalMs], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all metrics need to be in seconds, including buckets
}); | ||
|
||
const metricActive = new Histogram({ | ||
name: `${key}nodejs_eventloop_active`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is in seconds? sould be reflected in the metric name
name: `${key}nodejs_eventloop_active`, | |
name: `${key}nodejs_eventloop_active_seconds`, |
I think it's not as useful to track this as an average over time or at least I don't see which questions this helps to answer. What we might be interested in is the event loop utilization (ELU) during a certain time frame of the slot, e.g. 1-4, 4-8, 8-12, or even on a per second basis. Should be able to achieve this via labels on metrics + running an interval on a clock timer. This could help us analyze what parts of the slot we are overloaded, and if a change improves the ELU for a specific slot frame or not. |
can be further discussed in #7147 |
Motivation
Add extra metrics related to Event Loop utilization
Description
Relies on node:perf_hooks to track Event Loop utilization metrics: Adds the following
histograms
:utilization
akin to CPU utilization, but for ELU; between0
and1
idle
how long the ELU was idle since last poll (every 5s by default)active
how long the ELU was active since last poll (every 5s by default)Those metrics are tracked on
main
thread and currently monitored worker threads.