Skip to content

Commit 5729478

Browse files
gireeshpunathilcodebytere
authored andcommitted
src: add loop idle time in diagnostic report
Add libuv's cumulative idle time in the diagnostic report. Add the data under the libuv's loop section Refs: #34938 PR-URL: #35940 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
1 parent 56f83e6 commit 5729478

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

doc/api/report.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,8 @@ is provided below for reference.
292292
{
293293
"type": "loop",
294294
"is_active": true,
295-
"address": "0x000055fc7b2cb180"
295+
"address": "0x000055fc7b2cb180",
296+
"loopIdleTimeSeconds": 22644.8
296297
}
297298
],
298299
"workers": [],

src/node_report.cc

+4
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,10 @@ static void WriteNodeReport(Isolate* isolate,
294294
static_cast<bool>(uv_loop_alive(env->event_loop())));
295295
writer.json_keyvalue("address",
296296
ValueToHexString(reinterpret_cast<int64_t>(env->event_loop())));
297+
298+
// Report Event loop idle time
299+
uint64_t idle_time = uv_metrics_idle_time(env->event_loop());
300+
writer.json_keyvalue("loopIdleTimeSeconds", 1.0 * idle_time / 1e9);
297301
writer.json_end();
298302
}
299303

test/report/test-report-uv-handles.js

+3
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@ if (process.argv[2] === 'child') {
128128
assert.strictEqual(handle.filename, expected_filename);
129129
assert(handle.is_referenced);
130130
}),
131+
loop: common.mustCall(function loop_validator(handle) {
132+
assert.strictEqual(typeof handle.loopIdleTimeSeconds, 'number');
133+
}),
131134
pipe: common.mustCallAtLeast(function pipe_validator(handle) {
132135
assert(handle.is_referenced);
133136
}),

0 commit comments

Comments
 (0)