4 instantiations of OtlpSpan
Aspire.Dashboard (2)
Otlp\Model\OtlpSpan.cs (1)
82return new OtlpSpan(item.Source, trace, item.Scope)
Otlp\Storage\TelemetryRepository.cs (1)
1223var newSpan = new OtlpSpan(resourceView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
309return new OtlpSpan(resource.GetView([]), trace, scope)
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
309return new OtlpSpan(resource.GetView([]), trace, scope)
103 references to OtlpSpan
Aspire.Dashboard (86)
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\Controls\PropertyValues\SpanKindValue.razor.cs (1)
22public required OtlpSpan Span { get; set; }
Components\Controls\PropertyValues\SpanStatusValue.razor.cs (1)
18public required OtlpSpan Span { get; set; }
Components\Pages\TraceDetail.razor.cs (3)
147var headerSpan = _trace.RootOrFirstSpan; 214foreach (var span in _trace.Spans) 344var linkSpan = trace?.Spans.FirstOrDefault(s => s.SpanId == spanId);
Model\Otlp\SpanWaterfallViewModel.cs (5)
12public required OtlpSpan Span { get; init; } 113public static string GetTitle(OtlpSpan span, List<OtlpResource> allResources) 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 (11)
15public static void VisitSpans<TState>(OtlpTrace trace, Func<OtlpSpan, TState, TState> spanAction, TState state) 21var orderByFunc = static (OtlpSpan s) => s.StartTime; 23foreach (var unrootedSpan in trace.Spans.Where(s => s.GetParentSpan() == null).OrderBy(orderByFunc)) 30static void Visit(OtlpSpanCollection allSpans, OtlpSpan span, Func<OtlpSpan, TState, TState> spanAction, TState state, Func<OtlpSpan, DateTime> orderByFunc) 32foreach (var childSpan in OtlpSpan.GetChildSpans(span, allSpans).OrderBy(orderByFunc)) 52VisitSpans(trace, (OtlpSpan span, OrderedResourcesState state) => 72private static void ProcessSpanResource(OtlpSpan span, OtlpResource resource, Dictionary<OtlpResource, OrderedResource> resourceFirstTimes, DateTime currentMinDate) 111public static Icon? TryGetSpanIcon(OtlpSpan span, IconVariant iconVariant)
Model\TraceLinkHelpers.cs (1)
20Func<string, string, OtlpSpan?> getSpan,
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); 58public OtlpSpan? GetParentSpan() 65if (Trace.Spans.TryGetValue(ParentSpanId, out var span)) 80public static OtlpSpan Clone(OtlpSpan item, OtlpTrace trace) 137static string BuildDisplaySummary(OtlpSpan span) 192public 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 (19)
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) 41public int CalculateDepth(OtlpSpan span) 44var currentSpan = span; 55public void AddSpan(OtlpSpan span, bool skipLastUpdatedDate = false) 87foreach (var existingSpan in Spans) 110static string BuildFullName(OtlpSpan existingSpan) 116private static bool HasCircularReference(OtlpSpan span) 126var currentSpan = span; 147var span = Spans[i]; 168foreach (var item in trace.Spans) 170newTrace.AddSpan(OtlpSpan.Clone(item, newTrace), skipLastUpdatedDate: true); 181public void SetSpanUninstrumentedPeer(OtlpSpan span, OtlpResource? resource) 192private sealed class SpanStartDateComparer : IComparer<OtlpSpan> 196public 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); 827private OtlpSpan? GetSpanAndCloneUnsynchronized(string traceId, string spanId) 835foreach (var span in trace.Spans) 847public OtlpSpan? GetSpan(string traceId, string spanId) 977var newSpan = CreateSpan(resourceView, span, trace, scope, _otlpContext); 995var linkedSpan = GetSpanAndCloneUnsynchronized(link.TraceId, link.SpanId); 1107foreach (var span in trace.Spans) 1133private static ResourceViewModel? ResolveUninstrumentedPeerResource(OtlpSpan span, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers) 1173foreach (var span in trace.Spans) 1199private static OtlpSpan CreateSpan(OtlpResourceView resourceView, Span span, OtlpTrace trace, OtlpScope scope, OtlpContext context) 1223var newSpan = new OtlpSpan(resourceView, trace, scope)
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
305public static OtlpSpan CreateOtlpSpan(OtlpResource resource, 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(OtlpResource resource, OtlpTrace trace, OtlpScope scope, string spanId, string? parentSpanId, DateTime startDate,