recordEvent method

void recordEvent(
  1. Duration duration, {
  2. String category = "default",
  3. Map<String, dynamic> metadata = const {},
})

Records a performance event directly without a session

Implementation

void recordEvent(Duration duration, {String category = "default", Map<String, dynamic> metadata = const {}}) {
  if (!_enabled) return;

  final event = PerformanceEvent(duration: duration, category: category, timestamp: DateTime.now(), metadata: metadata);

  _recentEvents.add(event);
  while (_recentEvents.length > _maxRecentEvents) {
    _recentEvents.removeFirst();
  }

  // Convert to metric and store
  final categoryKey = event.category;
  List<PerformanceMetric> metrics = _completedMetrics.putIfAbsent(categoryKey, () => <PerformanceMetric>[]);
  metrics.add(PerformanceMetric.fromEvent(event));

  // Limit metrics per category
  while (metrics.length > _maxMetricsPerCategory) {
    metrics.removeAt(0);
  }
}