summaryrefslogtreecommitdiff
path: root/src/node_report.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_report.cc')
-rw-r--r--src/node_report.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/node_report.cc b/src/node_report.cc
index 1860765625..b448ffd099 100644
--- a/src/node_report.cc
+++ b/src/node_report.cc
@@ -65,6 +65,7 @@ static void PrintSystemInformation(JSONWriter* writer);
static void PrintLoadedLibraries(JSONWriter* writer);
static void PrintComponentVersions(JSONWriter* writer);
static void PrintRelease(JSONWriter* writer);
+static void PrintCpuInfo(JSONWriter* writer);
// External function to trigger a report, writing to file.
// The 'name' parameter is in/out: an input filename is used
@@ -315,6 +316,8 @@ static void PrintVersionInformation(JSONWriter* writer) {
writer->json_keyvalue("osMachine", os_info.machine);
}
+ PrintCpuInfo(writer);
+
char host[UV_MAXHOSTNAMESIZE];
size_t host_size = sizeof(host);
@@ -322,6 +325,28 @@ static void PrintVersionInformation(JSONWriter* writer) {
writer->json_keyvalue("host", host);
}
+// Report CPU info
+static void PrintCpuInfo(JSONWriter* writer) {
+ uv_cpu_info_t* cpu_info;
+ int count;
+ if (uv_cpu_info(&cpu_info, &count) == 0) {
+ writer->json_arraystart("cpus");
+ for (int i = 0; i < count; i++) {
+ writer->json_start();
+ writer->json_keyvalue("model", cpu_info->model);
+ writer->json_keyvalue("speed", cpu_info->speed);
+ writer->json_keyvalue("user", cpu_info->cpu_times.user);
+ writer->json_keyvalue("nice", cpu_info->cpu_times.nice);
+ writer->json_keyvalue("sys", cpu_info->cpu_times.sys);
+ writer->json_keyvalue("idle", cpu_info->cpu_times.idle);
+ writer->json_keyvalue("irq", cpu_info->cpu_times.irq);
+ writer->json_end();
+ }
+ writer->json_arrayend();
+ uv_free_cpu_info(cpu_info, count);
+ }
+}
+
// Report the JavaScript stack.
static void PrintJavaScriptStack(JSONWriter* writer,
Isolate* isolate,