stats method

Map<String, Object?> stats(
  1. DateTime now, {
  2. Map<String, Object?>? capabilities,
})

Dashboard summary payload.

Implementation

Map<String, Object?> stats(
  DateTime now, {
  Map<String, Object?>? capabilities,
}) {
  final aliveWorkers =
      _workers.values.where((w) => w.isAlive(now, workerTimeout)).length;
  return {
    'totals': {
      'sent': sent,
      'received': received,
      'succeeded': succeeded,
      'failed': failed,
      'retried': retried,
      'revoked': revoked,
      'rate_limited': rateLimited,
    },
    'workers': {
      'total': _workers.length,
      'alive': aliveWorkers,
    },
    'tasks_tracked': _tasks.length,
    'queues': Map.of(queueLengths),
    'task_types': taskTypeStats(),
    if (capabilities != null) 'capabilities': capabilities,
  };
}