/**
  * {@inheritdoc}
  */
 public function getValues() : PromiseInterface
 {
     $counters = $this->infoProvider->getCounters();
     $storage = new \SplObjectStorage();
     $storage->attach(new Metric('current_read_streams', (double) $counters['streams']['read']['current']));
     $storage->attach(new Metric('current_write_streams', (double) $counters['streams']['write']['current']));
     return resolve($storage);
 }
 /**
  * {@inheritdoc}
  */
 public function getValues() : PromiseInterface
 {
     $counters = $this->infoProvider->getCounters();
     $this->infoProvider->resetTotals();
     $storage = new \SplObjectStorage();
     $storage->attach(new Metric('streams_read_total', (double) $counters['streams']['read']['total']));
     $storage->attach(new Metric('streams_total_total', (double) $counters['streams']['total']['total']));
     $storage->attach(new Metric('streams_write_total', (double) $counters['streams']['write']['total']));
     $storage->attach(new Metric('timers_once_total', (double) $counters['timers']['once']['total']));
     $storage->attach(new Metric('timers_periodic_total', (double) $counters['timers']['periodic']['total']));
     $storage->attach(new Metric('ticks_future_total', (double) $counters['ticks']['future']['total']));
     $storage->attach(new Metric('ticks_next_total', (double) $counters['ticks']['next']['total']));
     return resolve($storage);
 }
<?php

use React\EventLoop\Factory;
use React\EventLoop\Timer\TimerInterface;
use WyriHaximus\React\Inspector\InfoProvider;
use WyriHaximus\React\Inspector\LoopDecorator;
require 'vendor/autoload.php';
$loop = new LoopDecorator(Factory::create());
$info = new InfoProvider($loop);
for ($i = 1; $i <= 3; $i++) {
    $loop->addTimer($i, function () {
    });
    $loop->addPeriodicTimer(1.0E-5, function (TimerInterface $timer) use($loop) {
        if (mt_rand(0, 10000) == mt_rand(0, 10000)) {
            $loop->cancelTimer($timer);
        }
    });
    $loop->nextTick(function () use($loop) {
        $loop->nextTick(function () {
        });
    });
    $loop->futureTick(function () use($loop) {
        $loop->futureTick(function () {
        });
    });
}
$loop->run();
var_export($info->getCounters());