$now - 5 * 60, 'Last 15 minutes' => $now - 15 * 60, 'Last hour' => $now - 60 * 60, 'Last day' => $now - 24 * 60 * 60, ]; foreach ($timeFrames as $label => $time) { $queryBuilder = $this->connection->getQueryBuilder(); $result = $queryBuilder->select($queryBuilder->func()->count('*')) ->from('authtoken') ->where($queryBuilder->expr()->gte('last_activity', $queryBuilder->createNamedParameter($time))) ->executeQuery(); yield new Metric((int)$result->fetchOne(), ['time' => $label]); } } }