recordSpan<T> method
Future<T>
recordSpan<T>(
- String name, {
- String? parentSpanId,
- Map<
String, String> ? attributes, - List<
Map< ? events,String, dynamic> > - required Future<
T> code(),
override
Surrounds some code with a start and stop span so that the code can be measured and a span created for it.
Implementation
@override
Future<T> recordSpan<T>(
String name, {
String? parentSpanId,
Map<String, String>? attributes,
List<Map<String, dynamic>>? events,
required Future<T> Function() code,
}) async {
throwIfNotStarted();
final startTimeMs = DateTime.now().millisecondsSinceEpoch;
final spanId =
await methodChannel.invokeMethod<String>(_startSpanMethodName, {
_nameArgName: name,
_parentSpanIdArgName: parentSpanId,
_startTimeArgName: startTimeMs,
});
final result = await code();
final endTimeMs = DateTime.now().millisecondsSinceEpoch;
await methodChannel.invokeMethod(_stopSpanMethodName, {
_spanIdArgName: spanId,
_parentSpanIdArgName: parentSpanId,
_endTimeMsArgName: endTimeMs,
});
return result;
}