Model\TraceHelpers.cs (17)
16public static void VisitSpans<TState>(OtlpTrace trace, Func<OtlpSpan, TState, TState> spanAction, TState state)
19var spanLookup = new Dictionary<OtlpSpan, List<OtlpSpan>>();
20var unrootedSpans = new List<OtlpSpan>();
21foreach (var item in trace.Spans)
23if (string.IsNullOrEmpty(item.ParentSpanId) || !trace.Spans.TryGetValue(item.ParentSpanId, out var parentSpan))
35var orderByFunc = static (OtlpSpan s) => s.StartTime;
37foreach (var unrootedSpan in unrootedSpans.OrderBy(orderByFunc))
44static void Visit(Dictionary<OtlpSpan, List<OtlpSpan>> spanLookup, OtlpSpan span, Func<OtlpSpan, TState, TState> spanAction, TState state, Func<OtlpSpan, DateTime> orderByFunc)
48foreach (var childSpan in childSpans.OrderBy(orderByFunc))
69VisitSpans(trace, (OtlpSpan span, OrderedResourcesState state) =>
90private static void ProcessSpanResource(OtlpSpan span, OtlpResource resource, Dictionary<OtlpResource, OrderedResource> resourceFirstTimes, DateTime currentMinDate)
129public static Icon? TryGetSpanIcon(OtlpSpan span, IconVariant iconVariant)
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (14)
25private async Task<List<OtlpSpan>> AddTracesToDatabaseAsync(AddContext context, RepeatedField<ResourceSpans> resourceSpans)
27var addedSpans = new List<OtlpSpan>();
339var modelSpan = CreateSqliteSpan(resourceView, trace, scope, span);
408var incomingPrimarySpan = GetPrimarySpan(trace);
444static bool HasGenAI(IEnumerable<OtlpSpan> spans) => spans.Any(span => span.Attributes.Any(attribute =>
448private static OtlpSpan GetPrimarySpan(OtlpTrace trace)
450var primarySpan = trace.Spans[0];
451foreach (var span in trace.Spans.Skip(1))
505var span = pendingSpan.Span;
557var span = pendingSpan.Span;
651var span = pendingSpan.Span;
918private OtlpSpan CreateSqliteSpan(OtlpResourceView resourceView, OtlpTrace trace, OtlpScope scope, Span span)
926var modelSpan = new OtlpSpan(resourceView, trace, scope)
1249private sealed record PendingSpan(long ResourceId, long ResourceViewId, long ScopeId, long ReceivedTimestampTicks, OtlpSpan Span)