recordTiming method
Records a timing metric.
Use for measuring operation duration (e.g., query latency). Duration is automatically converted to milliseconds. Returns Future<void> to allow for async repository operations.
Implementation
@override
Future<void> recordTiming({
required String name,
required Duration duration,
Map<String, String> attributes = const {},
}) async {
if (name.isEmpty) {
throw ArgumentError('Timing name cannot be empty');
}
if (duration.isNegative) {
throw ArgumentError('Duration cannot be negative');
}
await _repository.exportMetric(
Metric(
name: name,
value: duration.inMilliseconds.toDouble(),
unit: 'ms',
timestamp: DateTime.now().toUtc(),
attributes: attributes,
),
);
}