@@ -261,6 +261,30 @@ void LoopIdleTime(const FunctionCallbackInfo<Value>& args) {
261261 args.GetReturnValue ().Set (1.0 * idle_time / NANOS_PER_MILLIS);
262262}
263263
264+ void UvMetricsInfo (const FunctionCallbackInfo<Value>& args) {
265+ Environment* env = Environment::GetCurrent (args);
266+ uv_metrics_t metrics;
267+
268+ // uv_metrics_info always return 0
269+ CHECK_EQ (uv_metrics_info (env->event_loop (), &metrics), 0 );
270+
271+ Local<Object> obj = Object::New (env->isolate ());
272+ obj->Set (env->context (),
273+ env->loop_count (),
274+ Integer::NewFromUnsigned (env->isolate (), metrics.loop_count ))
275+ .Check ();
276+ obj->Set (env->context (),
277+ env->events (),
278+ Integer::NewFromUnsigned (env->isolate (), metrics.events ))
279+ .Check ();
280+ obj->Set (env->context (),
281+ env->events_waiting (),
282+ Integer::NewFromUnsigned (env->isolate (), metrics.events_waiting ))
283+ .Check ();
284+
285+ args.GetReturnValue ().Set (obj);
286+ }
287+
264288void CreateELDHistogram (const FunctionCallbackInfo<Value>& args) {
265289 Environment* env = Environment::GetCurrent (args);
266290 int64_t interval = args[0 ].As <Integer>()->Value ();
@@ -324,6 +348,7 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
324348 SetMethod (isolate, target, " loopIdleTime" , LoopIdleTime);
325349 SetMethod (isolate, target, " createELDHistogram" , CreateELDHistogram);
326350 SetMethod (isolate, target, " markBootstrapComplete" , MarkBootstrapComplete);
351+ SetMethod (isolate, target, " uvMetricsInfo" , UvMetricsInfo);
327352 SetFastMethodNoSideEffect (
328353 isolate, target, " now" , SlowPerformanceNow, &fast_performance_now);
329354}
@@ -390,6 +415,7 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
390415 registry->Register (LoopIdleTime);
391416 registry->Register (CreateELDHistogram);
392417 registry->Register (MarkBootstrapComplete);
418+ registry->Register (UvMetricsInfo);
393419 registry->Register (SlowPerformanceNow);
394420 registry->Register (FastPerformanceNow);
395421 registry->Register (fast_performance_now.GetTypeInfo ());
0 commit comments