getReport static method

Map<String, dynamic> getReport()

Get metrics report

Implementation

static Map<String, dynamic> getReport() {
  // Calculate average durations
  final avgDurations = <String, String>{};
  _operationTimes.forEach((key, durations) {
    final avg = getAverageDuration(key);
    if (avg != null) {
      avgDurations[key] = '${avg.inMicroseconds / 1000.0}ms';
    }
  });

  return {
    'controllers': {
      'active': activeControllers,
      'created': totalControllersCreated,
      'disposed': totalControllersDisposed,
      'byType': controllerCreationCount,
    },
    'state': {
      'rxValues': totalRxValues,
      'stateUpdates': totalStateUpdates,
      'providers': totalProviders,
    },
    'effects': {
      'totalRuns': totalEffectRuns,
      'successful': totalEffectSuccesses,
      'failed': totalEffectFailures,
      'successByName': effectSuccessCounts,
      'failureByName': effectFailureCounts,
    },
    'counters': Map.from(_counters),
    'performance': {
      'averageDurations': avgDurations,
    }
  };
}