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)
1192var newSpan = new OtlpSpan(applicationView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
309return new OtlpSpan(app.GetView([]), trace, scope)
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
309return new OtlpSpan(app.GetView([]), trace, scope)
101 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)
145var headerSpan = _trace.RootOrFirstSpan; 149private static Icon GetSpanIcon(OtlpSpan span) 232foreach (var span in _trace.Spans) 345var 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; } 113public static string GetTitle(OtlpSpan span, List<OtlpApplication> allApplications) 124TraceHelpers.VisitSpans(trace, (OtlpSpan span, SpanWaterfallViewModelState s) => 137static SpanWaterfallViewModel CreateViewModel(OtlpSpan span, int depth, bool hidden, TraceDetailState state, List<OtlpLogEntry>? spanLogs, ref int currentSpanLogIndex) 206private 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) 532foreach (var span in t.Spans) 592foreach (var span in t.Spans) 715foreach (var span in trace.Spans) 717var values = OtlpSpan.GetFieldValue(span, attributeName); 797private OtlpSpan? GetSpanUnsynchronized(string traceId, string spanId) 804foreach (var span in trace.Spans) 816public OtlpSpan? GetSpan(string traceId, string spanId) 946var newSpan = CreateSpan(applicationView, span, trace, scope, _otlpContext); 964var linkedSpan = GetSpanUnsynchronized(link.TraceId, link.SpanId); 1076foreach (var span in trace.Spans) 1102private static ResourceViewModel? ResolveUninstrumentedPeerResource(OtlpSpan span, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers) 1142foreach (var span in trace.Spans) 1168private static OtlpSpan CreateSpan(OtlpApplicationView applicationView, Span span, OtlpTrace trace, OtlpScope scope, OtlpContext context) 1192var newSpan = new OtlpSpan(applicationView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
305public static OtlpSpan CreateOtlpSpan(OtlpApplication app, OtlpTrace trace, OtlpScope scope, string spanId, string? parentSpanId, DateTime startDate,
Aspire.Dashboard.Tests (16)
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)
127var span = TelemetryTestHelpers.CreateOtlpSpan( 161var parentSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "parent", parentSpanId: null, startDate: new DateTime(2001, 1, 1, 1, 1, 2, DateTimeKind.Utc)); 162var childSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "child", parentSpanId: "parent", startDate: new DateTime(2001, 1, 1, 1, 1, 3, DateTimeKind.Utc)); 183var parentSpan = TelemetryTestHelpers.CreateOtlpSpan(app1, trace, scope, spanId: "parent", parentSpanId: null, startDate: new DateTime(2001, 1, 1, 1, 1, 2, DateTimeKind.Utc)); 184var 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 (7)
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) 2145CreateSpan(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), 2146CreateSpan(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)
305public static OtlpSpan CreateOtlpSpan(OtlpApplication app, OtlpTrace trace, OtlpScope scope, string spanId, string? parentSpanId, DateTime startDate,