Lines Matching refs:writer

64 static void PrintVersionInformation(JSONWriter* writer);
65 static void PrintJavaScriptErrorStack(JSONWriter* writer,
69 static void PrintEmptyJavaScriptStack(JSONWriter* writer);
70 static void PrintJavaScriptStack(JSONWriter* writer,
73 static void PrintJavaScriptErrorProperties(JSONWriter* writer,
76 static void PrintNativeStack(JSONWriter* writer);
77 static void PrintResourceUsage(JSONWriter* writer);
78 static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate);
79 static void PrintSystemInformation(JSONWriter* writer);
80 static void PrintLoadedLibraries(JSONWriter* writer);
81 static void PrintComponentVersions(JSONWriter* writer);
82 static void PrintRelease(JSONWriter* writer);
83 static void PrintCpuInfo(JSONWriter* writer);
84 static void PrintNetworkInterfaceInfo(JSONWriter* writer);
108 JSONWriter writer(out, compact);
109 writer.json_start();
110 writer.json_objectstart("header");
111 writer.json_keyvalue("reportVersion", NODE_REPORT_VERSION);
112 writer.json_keyvalue("event", message);
113 writer.json_keyvalue("trigger", trigger);
115 writer.json_keyvalue("filename", filename);
117 writer.json_keyvalue("filename", JSONWriter::Null{});
131 writer.json_keyvalue("dumpEventTime", timebuf);
142 writer.json_keyvalue("dumpEventTime", timebuf);
147 writer.json_keyvalue("dumpEventTimeStamp",
152 writer.json_keyvalue("processId", pid);
154 writer.json_keyvalue("threadId", env->thread_id());
156 writer.json_keyvalue("threadId", JSONWriter::Null{});
163 writer.json_keyvalue("cwd", buf);
168 writer.json_arraystart("commandLine");
170 writer.json_element(arg);
172 writer.json_arrayend();
176 PrintVersionInformation(&writer);
177 writer.json_objectend();
180 writer.json_objectstart("javascriptStack");
182 PrintJavaScriptErrorStack(&writer, isolate, error, trigger);
184 writer.json_objectend(); // the end of 'javascriptStack'
187 PrintGCStatistics(&writer, isolate);
189 writer.json_objectstart("javascriptStack");
190 PrintEmptyJavaScriptStack(&writer);
191 writer.json_objectend(); // the end of 'javascriptStack'
195 PrintNativeStack(&writer);
198 PrintResourceUsage(&writer);
200 writer.json_arraystart("libuv");
202 uv_walk(env->event_loop(), WalkHandle, static_cast<void*>(&writer));
204 writer.json_start();
205 writer.json_keyvalue("type", "loop");
206 writer.json_keyvalue("is_active",
208 writer.json_keyvalue("address",
213 writer.json_keyvalue("loopIdleTimeSeconds", 1.0 * idle_time / 1e9);
214 writer.json_end();
217 writer.json_arrayend();
219 writer.json_arraystart("workers");
244 writer.json_element(JSONWriter::ForeignJSON { worker_info });
246 writer.json_arrayend();
249 PrintSystemInformation(&writer);
251 writer.json_objectend();
258 static void PrintVersionInformation(JSONWriter* writer) {
262 writer->json_keyvalue("nodejsVersion", buf.str());
271 writer->json_keyvalue("glibcVersionRuntime", (*libc_version)());
276 writer->json_keyvalue("glibcVersionCompiler", buf.str());
281 writer->json_keyvalue("wordSize", sizeof(void*) * 8);
282 writer->json_keyvalue("arch", per_process::metadata.arch);
283 writer->json_keyvalue("platform", per_process::metadata.platform);
286 PrintComponentVersions(writer);
289 PrintRelease(writer);
295 writer->json_keyvalue("osName", os_info.sysname);
296 writer->json_keyvalue("osRelease", os_info.release);
297 writer->json_keyvalue("osVersion", os_info.version);
298 writer->json_keyvalue("osMachine", os_info.machine);
301 PrintCpuInfo(writer);
302 PrintNetworkInterfaceInfo(writer);
308 writer->json_keyvalue("host", host);
312 static void PrintCpuInfo(JSONWriter* writer) {
316 writer->json_arraystart("cpus");
318 writer->json_start();
319 writer->json_keyvalue("model", cpu_info[i].model);
320 writer->json_keyvalue("speed", cpu_info[i].speed);
321 writer->json_keyvalue("user", cpu_info[i].cpu_times.user);
322 writer->json_keyvalue("nice", cpu_info[i].cpu_times.nice);
323 writer->json_keyvalue("sys", cpu_info[i].cpu_times.sys);
324 writer->json_keyvalue("idle", cpu_info[i].cpu_times.idle);
325 writer->json_keyvalue("irq", cpu_info[i].cpu_times.irq);
326 writer->json_end();
328 writer->json_arrayend();
333 static void PrintNetworkInterfaceInfo(JSONWriter* writer) {
341 writer->json_arraystart("networkInterfaces");
344 writer->json_start();
345 writer->json_keyvalue("name", interfaces[i].name);
346 writer->json_keyvalue("internal", !!interfaces[i].is_internal);
356 writer->json_keyvalue("mac", mac);
361 writer->json_keyvalue("address", ip);
362 writer->json_keyvalue("netmask", netmask);
363 writer->json_keyvalue("family", "IPv4");
367 writer->json_keyvalue("address", ip);
368 writer->json_keyvalue("netmask", netmask);
369 writer->json_keyvalue("family", "IPv6");
370 writer->json_keyvalue("scopeid",
373 writer->json_keyvalue("family", "unknown");
376 writer->json_end();
379 writer->json_arrayend();
384 static void PrintJavaScriptErrorProperties(JSONWriter* writer,
387 writer->json_objectstart("errorProperties");
394 return writer->json_objectend(); // the end of 'errorProperties'
411 writer->json_keyvalue(k.ToStringView(), v.ToStringView());
414 writer->json_objectend(); // the end of 'errorProperties'
446 static void PrintEmptyJavaScriptStack(JSONWriter* writer) {
447 writer->json_keyvalue("message", "No stack.");
448 writer->json_arraystart("stack");
449 writer->json_element("Unavailable.");
450 writer->json_arrayend();
452 writer->json_objectstart("errorProperties");
453 writer->json_objectend();
457 static void PrintJavaScriptStack(JSONWriter* writer,
463 PrintEmptyJavaScriptStack(writer);
486 PrintEmptyJavaScriptStack(writer);
490 writer->json_keyvalue("message", trigger);
491 writer->json_arraystart("stack");
502 writer->json_element(stack_line);
504 writer->json_arrayend();
505 writer->json_objectstart("errorProperties");
506 writer->json_objectend();
510 static void PrintJavaScriptErrorStack(JSONWriter* writer,
515 return PrintJavaScriptStack(writer, isolate, trigger);
523 PrintEmptyJavaScriptStack(writer);
529 writer->json_keyvalue("message", ss);
532 writer->json_keyvalue("message", l);
533 writer->json_arraystart("stack");
541 writer->json_element(l);
545 writer->json_arrayend();
549 PrintJavaScriptErrorProperties(writer, isolate, error);
553 static void PrintNativeStack(JSONWriter* writer) {
557 writer->json_arraystart("nativeStack");
561 writer->json_start();
562 writer->json_keyvalue("pc",
564 writer->json_keyvalue("symbol", sym_ctx->LookupSymbol(frame).Display());
565 writer->json_end();
567 writer->json_arrayend();
574 static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate) {
579 writer->json_objectstart("javascriptHeap");
580 writer->json_keyvalue("totalMemory", v8_heap_stats.total_heap_size());
581 writer->json_keyvalue("executableMemory",
583 writer->json_keyvalue("totalCommittedMemory",
585 writer->json_keyvalue("availableMemory",
587 writer->json_keyvalue("totalGlobalHandlesMemory",
589 writer->json_keyvalue("usedGlobalHandlesMemory",
591 writer->json_keyvalue("usedMemory", v8_heap_stats.used_heap_size());
592 writer->json_keyvalue("memoryLimit", v8_heap_stats.heap_size_limit());
593 writer->json_keyvalue("mallocedMemory", v8_heap_stats.malloced_memory());
594 writer->json_keyvalue("externalMemory", v8_heap_stats.external_memory());
595 writer->json_keyvalue("peakMallocedMemory",
597 writer->json_keyvalue("nativeContextCount",
599 writer->json_keyvalue("detachedContextCount",
601 writer->json_keyvalue("doesZapGarbage", v8_heap_stats.does_zap_garbage());
603 writer->json_objectstart("heapSpaces");
607 writer->json_objectstart(v8_heap_space_stats.space_name());
608 writer->json_keyvalue("memorySize", v8_heap_space_stats.space_size());
609 writer->json_keyvalue(
612 writer->json_keyvalue(
616 writer->json_keyvalue("used", v8_heap_space_stats.space_used_size());
617 writer->json_keyvalue(
619 writer->json_objectend();
622 writer->json_objectend();
623 writer->json_objectend();
626 static void PrintResourceUsage(JSONWriter* writer) {
634 writer->json_objectstart("resourceUsage");
639 writer->json_keyvalue("free_memory", free_memory);
640 writer->json_keyvalue("total_memory", total_memory);
645 writer->json_keyvalue("rss", rss);
650 writer->json_keyvalue("constrained_memory", constrained_memory);
656 writer->json_keyvalue("available_memory", available_memory);
658 writer->json_keyvalue("available_memory", free_memory);
666 writer->json_keyvalue("userCpuSeconds", user_cpu);
667 writer->json_keyvalue("kernelCpuSeconds", kernel_cpu);
672 writer->json_keyvalue("cpuConsumptionPercent", cpu_percentage);
673 writer->json_keyvalue("userCpuConsumptionPercent", user_cpu_percentage);
674 writer->json_keyvalue("kernelCpuConsumptionPercent", kernel_cpu_percentage);
675 writer->json_keyvalue("maxRss", rusage.ru_maxrss * 1024);
676 writer->json_objectstart("pageFaults");
677 writer->json_keyvalue("IORequired", rusage.ru_majflt);
678 writer->json_keyvalue("IONotRequired", rusage.ru_minflt);
679 writer->json_objectend();
680 writer->json_objectstart("fsActivity");
681 writer->json_keyvalue("reads", rusage.ru_inblock);
682 writer->json_keyvalue("writes", rusage.ru_oublock);
683 writer->json_objectend();
685 writer->json_objectend();
689 writer->json_objectstart("uvthreadResourceUsage");
694 writer->json_keyvalue("userCpuSeconds", user_cpu);
695 writer->json_keyvalue("kernelCpuSeconds", kernel_cpu);
700 writer->json_keyvalue("cpuConsumptionPercent", cpu_percentage);
701 writer->json_keyvalue("userCpuConsumptionPercent", user_cpu_percentage);
702 writer->json_keyvalue("kernelCpuConsumptionPercent", kernel_cpu_percentage);
703 writer->json_objectstart("fsActivity");
704 writer->json_keyvalue("reads", stats.ru_inblock);
705 writer->json_keyvalue("writes", stats.ru_oublock);
706 writer->json_objectend();
707 writer->json_objectend();
713 static void PrintSystemInformation(JSONWriter* writer) {
718 writer->json_objectstart("environmentVariables");
727 writer->json_keyvalue(envitems[i].name, envitems[i].value);
732 writer->json_objectend();
759 writer->json_objectstart("userLimits");
765 writer->json_objectstart(rlimit_strings[i].description);
768 writer->json_keyvalue("soft", "unlimited");
770 writer->json_keyvalue("soft", limit.rlim_cur);
773 writer->json_keyvalue("hard", "unlimited");
775 writer->json_keyvalue("hard", limit.rlim_max);
777 writer->json_objectend();
780 writer->json_objectend();
783 PrintLoadedLibraries(writer);
787 static void PrintLoadedLibraries(JSONWriter* writer) {
788 writer->json_arraystart("sharedObjects");
791 for (auto const& module_name : modules) writer->json_element(module_name);
792 writer->json_arrayend();
796 static void PrintComponentVersions(JSONWriter* writer) {
799 writer->json_objectstart("componentVersions");
820 writer->json_keyvalue(version.first, version.second);
823 writer->json_objectend();
827 static void PrintRelease(JSONWriter* writer) {
828 writer->json_objectstart("release");
829 writer->json_keyvalue("name", per_process::metadata.release.name);
831 writer->json_keyvalue("lts", per_process::metadata.release.lts);
835 writer->json_keyvalue("headersUrl",
837 writer->json_keyvalue("sourceUrl", per_process::metadata.release.source_url);
839 writer->json_keyvalue("libUrl", per_process::metadata.release.lib_url);
843 writer->json_objectend();