4 instantiations of OtlpSpan
Aspire.Dashboard (2)
Otlp\Model\OtlpSpan.cs (1)
76return new OtlpSpan(item.Source, trace, item.Scope)
Otlp\Storage\TelemetryRepository.cs (1)
1186var newSpan = new OtlpSpan(applicationView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
308return new OtlpSpan(app.GetView([]), trace, scope)
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
308return new OtlpSpan(app.GetView([]), trace, scope)
99 references to OtlpSpan
Aspire.Dashboard (84)
Components\Controls\Chart\ChartBase.cs (6)
63private Dictionary<SpanKey, OtlpSpan> _currentCache = new Dictionary<SpanKey, OtlpSpan>(); 64private Dictionary<SpanKey, OtlpSpan> _newCache = new Dictionary<SpanKey, OtlpSpan>(); 315if (!_currentCache.TryGetValue(key, out var span)) 514_newCache = new Dictionary<SpanKey, OtlpSpan>();
Components\Controls\Chart\ChartExemplar.cs (1)
16public required OtlpSpan? Span { get; init; }
Components\Pages\TraceDetail.razor.cs (4)
133var headerSpan = _trace.RootOrFirstSpan; 137private static Icon GetSpanIcon(OtlpSpan span) 203foreach (var span in _trace.Spans) 313var linkSpan = trace?.Spans.FirstOrDefault(s => s.SpanId == spanId);
Model\MetricsHelpers.cs (2)
20Func<string, string, OtlpSpan?> getSpan, 26var span = getSpan(traceId, spanId);
Model\Otlp\SpanWaterfallViewModel.cs (5)
12public required OtlpSpan Span { get; init; } 112public static string GetTitle(OtlpSpan span, List<OtlpApplication> allApplications) 121TraceHelpers.VisitSpans(trace, (OtlpSpan span, SpanWaterfallViewModelState s) => 133static SpanWaterfallViewModel CreateViewModel(OtlpSpan span, int depth, bool hidden, TraceDetailState state) 176private static string? ResolveUninstrumentedPeerName(OtlpSpan span, IOutgoingPeerResolver[] outgoingPeerResolvers)
Model\Otlp\TelemetryFilter.cs (2)
132public bool Apply(OtlpSpan span) 134var fieldValue = OtlpSpan.GetFieldValue(span, Field);
Model\SpanDetailsViewModel.cs (1)
10public required OtlpSpan Span { get; init; }
Model\SpanLinkViewModel.cs (1)
13public required OtlpSpan? Span { get; init; }
Model\TraceHelpers.cs (10)
13public static void VisitSpans<TState>(OtlpTrace trace, Func<OtlpSpan, TState, TState> spanAction, TState state) 19var orderByFunc = static (OtlpSpan s) => s.StartTime; 21foreach (var unrootedSpan in trace.Spans.Where(s => s.GetParentSpan() == null).OrderBy(orderByFunc)) 28static void Visit(OtlpSpanCollection allSpans, OtlpSpan span, Func<OtlpSpan, TState, TState> spanAction, TState state, Func<OtlpSpan, DateTime> orderByFunc) 30foreach (var childSpan in OtlpSpan.GetChildSpans(span, allSpans).OrderBy(orderByFunc)) 50VisitSpans(trace, (OtlpSpan span, OrderedApplicationsState state) => 70private static void ProcessSpanApp(OtlpSpan span, OtlpApplication application, Dictionary<OtlpApplication, OrderedApplication> appFirstTimes, DateTime currentMinDate)
Otlp\Model\OtlpHelpers.cs (5)
349var address = GetValue(values, OtlpSpan.PeerServiceAttributeKey); 356if (GetValue(values, OtlpSpan.ServerAddressAttributeKey) is { } server) 358if (GetValue(values, OtlpSpan.ServerPortAttributeKey) is { } serverPort) 366if (GetValue(values, OtlpSpan.NetPeerNameAttributeKey) is { } peer) 368if (GetValue(values, OtlpSpan.NetPeerPortAttributeKey) is { } peerPort)
Otlp\Model\OtlpSpan.cs (9)
47public IEnumerable<OtlpSpan> GetChildSpans() => GetChildSpans(this, Trace.Spans); 48public static IEnumerable<OtlpSpan> GetChildSpans(OtlpSpan parentSpan, OtlpSpanCollection spans) => spans.Where(s => s.ParentSpanId == parentSpan.SpanId); 52public OtlpSpan? GetParentSpan() 59if (Trace.Spans.TryGetValue(ParentSpanId, out var span)) 74public static OtlpSpan Clone(OtlpSpan item, OtlpTrace trace) 131static string BuildDisplaySummary(OtlpSpan span) 186public static FieldValues GetFieldValue(OtlpSpan span, string field)
Otlp\Model\OtlpSpanCollection.cs (4)
8public sealed class OtlpSpanCollection : KeyedCollection<string, OtlpSpan> 17protected override string GetKeyForItem(OtlpSpan item) 22public new List<OtlpSpan>.Enumerator GetEnumerator() 25return ((List<OtlpSpan>)this.Items).GetEnumerator();
Otlp\Model\OtlpSpanEvent.cs (1)
14public class OtlpSpanEvent(OtlpSpan span) : IPropertyGridItem
Otlp\Model\OtlpTrace.cs (18)
11private OtlpSpan? _rootSpan; 17public OtlpSpan FirstSpan => Spans[0]; // There should always be at least one span in a trace. 19public OtlpSpan? RootSpan => _rootSpan; 20public OtlpSpan RootOrFirstSpan => RootSpan ?? FirstSpan; 27foreach (var span in Spans) 40public int CalculateDepth(OtlpSpan span) 43var currentSpan = span; 54public void AddSpan(OtlpSpan span) 86foreach (var existingSpan in Spans) 104static string BuildFullName(OtlpSpan existingSpan) 110private static bool HasCircularReference(OtlpSpan span) 120var currentSpan = span; 141var span = Spans[i]; 161foreach (var item in trace.Spans) 163newTrace.AddSpan(OtlpSpan.Clone(item, newTrace)); 174private sealed class SpanStartDateComparer : IComparer<OtlpSpan> 178public int Compare(OtlpSpan? x, OtlpSpan? y)
Otlp\Storage\TelemetryRepository.cs (15)
89foreach (var span in trace.Spans) 527foreach (var span in t.Spans) 587foreach (var span in t.Spans) 710foreach (var span in trace.Spans) 712var values = OtlpSpan.GetFieldValue(span, attributeName); 792private OtlpSpan? GetSpanUnsynchronized(string traceId, string spanId) 799foreach (var span in trace.Spans) 811public OtlpSpan? GetSpan(string traceId, string spanId) 941var newSpan = CreateSpan(applicationView, span, trace, scope, _otlpContext); 959var linkedSpan = GetSpanUnsynchronized(link.TraceId, link.SpanId); 1070foreach (var span in trace.Spans) 1096private static ResourceViewModel? ResolveUninstrumentedPeerResource(OtlpSpan span, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers) 1136foreach (var span in trace.Spans) 1162private static OtlpSpan CreateSpan(OtlpApplicationView applicationView, Span span, OtlpTrace trace, OtlpScope scope, OtlpContext context) 1186var newSpan = new OtlpSpan(applicationView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
304public static OtlpSpan CreateOtlpSpan(OtlpApplication app, OtlpTrace trace, OtlpScope scope, string spanId, string? parentSpanId, DateTime startDate,
Aspire.Dashboard.Tests (14)
Model\ResourceMenuItemsTests.cs (2)
71TelemetryTestHelpers.CreateSpan(traceId: "1", spanId: "1-1", startTime: s_testTime.AddMinutes(1), endTime: s_testTime.AddMinutes(10), attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-1")], kind: Span.Types.SpanKind.Client), 72TelemetryTestHelpers.CreateSpan(traceId: "1", spanId: "1-2", startTime: s_testTime.AddMinutes(5), endTime: s_testTime.AddMinutes(10), parentSpanId: "1-1", attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-2")], kind: Span.Types.SpanKind.Client)
Model\SpanWaterfallViewModelTests.cs (5)
95var span = TelemetryTestHelpers.CreateOtlpSpan( 128var parentSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "parent", parentSpanId: null, startDate: new DateTime(2001, 1, 1, 1, 1, 2, DateTimeKind.Utc)); 129var childSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "child", parentSpanId: "parent", startDate: new DateTime(2001, 1, 1, 1, 1, 3, DateTimeKind.Utc)); 150var parentSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "parent", parentSpanId: null, startDate: new DateTime(2001, 1, 1, 1, 1, 2, DateTimeKind.Utc)); 151var childSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "child", parentSpanId: "parent", startDate: new DateTime(2001, 1, 1, 1, 1, 3, DateTimeKind.Utc));
TelemetryRepositoryTests\OtlpSpanTests.cs (1)
25var span = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "abc", parentSpanId: null, startDate: s_testTime,
TelemetryRepositoryTests\TraceTests.cs (5)
1257Spans = { CreateSpan(traceId: "1", spanId: "1-1", startTime: s_testTime.AddMinutes(1), endTime: s_testTime.AddMinutes(10), attributes: [KeyValuePair.Create("key1", "value1"), KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-1")], kind: Span.Types.SpanKind.Client) } 1952CreateSpan(traceId: "1", spanId: "1-1", startTime: s_testTime.AddMinutes(1), endTime: s_testTime.AddMinutes(10), attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-1")], kind: Span.Types.SpanKind.Client), 1953CreateSpan(traceId: "1", spanId: "1-2", startTime: s_testTime.AddMinutes(5), endTime: s_testTime.AddMinutes(10), parentSpanId: "1-1", attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-2")], kind: Span.Types.SpanKind.Client) 2039CreateSpan(traceId: "1", spanId: "1-1", startTime: s_testTime.AddMinutes(1), endTime: s_testTime.AddMinutes(10), attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-1")], kind: Span.Types.SpanKind.Client), 2040CreateSpan(traceId: "1", spanId: "1-2", startTime: s_testTime.AddMinutes(5), endTime: s_testTime.AddMinutes(10), parentSpanId: "1-1", attributes: [KeyValuePair.Create(OtlpSpan.PeerServiceAttributeKey, "value-2")], kind: Span.Types.SpanKind.Client)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
304public static OtlpSpan CreateOtlpSpan(OtlpApplication app, OtlpTrace trace, OtlpScope scope, string spanId, string? parentSpanId, DateTime startDate,