startSpan method

  1. @override
Future<ResultDart<Span, TelemetryException>> startSpan({
  1. required String parentId,
  2. required String spanName,
  3. Map<String, String> initialAttributes = const {},
})
override

Creates a child span within an existing trace.

Returns ResultDart with span on success or TelemetryException on error

Implementation

@override
Future<ResultDart<Span, TelemetryException>> startSpan({
  required String parentId,
  required String spanName,
  Map<String, String> initialAttributes = const {},
}) async {
  final spanId = _generateSpanId();
  final now = DateTime.now().toUtc();

  final span = Span(
    spanId: spanId,
    parentSpanId: parentId,
    traceId: parentId,
    name: spanName,
    startTime: now,
    attributes: initialAttributes,
  );

  _activeSpans[spanId] = span;
  return Success(span);
}