4 writes to SpanId
Aspire.Dashboard (2)
Otlp\Model\OtlpSpan.cs (1)
85SpanId = item.SpanId,
Otlp\Storage\TelemetryRepository.cs (1)
1260SpanId = id,
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
320SpanId = spanId,
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
320SpanId = spanId,
97 references to SpanId
Aspire.Dashboard (48)
Components\Controls\SpanActions.razor.cs (2)
66NavigationManager.NavigateTo(DashboardUrls.StructuredLogsUrl(spanId: SpanViewModel.Span.SpanId)); 82AIPromptsLoc.GetString(nameof(AIPrompts.PromptAnalyzeSpan), OtlpHelpers.ToShortenedId(SpanViewModel.Span.SpanId)),
Components\Controls\SpanDetails.razor.cs (3)
114NavigationManager.NavigateTo(DashboardUrls.StructuredLogsUrl(spanId: ViewModel.Span.SpanId)); 135if (!string.Equals(ViewModel.Span.SpanId, _viewModel?.Span.SpanId, StringComparisons.OtlpSpanId))
Components\Dialogs\GenAIVisualizerDialog.razor.cs (4)
70_currentSpanContextIndex = _contextSpans.FindIndex(s => s.SpanId == Content.Span.SpanId); 85var span = _contextSpans.Find(s => s.SpanId == Content.Span.SpanId)!;
Components\Pages\TraceDetail.razor.cs (7)
244var spanVm = _spanWaterfallViewModels.SingleOrDefault(vm => vm.Span.SpanId == SpanId); 391if (SelectedData?.SpanViewModel is { } selectedSpan && selectedSpan.Span.SpanId == viewModel.Span.SpanId) 418_collapsedSpanIds.Add(viewModel.Span.SpanId); 422_collapsedSpanIds.Remove(viewModel.Span.SpanId); 443if (SelectedData?.SpanViewModel?.Span.SpanId == viewModel.Span.SpanId)
Components_Pages_TraceDetail_razor.g.cs (4)
1084subtitle = OtlpHelpers.ToShortenedId(spanVm.Span.SpanId); 1371r => r.Span.SpanId 2283var buttonId = $"{context.Span.SpanId}-{item.LogEntry.InternalId}"; 2660var id = context.Span.SpanId;
Model\Assistant\AIHelpers.cs (4)
53span_id = OtlpHelpers.ToShortenedId(s.SpanId), 56name = context.AddValue(s.Name, id => $@"Duplicate of ""name"" for span {OtlpHelpers.ToShortenedId(id)}", s.SpanId), 58status_message = context.AddValue(s.StatusMessage, id => $@"Duplicate of ""status_message"" for span {OtlpHelpers.ToShortenedId(id)}", s.SpanId), 63.ToDictionary(a => a.Key, a => context.AddValue(MapOtelAttributeValue(a), id => $@"Duplicate of attribute ""{id.Key}"" for span {OtlpHelpers.ToShortenedId(id.SpanId)}", (s.SpanId, a.Key))),
Model\Assistant\Markdown\AspireEnrichmentParser.cs (3)
202var span = trace.Spans.FirstOrDefault(s => OtlpHelpers.MatchTelemetryId(text, s.SpanId)); 207Url = DashboardUrls.TraceDetailUrl(trace.TraceId, span.SpanId), 210linkInline.AppendChild(new CodeInline(OtlpHelpers.ToShortenedId(span.SpanId)));
Model\Assistant\Prompts\IceBreakersBuilder.cs (2)
310_loc.GetString(nameof(AIPrompts.PromptAnalyzeSpan), OtlpHelpers.ToShortenedId(span.SpanId)), 315_loc.GetString(nameof(AIPrompts.PromptAnalyzeSpan), OtlpHelpers.ToShortenedId(span.SpanId)),
Model\Assistant\Prompts\KnownChatMessages.cs (1)
312Summarize the distributed span `{OtlpHelpers.ToShortenedId(span.SpanId)}`. Focus on errors.
Model\GenAI\GenAIVisualizerDialogViewModel.cs (2)
82errorRecorder.RecordError($"Error reading GenAI telemetry messages for span {viewModel.Span.SpanId}", ex, writeToLogging: true); 399Value = span.SpanId
Model\Otlp\SpanWaterfallViewModel.cs (3)
86return viewModel.Span.SpanId.Contains(filter, StringComparison.CurrentCultureIgnoreCase) 136groupedLogs.TryGetValue(span.SpanId, out var spanLogs); 194if (state.CollapsedSpanIds.Contains(span.SpanId))
Model\SpanDetailsViewModel.cs (1)
68var linkSpan = trace?.Spans.FirstOrDefault(s => s.SpanId == spanId);
Otlp\Model\OtlpSpan.cs (5)
49public static IEnumerable<OtlpSpan> GetChildSpans(OtlpSpan parentSpan, OtlpSpanCollection spans) => spans.Where(s => s.ParentSpanId == parentSpan.SpanId); 85SpanId = item.SpanId, 106new OtlpDisplayField { DisplayName = "SpanId", Key = KnownTraceFields.SpanIdField, Value = SpanId }, 162return $@"SpanId = {SpanId}, StartTime = {StartTime.ToLocalTime():h:mm:ss.fff tt}, ParentSpanId = {ParentSpanId}, Resource = {Source.ResourceKey}, UninstrumentedPeerResource = {UninstrumentedPeer?.ResourceKey}, TraceId = {Trace.TraceId}"; 236KnownTraceFields.SpanIdField => span.SpanId,
Otlp\Model\OtlpSpanCollection.cs (1)
19return item.SpanId;
Otlp\Model\OtlpTrace.cs (3)
42if (Spans.Contains(span.SpanId)) 44throw new InvalidOperationException($"Duplicate span id '{span.SpanId}' detected."); 65throw new InvalidOperationException($"Circular loop detected for span '{span.SpanId}' with parent '{span.ParentSpanId}'.");
Otlp\Storage\TelemetryRepository.cs (3)
859if (span.SpanId == spanId) 1006if (existingLink.SpanId == newSpan.SpanId && existingLink.TraceId == newSpan.TraceId) 1214throw new InvalidOperationException($"Couldn't find expected link from span {span.SpanId} to span {link.SpanId}.");
Aspire.Dashboard.Tests (49)
Model\SpanWaterfallViewModelTests.cs (7)
38Assert.Equal("1", e.Span.SpanId); 39Assert.Equal("1-1", Assert.Single(e.Children).Span.SpanId); 43Assert.Equal("1-1", e.Span.SpanId); 69Assert.Equal("31", e.Span.SpanId); 98Assert.Equal("1", e.Span.SpanId); 103Assert.Equal("2", e.Span.SpanId); 265Assert.Equal("child", Assert.Single(descendents).Span.SpanId);
TelemetryRepositoryTests\TraceTests.cs (42)
91AssertId("1-1", trace.FirstSpan.SpanId); 92AssertId("1-1", trace.RootSpan!.SpanId); 331AssertId("1-1", trace.FirstSpan.SpanId); 332AssertId("1-1", trace.RootSpan!.SpanId); 408AssertId("2-1", trace.FirstSpan.SpanId); 409AssertId("2-1", trace.RootSpan!.SpanId); 414AssertId("1-2", trace.FirstSpan.SpanId); 450AssertId("1-1", trace.FirstSpan.SpanId); 452AssertId("1-1", trace.RootSpan!.SpanId); 457AssertId("2-1", trace.FirstSpan.SpanId); 459AssertId("2-1", trace.RootSpan!.SpanId); 505AssertId("1-1", trace.FirstSpan.SpanId); 506AssertId("1-1", trace.RootSpan!.SpanId); 508s => AssertId("1-1", s.SpanId), 509s => AssertId("1-2", s.SpanId), 510s => AssertId("1-3", s.SpanId), 511s => AssertId("1-4", s.SpanId), 512s => AssertId("1-5", s.SpanId)); 574AssertId("1-1", trace.FirstSpan.SpanId); 651AssertId("1-1", trace.FirstSpan.SpanId); 741AssertId("1-1", trace.FirstSpan.SpanId); 742AssertId("1-1", trace.RootSpan!.SpanId); 825AssertId("1-1", trace.FirstSpan.SpanId); 1056AssertId("1-2", trace.FirstSpan.SpanId); // First by time 1057AssertId("1-3", trace.RootSpan!.SpanId); // First by time and without a parent 1525AssertId("1-1", s.SpanId); 1535AssertId("1-2", s.SpanId); 1550AssertId("1-3", s.SpanId); 1728AssertId("2-1", s.SpanId); 1732AssertId("2-2", s.SpanId); 1741AssertId("3-1", s.SpanId); 1745AssertId("3-2", s.SpanId); 1831AssertId("3-1", s.SpanId); 1835AssertId("3-2", s.SpanId); 1923AssertId("3-1", s.SpanId); 1927AssertId("3-2", s.SpanId); 1993AssertId("1-1", s.SpanId); 1998AssertId("1-2", s.SpanId); 2072AssertId("1-1", s.SpanId); 2077AssertId("1-2", s.SpanId); 2114AssertId("1-1", s.SpanId); 2119AssertId("1-2", s.SpanId);