diff options
Diffstat (limited to 'src/node_report.cc')
-rw-r--r-- | src/node_report.cc | 25 |
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, |