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