5 writes to SpanId
Aspire.Dashboard (3)
Otlp\Model\OtlpSpan.cs (1)
87SpanId = item.SpanId,
Otlp\Storage\SqliteTelemetryRepository.Traces.Reads.cs (1)
790SpanId = record.SpanId,
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (1)
928SpanId = spanId,
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
281SpanId = spanId,
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
281SpanId = spanId,
126 references to SpanId
Aspire.Dashboard (54)
Components\Controls\SpanDetails.razor.cs (2)
111if (!string.Equals(ViewModel.Span.SpanId, _viewModel?.Span.SpanId, StringComparisons.OtlpSpanId))
Components\Dialogs\GenAIVisualizerDialog.razor.cs (4)
96_currentSpanContextIndex = _contextSpans.FindIndex(s => s.SpanId == Content.Span.SpanId); 119var span = newContextSpans.Find(s => s.SpanId == Content.Span.SpanId)!;
Components\Pages\TraceDetail.razor.cs (12)
210var spanVm = PageViewModel.SpanWaterfallViewModels.SingleOrDefault(vm => vm.Span.SpanId == SpanId); 376if (PageViewModel.SelectedData?.SpanViewModel is { } selectedSpan && selectedSpan.Span.SpanId == viewModel.Span.SpanId) 403_collapsedSpanIds.Add(viewModel.Span.SpanId); 407_collapsedSpanIds.Remove(viewModel.Span.SpanId); 427if (PageViewModel.SelectedData?.SpanViewModel?.Span.SpanId == viewModel.Span.SpanId) 663return response.PagedResult.Items.Select(span => span.SpanId).ToHashSet(StringComparer.Ordinal); 767return !visibleSpans.Any(vm => vm.Span.SpanId == spanVm.Span.SpanId); 824.Where(vm => durationFilterMatches.Contains(vm.Span.SpanId)) 864if (directMatchSpanIds.Contains(viewModel.Span.SpanId))
Model\ExportHelpers.cs (2)
26var logs = await telemetryRepository.GetLogsForSpanAsync(span.TraceId, span.SpanId, cancellationToken).ConfigureAwait(false); 28var fileName = $"span-{OtlpHelpers.ToShortenedId(span.SpanId)}.json";
Model\GenAI\GenAIVisualizerDialogViewModel.cs (4)
122errorRecorder.RecordError($"Error parsing tool definitions for span {viewModel.Span.SpanId}", ex, writeToLogging: true); 135errorRecorder.RecordError($"Error reading GenAI telemetry messages for span {viewModel.Span.SpanId}", ex, writeToLogging: true); 164errorRecorder.RecordError($"Error parsing GenAI evaluation results for span {viewModel.Span.SpanId}", ex, writeToLogging: true); 609Value = span.SpanId
Model\Otlp\SpanWaterfallViewModel.cs (2)
78groupedLogs.TryGetValue(span.SpanId, out var spanLogs); 136if (state.CollapsedSpanIds.Contains(span.SpanId))
Model\SpanDetailsViewModel.cs (1)
68var linkSpan = trace?.Spans.FirstOrDefault(s => s.SpanId == spanId);
Model\SpanMenuBuilder.cs (1)
77_navigationManager.NavigateTo(DashboardUrls.StructuredLogsUrl(spanId: span.SpanId));
Model\TelemetryExportService.cs (1)
390SpanId = span.SpanId,
Otlp\Model\OtlpSpan.cs (5)
51public static IEnumerable<OtlpSpan> GetChildSpans(OtlpSpan parentSpan, OtlpSpanCollection spans) => spans.Where(s => s.ParentSpanId == parentSpan.SpanId); 87SpanId = item.SpanId, 108new OtlpDisplayField { DisplayName = "SpanId", Key = KnownTraceFields.SpanIdField, Value = SpanId }, 164return $@"SpanId = {SpanId}, StartTime = {StartTime.ToLocalTime():h:mm:ss.fff tt}, ParentSpanId = {ParentSpanId}, Resource = {Source.ResourceKey}, UninstrumentedPeerResource = {UninstrumentedPeer?.ResourceKey}, TraceId = {Trace.TraceId}"; 238KnownTraceFields.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."); 61throw new InvalidOperationException($"Circular loop detected for span '{span.SpanId}' with parent '{span.ParentSpanId}'.");
Otlp\Storage\SqliteTelemetryRepository.Runtime.cs (4)
248seenSpans.Add((span.TraceId, span.SpanId)); 253if (seenSpans.Add((pendingSpan.TraceId, pendingSpan.SpanId))) 342var spanIdentities = spans.Select(span => (span.TraceId, span.SpanId)).ToArray(); 363if (matchingIdentities.Contains((span.TraceId, span.SpanId)))
Otlp\Storage\SqliteTelemetryRepository.Traces.Reads.cs (2)
409Items = identities.Select(identity => traces[identity.TraceId].Spans.Single(span => span.SpanId == identity.SpanId)).ToList(), 678return trace?.Spans.FirstOrDefault(span => span.SpanId == spanId);
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (10)
418incomingPrimarySpan.SpanId, 428incomingPrimarySpan.SpanId, 440useIncomingPrimary ? incomingPrimarySpan.SpanId : existingTrace.PrimarySpanId, 456span.SpanId, 459primarySpan.SpanId)) 507parameters[1].Value = span.SpanId; 560var hasChildren = incomingParentReferences.Contains((span.TraceId, span.SpanId)) || 561ingestionState.ExistingParentReferences.Contains((span.TraceId, span.SpanId)); 776pendingSpan.Span.SpanId, 796pendingSpan.Span.SpanId,
Aspire.Dashboard.Components.Tests (5)
Controls\GenAIVisualizerDialogTests.cs (1)
176var selectedLogEntryId = (await repository.GetLogsForSpanAsync(trace.TraceId, span.SpanId, CancellationToken.None)).Single().InternalId;
Pages\TraceDetailsTests.cs (4)
528item => Assert.Equal("root", item.Span.SpanId), 529item => Assert.Equal("match", item.Span.SpanId), 530item => Assert.Equal("descendant", item.Span.SpanId)); 999return response.PagedResult.Items.Select(span => span.SpanId).ToHashSet(StringComparer.Ordinal);
Aspire.Dashboard.Tests (67)
Integration\OtlpHttpJsonTests.cs (1)
542Assert.Equal("eee19b7ec3c1b174", span.SpanId);
Model\SpanWaterfallViewModelTests.cs (6)
33Assert.Equal("1", item.Span.SpanId); 34Assert.Equal("1-1", Assert.Single(item.Children).Span.SpanId); 38Assert.Equal("1-1", item.Span.SpanId); 69Assert.Equal("31", root.Span.SpanId); 92Assert.Equal("1", item.Span.SpanId); 97Assert.Equal("2", item.Span.SpanId);
TelemetryRepositoryTests\TraceTests.cs (60)
91AssertId("1-1", trace.FirstSpan.SpanId); 92AssertId("1-1", trace.RootSpan!.SpanId); 672span => AssertId("1-2", span.SpanId), 673span => AssertId("1-3", span.SpanId)); 797AssertId("1-1", trace.FirstSpan.SpanId); 798AssertId("1-1", trace.RootSpan!.SpanId); 873AssertId("2-1", trace.FirstSpan.SpanId); 874AssertId("2-1", trace.RootSpan!.SpanId); 879AssertId("1-2", trace.FirstSpan.SpanId); 914AssertId("1-1", trace.FirstSpan.SpanId); 916AssertId("1-1", trace.RootSpan!.SpanId); 921AssertId("2-1", trace.FirstSpan.SpanId); 923AssertId("2-1", trace.RootSpan!.SpanId); 968AssertId("1-1", trace.FirstSpan.SpanId); 969AssertId("1-1", trace.RootSpan!.SpanId); 971s => AssertId("1-1", s.SpanId), 972s => AssertId("1-2", s.SpanId), 973s => AssertId("1-3", s.SpanId), 974s => AssertId("1-4", s.SpanId), 975s => AssertId("1-5", s.SpanId)); 1036AssertId("1-1", trace.FirstSpan.SpanId); 1112AssertId("1-1", trace.FirstSpan.SpanId); 1178AssertId("1-1", trace.FirstSpan.SpanId); 1179AssertId("1-1", trace.RootSpan!.SpanId); 1260AssertId("1-1", trace.FirstSpan.SpanId); 1488AssertId("1-2", trace.FirstSpan.SpanId); // First by time 1489AssertId("1-3", trace.RootSpan!.SpanId); // First by time and without a parent 2207AssertId("1-1", s.SpanId); 2217AssertId("1-2", s.SpanId); 2232AssertId("1-3", s.SpanId); 2408AssertId("2-1", s.SpanId); 2412AssertId("2-2", s.SpanId); 2421AssertId("3-1", s.SpanId); 2425AssertId("3-2", s.SpanId); 2510AssertId("3-1", s.SpanId); 2514AssertId("3-2", s.SpanId); 2601AssertId("3-1", s.SpanId); 2605AssertId("3-2", s.SpanId); 2671AssertId("1-1", s.SpanId); 2676AssertId("1-2", s.SpanId); 2932AssertId("1-1", s.SpanId); 2937AssertId("1-2", s.SpanId); 2973AssertId("1-1", s.SpanId); 2978AssertId("1-2", s.SpanId); 3254AssertId("1-1", span.SpanId); 3295AssertId("1-1", result.PagedResult.Items[0].SpanId); 3336AssertId("1-2", result.PagedResult.Items[0].SpanId); 3446AssertId("1-1", result.PagedResult.Items[0].SpanId); 3553AssertId("1-1", result.PagedResult.Items[0].SpanId); 3594AssertId("1-1", result.PagedResult.Items[0].SpanId); 3682AssertId(expectedMatch.SpanId, Assert.Single(result.PagedResult.Items).SpanId); 3750AssertId("1-1", Assert.Single(fieldResult.PagedResult.Items).SpanId); 3752AssertId("1-1", Assert.Single(textResult.PagedResult.Items).SpanId); 3794AssertId("1-2", result.PagedResult.Items[0].SpanId); 3837AssertId("1-1", result.PagedResult.Items[0].SpanId); 4401Assert.Contains(result.PagedResult.Items, s => GetStringId(s.SpanId) == "1-2"); 4402Assert.Contains(result.PagedResult.Items, s => GetStringId(s.SpanId) == "1-3"); 4728span => AssertId("1-1", span.SpanId), 4729span => AssertId("1-2", span.SpanId)); 4967AssertId($"span-{index}", span.SpanId);