2 instantiations of SpanWaterfallViewModel
Aspire.Dashboard (1)
Model\Otlp\SpanWaterfallViewModel.cs (1)
123
var viewModel = new
SpanWaterfallViewModel
Aspire.Dashboard.Tests (1)
Model\TraceDetailPageViewModelTests.cs (1)
171
return new
SpanWaterfallViewModel
93 references to SpanWaterfallViewModel
Aspire.Dashboard (66)
Components\Controls\Chart\PlotlyChart.razor.cs (1)
162
title =
SpanWaterfallViewModel
.GetTitle(exemplar.Span, Resources);
Components\Controls\SpanActions.razor.cs (1)
30
public required
SpanWaterfallViewModel
SpanViewModel { get; set; }
Components\Dialogs\ExemplarsDialog.razor.cs (1)
58
?
SpanWaterfallViewModel
.GetTitle(exemplar.Span, Content.Resources)
Components\Pages\TraceDetail.razor.cs (53)
46
private AspireFluentDataGrid<
SpanWaterfallViewModel
> _dataGrid = null!;
156
internal ValueTask<GridItemsProviderResult<
SpanWaterfallViewModel
>> GetData(GridItemsProviderRequest<
SpanWaterfallViewModel
> request)
166
return ValueTask.FromResult(new GridItemsProviderResult<
SpanWaterfallViewModel
>
173
private IEnumerable<
SpanWaterfallViewModel
> GetVisibleSpanViewModels()
235
var
spanVm = PageViewModel.SpanWaterfallViewModels.SingleOrDefault(vm => vm.Span.SpanId == SpanId);
326
PageViewModel.SpanWaterfallViewModels =
SpanWaterfallViewModel
.Create(trace, result, new
SpanWaterfallViewModel
.TraceDetailState(_collapsedSpanIds, resources));
391
private string GetRowClass(
SpanWaterfallViewModel
viewModel)
408
private async Task OnToggleCollapse(
SpanWaterfallViewModel
viewModel)
414
private void SetSpanCollapsedState(
SpanWaterfallViewModel
viewModel, bool isCollapsed)
441
private async Task OnShowPropertiesAsync(
SpanWaterfallViewModel
viewModel, string? focusElementId)
502
foreach (
var
viewModel in PageViewModel.SpanWaterfallViewModels)
521
foreach (
var
viewModel in PageViewModel.SpanWaterfallViewModels)
552
private static bool IsGenAISpan(
SpanWaterfallViewModel
spanViewModel)
570
foreach (
var
vm in visibleSpanViewModels.Where(IsGenAISpan))
766
public List<
SpanWaterfallViewModel
>? SpanWaterfallViewModels { get; set; }
776
public bool IsSelectedDataExcludedByFilters(IEnumerable<
SpanWaterfallViewModel
> visibleSpans)
796
internal static IEnumerable<
SpanWaterfallViewModel
> ApplySpanFilters(
797
IReadOnlyList<
SpanWaterfallViewModel
> spanWaterfallViewModels,
820
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
>? parentMap = null;
845
var finalVisible = new HashSet<
SpanWaterfallViewModel
>(directMatches);
847
foreach (
var
match in directMatches)
849
var
current = match;
850
while (GetParentMap().TryGetValue(current, out
var
parent) && visibleViewModels.Contains(parent) && finalVisible.Add(parent))
858
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> GetParentMap()
864
private static HashSet<
SpanWaterfallViewModel
> BuildContextVisibleSet(
865
IReadOnlyList<
SpanWaterfallViewModel
> spanWaterfallViewModels,
867
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> parentMap)
869
var visibleViewModels = new HashSet<
SpanWaterfallViewModel
>();
871
foreach (
var
viewModel in spanWaterfallViewModels)
891
private static Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> BuildParentMap(IReadOnlyList<
SpanWaterfallViewModel
> spans)
893
var map = new Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
>();
894
foreach (
var
parent in spans)
896
foreach (
var
child in parent.Children)
906
SpanWaterfallViewModel
match,
907
HashSet<
SpanWaterfallViewModel
> visibleViewModels,
908
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> parentMap)
916
var
current = match;
917
while (parentMap.TryGetValue(current, out
var
parent))
928
private static void AddVisibleDescendents(
SpanWaterfallViewModel
match, HashSet<
SpanWaterfallViewModel
> visibleViewModels)
930
var stack = new Stack<
SpanWaterfallViewModel
>();
931
foreach (
var
child in match.Children)
938
var
current = stack.Pop();
944
foreach (
var
child in current.Children)
Model\GenAI\GenAIVisualizerDialogViewModel.cs (1)
63
Title =
SpanWaterfallViewModel
.GetTitle(spanDetailsViewModel.Span, spanDetailsViewModel.Resources),
Model\Otlp\SpanWaterfallViewModel.cs (8)
14
public required List<
SpanWaterfallViewModel
> Children { get; init; }
55
foreach (
var
child in Children)
61
private readonly record struct SpanWaterfallViewModelState(
SpanWaterfallViewModel
? Parent, int Depth, bool Hidden);
70
public static List<
SpanWaterfallViewModel
> Create(OtlpTrace trace, List<LogSummary> logs, TraceDetailState state)
72
var orderedSpans = new List<
SpanWaterfallViewModel
>();
79
var
viewModel = CreateViewModel(span, s.Depth, s.Hidden, state, spanLogs, ref currentSpanLogIndex);
89
static
SpanWaterfallViewModel
CreateViewModel(OtlpSpan span, int depth, bool hidden, TraceDetailState state, List<LogSummary>? spanLogs, ref int currentSpanLogIndex)
123
var
viewModel = new SpanWaterfallViewModel
Model\SpanDetailsViewModel.cs (1)
50
Title =
SpanWaterfallViewModel
.GetTitle(span, resources),
Aspire.Dashboard.Components.Tests (12)
Pages\TraceDetailsTests.cs (12)
80
Assert.Single(cut.FindComponents<FluentDataGrid<
SpanWaterfallViewModel
>>());
143
cut.WaitForAssertion(() => Assert.Equal(2, cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>().FindAll(".fluent-data-grid-row").Count));
257
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
271
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
325
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
352
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
407
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
498
var data = await cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>());
520
var viewModels =
SpanWaterfallViewModel
.Create(trace, [], new
SpanWaterfallViewModel
.TraceDetailState([], [resource]));
594
var unfilteredData = await cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>());
721
var unfilteredData = await cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>());
Aspire.Dashboard.Tests (15)
Model\SpanWaterfallViewModelTests.cs (10)
28
var viewModels =
SpanWaterfallViewModel
.Create(trace, [], new
SpanWaterfallViewModel
.TraceDetailState([], []));
66
var viewModels =
SpanWaterfallViewModel
.Create(trace, [log], new
SpanWaterfallViewModel
.TraceDetailState([], []));
68
var
root = Assert.Single(viewModels);
87
var viewModels =
SpanWaterfallViewModel
.Create(trace, [], new
SpanWaterfallViewModel
.TraceDetailState([], []));
121
var
viewModel = Assert.Single(
SpanWaterfallViewModel
.Create(trace, [], new
SpanWaterfallViewModel
.TraceDetailState([], [app, browserLink])));
Model\TraceDetailPageViewModelTests.cs (5)
42
var
spanVm = CreateSpanWaterfallViewModel(span);
76
var
otherVm = CreateSpanWaterfallViewModel(otherSpan);
125
var
spanVm = CreateSpanWaterfallViewModel(span, [new SpanLogEntryViewModel { Index = 0, LogEntry = logSummary, LeftOffset = 0 }]);
153
var
spanVm = CreateSpanWaterfallViewModel(span);
169
private static
SpanWaterfallViewModel
CreateSpanWaterfallViewModel(OtlpSpan span, List<SpanLogEntryViewModel>? spanLogs = null)