You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The histogram exceeds metric description might be incorrect or at least vague in explaining what is being measured.
histogram.exceeds
The number of times the event loop delay exceeded the maximum 1 hour event loop delay threshold.
I havent seen any code implementation of the mentioned maximum 1 hour event loop delay threshold..
My walkthrough in the code:
Histogram::RecordDelta tracks the delta time between now and the last time it was called. (code)
exceeds is incremented when hdr_record_value(,delta) returns true (code)
The hdr_record_values function is what determines this metric (code)
a. value is always bigger than 0 in our case.
b. exceeds is incremented if this condition is true:
counts_index is the index of the last counts that happened in the delta duration. Hence exceeds will increment whenever there is no counts during the last resolution time.
Is my understanding corrent here? CC @jasnell as I believe he's implemented this feature
I would like to work on this issue and
submit a pull request.
Nodejs uses an High Dynamic Range Histogram. An HDR histogram can be configured with a minimum and maximum value which determines the buckets used by the histogram and ultimately the accuracy of the histogram. The documentation seem to suggest that the event loop delay histogram is configured with a maximum value of an event loop delay of 1 hour. exceeds is the amount of times a value was recorded that exceeded the maximum histogram value.
But given that the Histogram:Options struct's first member is lowest Nodejs seems to only initialize the histogram lowest value which means the highest defaults to Number.MAX_SAFE_INTEGER which is the equivalent of 2500 hours of delay.
This issue has been marked as stale due to 210 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.
This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.
Activity
TinaHeiligers commentedon May 24, 2022
Has there been any further progress here? It's still unclear if
exceedsis a counter (i.e. a numeric incrementation from 0) or a measure of time.rudolf commentedon Jun 15, 2022
Nodejs uses an High Dynamic Range Histogram. An HDR histogram can be configured with a minimum and maximum value which determines the buckets used by the histogram and ultimately the accuracy of the histogram. The documentation seem to suggest that the event loop delay histogram is configured with a maximum value of an event loop delay of 1 hour.
exceedsis the amount of times a value was recorded that exceeded the maximum histogram value.The event loop delay histogram gets created here:
node/src/node_perf.cc
Lines 236 to 255 in 386c7e1
But given that the
Histogram:Optionsstruct's first member islowestNodejs seems to only initialize the histogramlowestvalue which means thehighestdefaults to Number.MAX_SAFE_INTEGER which is the equivalent of 2500 hours of delay.node/src/histogram.h
Lines 25 to 31 in 386c7e1
This would mean the histogram accuracy isn't as high as it could be.
github-actions commentedon Jun 26, 2026
This issue has been marked as stale due to 210 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.
github-actions commentedon Jul 27, 2026
This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.