2 instantiations of SpanWaterfallViewModel
Aspire.Dashboard (1)
Model\Otlp\SpanWaterfallViewModel.cs (1)
107
var viewModel = new
SpanWaterfallViewModel
Aspire.Dashboard.Tests (1)
Model\TraceDetailPageViewModelTests.cs (1)
171
return new
SpanWaterfallViewModel
147 references to SpanWaterfallViewModel
Aspire.Dashboard (119)
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\Legacy\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)
Components\Pages\TraceDetail.razor.cs (53)
46
private AspireFluentDataGrid<
SpanWaterfallViewModel
> _dataGrid = null!;
171
internal ValueTask<GridItemsProviderResult<
SpanWaterfallViewModel
>> GetData(GridItemsProviderRequest<
SpanWaterfallViewModel
> request)
183
return ValueTask.FromResult(new GridItemsProviderResult<
SpanWaterfallViewModel
>
190
private IEnumerable<
SpanWaterfallViewModel
> GetVisibleSpanViewModels()
261
var
spanVm = PageViewModel.SpanWaterfallViewModels.SingleOrDefault(vm => vm.Span.SpanId == SpanId);
352
PageViewModel.SpanWaterfallViewModels =
SpanWaterfallViewModel
.Create(trace, result, new
SpanWaterfallViewModel
.TraceDetailState(_collapsedSpanIds, resources));
417
private string GetRowClass(
SpanWaterfallViewModel
viewModel)
434
private async Task OnToggleCollapse(
SpanWaterfallViewModel
viewModel)
440
private void SetSpanCollapsedState(
SpanWaterfallViewModel
viewModel, bool isCollapsed)
467
private async Task OnShowPropertiesAsync(
SpanWaterfallViewModel
viewModel, string? focusElementId)
528
foreach (
var
viewModel in PageViewModel.SpanWaterfallViewModels)
547
foreach (
var
viewModel in PageViewModel.SpanWaterfallViewModels)
578
private static bool IsGenAISpan(
SpanWaterfallViewModel
spanViewModel)
596
foreach (
var
vm in visibleSpanViewModels.Where(IsGenAISpan))
792
public List<
SpanWaterfallViewModel
>? SpanWaterfallViewModels { get; set; }
802
public bool IsSelectedDataExcludedByFilters(IEnumerable<
SpanWaterfallViewModel
> visibleSpans)
822
internal static IEnumerable<
SpanWaterfallViewModel
> ApplySpanFilters(
823
IReadOnlyList<
SpanWaterfallViewModel
> spanWaterfallViewModels,
846
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
>? parentMap = null;
871
var finalVisible = new HashSet<
SpanWaterfallViewModel
>(directMatches);
873
foreach (
var
match in directMatches)
875
var
current = match;
876
while (GetParentMap().TryGetValue(current, out
var
parent) && visibleViewModels.Contains(parent) && finalVisible.Add(parent))
884
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> GetParentMap()
890
private static HashSet<
SpanWaterfallViewModel
> BuildContextVisibleSet(
891
IReadOnlyList<
SpanWaterfallViewModel
> spanWaterfallViewModels,
893
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> parentMap)
895
var visibleViewModels = new HashSet<
SpanWaterfallViewModel
>();
897
foreach (
var
viewModel in spanWaterfallViewModels)
917
private static Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> BuildParentMap(IReadOnlyList<
SpanWaterfallViewModel
> spans)
919
var map = new Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
>();
920
foreach (
var
parent in spans)
922
foreach (
var
child in parent.Children)
932
SpanWaterfallViewModel
match,
933
HashSet<
SpanWaterfallViewModel
> visibleViewModels,
934
Dictionary<
SpanWaterfallViewModel
,
SpanWaterfallViewModel
> parentMap)
942
var
current = match;
943
while (parentMap.TryGetValue(current, out
var
parent))
954
private static void AddVisibleDescendents(
SpanWaterfallViewModel
match, HashSet<
SpanWaterfallViewModel
> visibleViewModels)
956
var stack = new Stack<
SpanWaterfallViewModel
>();
957
foreach (
var
child in match.Children)
964
var
current = stack.Pop();
970
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; }
40
foreach (
var
child in Children)
46
private readonly record struct SpanWaterfallViewModelState(
SpanWaterfallViewModel
? Parent, int Depth, bool Hidden);
55
public static List<
SpanWaterfallViewModel
> Create(OtlpTrace trace, List<LogSummary> logs, TraceDetailState state)
57
var orderedSpans = new List<
SpanWaterfallViewModel
>();
63
var
viewModel = CreateViewModel(span, s.Depth, s.Hidden, state, spanLogs);
73
static
SpanWaterfallViewModel
CreateViewModel(OtlpSpan span, int depth, bool hidden, TraceDetailState state, List<LogSummary>? spanLogs)
107
var
viewModel = new SpanWaterfallViewModel
Model\SpanDetailsViewModel.cs (1)
56
Title =
SpanWaterfallViewModel
.GetTitle(span, resources),
Aspire.Dashboard.Components.Tests (13)
Pages\TraceDetailsTests.cs (13)
151
Assert.Single(cut.FindComponents<FluentDataGrid<
SpanWaterfallViewModel
>>());
291
cut.WaitForAssertion(() => Assert.Equal(2, cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>().FindAll(".fluent-data-grid-row").Count));
405
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
419
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
473
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
500
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
555
var grid = cut.FindComponent<FluentDataGrid<
SpanWaterfallViewModel
>>();
646
var data = await cut.InvokeAsync(() => cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>()).AsTask());
668
var viewModels =
SpanWaterfallViewModel
.Create(trace, [], new
SpanWaterfallViewModel
.TraceDetailState([], [resource]));
742
var unfilteredData = await cut.InvokeAsync(() => cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>()).AsTask());
869
var unfilteredData = await cut.InvokeAsync(() => cut.Instance.GetData(new GridItemsProviderRequest<
SpanWaterfallViewModel
>()).AsTask());
991
var result = 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)