diff --git a/doc/api/report.md b/doc/api/report.md
index a49d33d65e262b..3937f88cc1be4a 100644
--- a/doc/api/report.md
+++ b/doc/api/report.md
@@ -215,6 +215,11 @@ is provided below for reference.
       "is_referenced": false,
       "address": "0x000000010188f2e0",
       "details": ""
+    },
+    {
+      "type": "loop",
+      "is_active": true,
+      "address": "0x000055fc7b2cb180"
     }
   ],
   "environmentVariables": {
diff --git a/src/node_report.cc b/src/node_report.cc
index d10db1c97bc8b1..7477a2fd240513 100644
--- a/src/node_report.cc
+++ b/src/node_report.cc
@@ -311,9 +311,18 @@ static void WriteNodeReport(Isolate* isolate,
 #endif
 
   writer.json_arraystart("libuv");
-  if (env != nullptr)
+  if (env != nullptr) {
     uv_walk(env->event_loop(), WalkHandle, static_cast<void*>(&writer));
 
+    writer.json_start();
+    writer.json_keyvalue("type", "loop");
+    writer.json_keyvalue("is_active",
+        static_cast<bool>(uv_loop_alive(env->event_loop())));
+    writer.json_keyvalue("address",
+        ValueToHexString(reinterpret_cast<int64_t>(env->event_loop())));
+    writer.json_end();
+  }
+
   writer.json_arrayend();
 
   // Report operating system information
diff --git a/src/node_report.h b/src/node_report.h
index 9b67dcf1c5b305..eb38bee8c697f5 100644
--- a/src/node_report.h
+++ b/src/node_report.h
@@ -57,8 +57,15 @@ void GetNodeReport(v8::Isolate* isolate,
 void ReportEndpoints(uv_handle_t* h, std::ostringstream& out);
 void WalkHandle(uv_handle_t* h, void* arg);
 std::string EscapeJsonChars(const std::string& str);
+
 template <typename T>
-std::string ValueToHexString(T value);
+std::string ValueToHexString(T value) {
+  std::stringstream hex;
+
+  hex << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex <<
+    value;
+  return hex.str();
+}
 
 // Function declarations - export functions in src/node_report_module.cc
 void TriggerReport(const v8::FunctionCallbackInfo<v8::Value>& info);
diff --git a/src/node_report_utils.cc b/src/node_report_utils.cc
index d013eb91677323..2a454fc37154f8 100644
--- a/src/node_report_utils.cc
+++ b/src/node_report_utils.cc
@@ -214,15 +214,6 @@ void WalkHandle(uv_handle_t* h, void* arg) {
   writer->json_end();
 }
 
-template <typename T>
-std::string ValueToHexString(T value) {
-  std::stringstream hex;
-
-  hex << "0x" << std::setfill('0') << std::setw(sizeof(T) * 2) << std::hex <<
-    value;
-  return hex.str();
-}
-
 std::string EscapeJsonChars(const std::string& str) {
   const std::string control_symbols[0x20] = {
       "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005",