Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a2620ac

Browse filesBrowse files
theanarkhRafaelGSS
authored andcommitted
report: add rss and use/kernel cpu usage fields
PR-URL: #45043 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 732f9a7 commit a2620ac
Copy full SHA for a2620ac

File tree

Expand file treeCollapse file tree

3 files changed

+37
-9
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+37
-9
lines changed
Open diff view settings
Collapse file

‎doc/api/report.md‎

Copy file name to clipboardExpand all lines: doc/api/report.md
+12-7Lines changed: 12 additions & 7 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,13 @@ is provided below for reference.
198198
}
199199
},
200200
"resourceUsage": {
201-
"userCpuSeconds": 0.069595,
202-
"kernelCpuSeconds": 0.019163,
203-
"cpuConsumptionPercent": 0.000000,
204-
"maxRss": 18079744,
201+
"rss": 45768704,
202+
"userCpuSeconds": 0.040072,
203+
"kernelCpuSeconds": 0.016029,
204+
"cpuConsumptionPercent": 5.6101,
205+
"userCpuConsumptionPercent": 4.0072,
206+
"kernelCpuConsumptionPercent": 1.6029,
207+
"maxRss": 45768704,
205208
"pageFaults": {
206209
"IORequired": 0,
207210
"IONotRequired": 4610
@@ -212,9 +215,11 @@ is provided below for reference.
212215
}
213216
},
214217
"uvthreadResourceUsage": {
215-
"userCpuSeconds": 0.068457,
216-
"kernelCpuSeconds": 0.019127,
217-
"cpuConsumptionPercent": 0.000000,
218+
"userCpuSeconds": 0.039843,
219+
"kernelCpuSeconds": 0.015937,
220+
"cpuConsumptionPercent": 5.578,
221+
"userCpuConsumptionPercent": 3.9843,
222+
"kernelCpuConsumptionPercent": 1.5937,
218223
"fsActivity": {
219224
"reads": 0,
220225
"writes": 0
Collapse file

‎src/node_report.cc‎

Copy file name to clipboardExpand all lines: src/node_report.cc
+15Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,13 @@ static void PrintResourceUsage(JSONWriter* writer) {
627627
// Process and current thread usage statistics
628628
uv_rusage_t rusage;
629629
writer->json_objectstart("resourceUsage");
630+
631+
size_t rss;
632+
int err = uv_resident_set_memory(&rss);
633+
if (!err) {
634+
writer->json_keyvalue("rss", rss);
635+
}
636+
630637
if (uv_getrusage(&rusage) == 0) {
631638
double user_cpu =
632639
rusage.ru_utime.tv_sec + SEC_PER_MICROS * rusage.ru_utime.tv_usec;
@@ -636,7 +643,11 @@ static void PrintResourceUsage(JSONWriter* writer) {
636643
writer->json_keyvalue("kernelCpuSeconds", kernel_cpu);
637644
double cpu_abs = user_cpu + kernel_cpu;
638645
double cpu_percentage = (cpu_abs / uptime) * 100.0;
646+
double user_cpu_percentage = (user_cpu / uptime) * 100.0;
647+
double kernel_cpu_percentage = (kernel_cpu / uptime) * 100.0;
639648
writer->json_keyvalue("cpuConsumptionPercent", cpu_percentage);
649+
writer->json_keyvalue("userCpuConsumptionPercent", user_cpu_percentage);
650+
writer->json_keyvalue("kernelCpuConsumptionPercent", kernel_cpu_percentage);
640651
writer->json_keyvalue("maxRss", rusage.ru_maxrss * 1024);
641652
writer->json_objectstart("pageFaults");
642653
writer->json_keyvalue("IORequired", rusage.ru_majflt);
@@ -660,7 +671,11 @@ static void PrintResourceUsage(JSONWriter* writer) {
660671
writer->json_keyvalue("kernelCpuSeconds", kernel_cpu);
661672
double cpu_abs = user_cpu + kernel_cpu;
662673
double cpu_percentage = (cpu_abs / uptime) * 100.0;
674+
double user_cpu_percentage = (user_cpu / uptime) * 100.0;
675+
double kernel_cpu_percentage = (kernel_cpu / uptime) * 100.0;
663676
writer->json_keyvalue("cpuConsumptionPercent", cpu_percentage);
677+
writer->json_keyvalue("userCpuConsumptionPercent", user_cpu_percentage);
678+
writer->json_keyvalue("kernelCpuConsumptionPercent", kernel_cpu_percentage);
664679
writer->json_objectstart("fsActivity");
665680
writer->json_keyvalue("reads", stats.ru_inblock);
666681
writer->json_keyvalue("writes", stats.ru_oublock);
Collapse file

‎test/common/report.js‎

Copy file name to clipboardExpand all lines: test/common/report.js
+10-2Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,12 +234,16 @@ function _validateContent(report, fields = []) {
234234
// Verify the format of the resourceUsage section.
235235
const usage = report.resourceUsage;
236236
const resourceUsageFields = ['userCpuSeconds', 'kernelCpuSeconds',
237-
'cpuConsumptionPercent', 'maxRss',
237+
'cpuConsumptionPercent', 'userCpuConsumptionPercent',
238+
'kernelCpuConsumptionPercent', 'rss', 'maxRss',
238239
'pageFaults', 'fsActivity'];
239240
checkForUnknownFields(usage, resourceUsageFields);
240241
assert.strictEqual(typeof usage.userCpuSeconds, 'number');
241242
assert.strictEqual(typeof usage.kernelCpuSeconds, 'number');
242243
assert.strictEqual(typeof usage.cpuConsumptionPercent, 'number');
244+
assert.strictEqual(typeof usage.userCpuConsumptionPercent, 'number');
245+
assert.strictEqual(typeof usage.kernelCpuConsumptionPercent, 'number');
246+
assert(Number.isSafeInteger(usage.rss));
243247
assert(Number.isSafeInteger(usage.maxRss));
244248
assert(typeof usage.pageFaults === 'object' && usage.pageFaults !== null);
245249
checkForUnknownFields(usage.pageFaults, ['IORequired', 'IONotRequired']);
@@ -254,11 +258,15 @@ function _validateContent(report, fields = []) {
254258
if (report.uvthreadResourceUsage) {
255259
const usage = report.uvthreadResourceUsage;
256260
const threadUsageFields = ['userCpuSeconds', 'kernelCpuSeconds',
257-
'cpuConsumptionPercent', 'fsActivity'];
261+
'cpuConsumptionPercent', 'fsActivity',
262+
'userCpuConsumptionPercent',
263+
'kernelCpuConsumptionPercent'];
258264
checkForUnknownFields(usage, threadUsageFields);
259265
assert.strictEqual(typeof usage.userCpuSeconds, 'number');
260266
assert.strictEqual(typeof usage.kernelCpuSeconds, 'number');
261267
assert.strictEqual(typeof usage.cpuConsumptionPercent, 'number');
268+
assert.strictEqual(typeof usage.userCpuConsumptionPercent, 'number');
269+
assert.strictEqual(typeof usage.kernelCpuConsumptionPercent, 'number');
262270
assert(typeof usage.fsActivity === 'object' && usage.fsActivity !== null);
263271
checkForUnknownFields(usage.fsActivity, ['reads', 'writes']);
264272
assert(Number.isSafeInteger(usage.fsActivity.reads));

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.