182 references to AspireDataType
Aspire.Dashboard (60)
Components\Dialogs\ManageDataDialog.razor.cs (38)
68private readonly HashSet<(string ResourceName, AspireDataType DataType)> _selectedRows = []; 210? new TelemetryDataRow { DataType = AspireDataType.ResourceDetails, Icon = new Icons.Regular.Size16.ContentView(), Url = DashboardUrls.ResourcesUrl(resource: resource.Name) } 211: CreateTelemetryDataRow(AspireDataType.ResourceDetails, resource.Name)); 214data.Add(CreateTelemetryDataRow(AspireDataType.ConsoleLogs, resource.Name)); 250data.Add(CreateTelemetryDataRow(AspireDataType.StructuredLogs, resourceName)); 255data.Add(CreateTelemetryDataRow(AspireDataType.Traces, resourceName)); 260data.Add(CreateTelemetryDataRow(AspireDataType.Metrics, resourceName)); 264private static TelemetryDataRow CreateTelemetryDataRow(AspireDataType dataType, string resourceName) 268AspireDataType.ResourceDetails => new TelemetryDataRow { DataType = AspireDataType.ResourceDetails, Icon = new Icons.Regular.Size16.ContentView(), Url = DashboardUrls.ResourceOverviewUrl(resourceName) }, 269AspireDataType.ConsoleLogs => new TelemetryDataRow { DataType = AspireDataType.ConsoleLogs, Icon = new Icons.Regular.Size16.SlideText(), Url = DashboardUrls.ConsoleLogsUrl(resource: resourceName) }, 270AspireDataType.StructuredLogs => new TelemetryDataRow { DataType = AspireDataType.StructuredLogs, Icon = new Icons.Regular.Size16.SlideTextSparkle(), Url = DashboardUrls.StructuredLogsUrl(resource: resourceName) }, 271AspireDataType.Traces => new TelemetryDataRow { DataType = AspireDataType.Traces, Icon = new Icons.Regular.Size16.GanttChart(), Url = DashboardUrls.TracesUrl(resource: resourceName) }, 272AspireDataType.Metrics => new TelemetryDataRow { DataType = AspireDataType.Metrics, Icon = new Icons.Regular.Size16.ChartMultiple(), Url = DashboardUrls.MetricsUrl(resource: resourceName) }, 367private string GetDataTypeDisplayName(AspireDataType dataType) => dataType switch 369AspireDataType.ResourceDetails => Loc[nameof(Resources.Dialogs.ManageDataResource)], 370AspireDataType.ConsoleLogs => Loc[nameof(Resources.Dialogs.ManageDataConsoleLogs)], 371AspireDataType.StructuredLogs => Loc[nameof(Resources.Dialogs.ManageDataStructuredLogs)], 372AspireDataType.Traces => Loc[nameof(Resources.Dialogs.ManageDataTraces)], 373AspireDataType.Metrics => Loc[nameof(Resources.Dialogs.ManageDataMetrics)], 428private void OnSelectDataRowClicked(string resourceName, AspireDataType dataType) 439private bool IsDataRowSelected(string resourceName, AspireDataType dataType) => _selectedRows.Contains((resourceName, dataType)); 466return !_selectedRows.Any(r => r.DataType is not AspireDataType.Resource); 476return _selectedRows.Contains((row.Name, AspireDataType.Resource)); 496return !_selectedRows.Contains((row.Name, AspireDataType.Resource)); 513private IconCheckboxState GetDataRowCheckboxState(string resourceName, AspireDataType dataType) => 516private bool IsSelectionAvailable((string ResourceName, AspireDataType DataType) selection) 524? selection.DataType is AspireDataType.Resource 562.Where(kvp => kvp.Value.Contains(AspireDataType.ConsoleLogs)) 657private Dictionary<string, HashSet<AspireDataType>> GetSelectedResourcesAndDataTypes() 659var result = new Dictionary<string, HashSet<AspireDataType>>(StringComparers.ResourceName); 680dataTypes.Add(AspireDataType.Resource); 690_selectedRows.Remove((resourceName, AspireDataType.Resource)); 694_selectedRows.Add((resourceName, AspireDataType.Resource));
Model\ManageData\TelemetryDataRow.cs (1)
16public required AspireDataType DataType { get; init; }
Model\TelemetryExportService.cs (7)
49Dictionary<string, HashSet<AspireDataType>> selectedResources, 60var hasResourceDetailsSelected = selectedResources.Any(kvp => kvp.Value.Contains(AspireDataType.ResourceDetails)); 67.Where(kvp => kvp.Value.Contains(AspireDataType.ResourceDetails) && resourcesByName.ContainsKey(kvp.Key)) 73.Where(kvp => kvp.Value.Contains(AspireDataType.ConsoleLogs)) 78.Where(r => selectedResources.TryGetValue(r.ResourceKey.GetCompositeName(), out var types) && types.Contains(AspireDataType.StructuredLogs)) 82.Where(r => selectedResources.TryGetValue(r.ResourceKey.GetCompositeName(), out var types) && types.Contains(AspireDataType.Traces)) 86.Where(r => selectedResources.TryGetValue(r.ResourceKey.GetCompositeName(), out var types) && types.Contains(AspireDataType.Metrics))
Otlp\Storage\ITelemetryRepositoryWriter.cs (1)
47Task ClearSelectedSignalsAsync(Dictionary<string, HashSet<AspireDataType>> selectedResources);
Otlp\Storage\SqliteTelemetryRepository.cs (1)
273public async Task ClearSelectedSignalsAsync(Dictionary<string, HashSet<AspireDataType>> selectedResources)
Otlp\Storage\SqliteTelemetryRepository.Logs.cs (3)
726private async Task ClearSelectedLogsFromDatabaseAsync(Dictionary<string, HashSet<AspireDataType>> selectedResources) 742if (dataTypes.Contains(AspireDataType.Resource)) 746else if (dataTypes.Contains(AspireDataType.StructuredLogs))
Otlp\Storage\SqliteTelemetryRepository.Metrics.Writes.cs (3)
876private async Task ClearSelectedMetricsFromDatabaseAsync(Dictionary<string, HashSet<AspireDataType>> selectedResources) 882if (selectedResources.TryGetValue(key.GetCompositeName(), out var dataTypes) && dataTypes.Contains(AspireDataType.Metrics) && !dataTypes.Contains(AspireDataType.Resource))
Otlp\Storage\SqliteTelemetryRepository.Runtime.cs (3)
110private void ClearUnviewedErrorCounts(Dictionary<string, HashSet<AspireDataType>> selectedResources) 117(dataTypes.Contains(AspireDataType.StructuredLogs) || dataTypes.Contains(AspireDataType.Resource)))
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (3)
993private async Task ClearSelectedTracesFromDatabaseAsync(Dictionary<string, HashSet<AspireDataType>> selectedResources) 1004dataTypes.Contains(AspireDataType.Traces) && 1005!dataTypes.Contains(AspireDataType.Resource))
Aspire.Dashboard.Components.Tests (44)
Layout\ResourceRowAvailabilityTests.cs (23)
132[InlineData(AspireDataType.StructuredLogs, "/structuredlogs", "/structuredlogs/resource/test-TestId")] 133[InlineData(AspireDataType.Traces, "/traces", "/traces/resource/test-TestId")] 134[InlineData(AspireDataType.Metrics, "/metrics", "/metrics/resource/test-TestId")] 135public async Task SignalAvailability_UpdatesWithoutChangingSelectionOrNavigation(AspireDataType signal, string url, string selectedUrl) 149AspireDataType.StructuredLogs => Resources.Layout.ResourcePaneNoStructuredLogs, 150AspireDataType.Traces => Resources.Layout.ResourcePaneNoTraces, 188[InlineData(AspireDataType.StructuredLogs, "/structuredlogs")] 189[InlineData(AspireDataType.Traces, "/traces")] 190public async Task RetentionEvictsLastItem_RestoresUnavailableStateWithoutChangingSelection(AspireDataType signal, string url) 192var reason = signal == AspireDataType.StructuredLogs ? Resources.Layout.ResourcePaneNoStructuredLogs : Resources.Layout.ResourcePaneNoTraces; 214if (signal == AspireDataType.StructuredLogs) 242Assert.True(signal == AspireDataType.StructuredLogs ? resource.HasLogs : resource.HasTraces); 247[InlineData(AspireDataType.StructuredLogs, false)] 248[InlineData(AspireDataType.Metrics, false)] 249[InlineData(AspireDataType.StructuredLogs, true)] 250[InlineData(AspireDataType.Metrics, true)] 251public async Task Peer_IsAvailableForTracesUntilItsOutgoingSpanIsCleared(AspireDataType? reportedSignal, bool reportAfterSpan) 311await repository.ClearSelectedSignalsAsync(new() { ["api-TestId"] = [AspireDataType.Traces] }); 322AspireDataType.StructuredLogs => repository.AddLogsAsync(new(), 330AspireDataType.Metrics => repository.AddMetricsAsync(new(), 396await TelemetryHelpSetupHelpers.AddSignalAsync(repository, AspireDataType.Metrics); 410await TelemetryHelpSetupHelpers.AddSignalAsync(repository, AspireDataType.StructuredLogs); 428await TelemetryHelpSetupHelpers.AddSignalAsync(Services.GetRequiredService<SqliteTelemetryRepository>(), AspireDataType.StructuredLogs);
Layout\ResourcesLayoutTests.cs (1)
2729await Services.GetRequiredService<SqliteTelemetryRepository>().ClearSelectedSignalsAsync(new() { ["worker"] = [AspireDataType.Resource] });
Pages\MetricsTests.cs (4)
44[InlineData(AspireDataType.StructuredLogs)] 45[InlineData(AspireDataType.Traces)] 46[InlineData(AspireDataType.Metrics)] 47public async Task EmptyState_HelpDisappearsAfterAnySignalAndStaysHiddenAfterClear(AspireDataType signal)
Pages\ResourceOverviewEmptyPanelsTests.cs (4)
345[InlineData(AspireDataType.StructuredLogs, "overview-logs-title")] 346[InlineData(AspireDataType.Traces, "overview-traces-title")] 347[InlineData(AspireDataType.Metrics, "overview-metrics-title")] 348public async Task HiddenTelemetryPanels_AppearWhileLoadingAndKeepReceivedSignals(AspireDataType signal, string expectedPanel)
Pages\StructuredLogsTests.cs (4)
36[InlineData(AspireDataType.StructuredLogs)] 37[InlineData(AspireDataType.Traces)] 38[InlineData(AspireDataType.Metrics)] 39public async Task EmptyState_HelpDisappearsAfterAnySignalAndStaysHiddenAfterClear(AspireDataType signal)
Pages\TracesTests.cs (4)
32[InlineData(AspireDataType.StructuredLogs)] 33[InlineData(AspireDataType.Traces)] 34[InlineData(AspireDataType.Metrics)] 35public async Task EmptyState_HelpDisappearsAfterAnySignalAndStaysHiddenAfterClear(AspireDataType signal)
Shared\TelemetryHelpSetupHelpers.cs (4)
38public static Task AddSignalAsync(ITelemetryRepositoryWriter repository, AspireDataType signal) => signal switch 40AspireDataType.StructuredLogs => repository.AddLogsAsync(new(), 48AspireDataType.Traces => repository.AddTracesAsync(new(), 56AspireDataType.Metrics => repository.AddMetricsAsync(new(),
Aspire.Dashboard.Playwright.Tests (25)
Integration\Playwright\ResourcePanelNavigationTests.cs (25)
177[InlineData(AspireDataType.StructuredLogs)] 178[InlineData(AspireDataType.Traces)] 180public async Task ExistingTelemetry_RemainsVisibleWhenAllResourcesViewReloads(AspireDataType signal) 189AspireDataType.StructuredLogs => ("structuredlogs", "Existing sidebar log"), 190AspireDataType.Traces => ("traces", "Test span. Id: preloaded-span"), 195AspireDataType.StructuredLogs => writer.AddLogsAsync(new(), 203AspireDataType.Traces => writer.AddTracesAsync(new(), 233[InlineData(390, AspireDataType.StructuredLogs)] 234[InlineData(768, AspireDataType.StructuredLogs)] 235[InlineData(1440, AspireDataType.StructuredLogs)] 236[InlineData(390, AspireDataType.Traces)] 237[InlineData(768, AspireDataType.Traces)] 238[InlineData(1440, AspireDataType.Traces)] 239[InlineData(390, AspireDataType.Metrics)] 240[InlineData(768, AspireDataType.Metrics)] 241[InlineData(1440, AspireDataType.Metrics)] 243public async Task UnavailableRows_RemainInteractiveAndUpdateWhenSignalsArriveAndClear(int width, AspireDataType signal) 248AspireDataType.StructuredLogs => ("structuredlogs", Resources.Layout.ResourcePaneNoStructuredLogs), 249AspireDataType.Traces => ("traces", Resources.Layout.ResourcePaneNoTraces), 250AspireDataType.Metrics => ("metrics", Resources.Layout.ResourcePaneNoMetrics), 254if (signal == AspireDataType.StructuredLogs) 311AspireDataType.StructuredLogs => writer.AddLogsAsync(new(), 319AspireDataType.Traces => writer.AddTracesAsync(new(), 327AspireDataType.Metrics => writer.AddMetricsAsync(new(), 348if (width > 768 && signal == AspireDataType.StructuredLogs)
Aspire.Dashboard.Tests (53)
Model\TelemetryExportServiceTests.cs (16)
697var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 699["resource1-111"] = [AspireDataType.StructuredLogs], 700["resource2-222"] = [AspireDataType.Traces], 701["resource3-333"] = [AspireDataType.StructuredLogs, AspireDataType.Traces, AspireDataType.Metrics] 819var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 821["LargeService-instance-1"] = [AspireDataType.StructuredLogs] 870var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 872["LargeService-instance-1"] = [AspireDataType.Traces] 1278private static Dictionary<string, HashSet<AspireDataType>> BuildAllResourcesSelection(ITelemetryRepository repository) 1283_ => new HashSet<AspireDataType>([AspireDataType.ConsoleLogs, AspireDataType.StructuredLogs, AspireDataType.Traces, AspireDataType.Metrics]));
TelemetryRepositoryTests\TelemetryReceiptTests.cs (20)
23[InlineData(AspireDataType.StructuredLogs)] 24[InlineData(AspireDataType.Traces)] 25[InlineData(AspireDataType.Metrics)] 26public async Task AcceptedTelemetry_RemainsReceivedAfterRemoval(AspireDataType signal) 43[repository.GetResources().Single().ResourceKey.GetCompositeName()] = [AspireDataType.Resource, AspireDataType.StructuredLogs, AspireDataType.Traces, AspireDataType.Metrics] 69[InlineData(AspireDataType.StructuredLogs)] 70[InlineData(AspireDataType.Traces)] 71[InlineData(AspireDataType.Metrics)] 72public async Task PausedTelemetry_DoesNotCountAsReceived(AspireDataType signal) 120await Assert.ThrowsAsync<SqliteException>(() => AddSignalAsync(context.Repository, AspireDataType.StructuredLogs)); 132AddSignalAsync(context.Repository, AspireDataType.StructuredLogs), 133AddSignalAsync(context.Repository, AspireDataType.Traces), 134AddSignalAsync(context.Repository, AspireDataType.Metrics)); 139private static Task AddSignalAsync(SqliteTelemetryRepository repository, AspireDataType signal) => signal switch 141AspireDataType.StructuredLogs => repository.AddLogsAsync(new(), 149AspireDataType.Traces => repository.AddTracesAsync(new(), 157AspireDataType.Metrics => repository.AddMetricsAsync(new(),
TelemetryRepositoryTests\TelemetryRepositoryTests.cs (15)
222var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 224["resource1-123"] = [AspireDataType.StructuredLogs] 269var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 271["resource2-222"] = [AspireDataType.StructuredLogs, AspireDataType.Traces, AspireDataType.Metrics, AspireDataType.Resource] 309var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 311["resource1-123"] = [AspireDataType.StructuredLogs, AspireDataType.Traces, AspireDataType.Metrics, AspireDataType.Resource] 340var selectedResources = new Dictionary<string, HashSet<AspireDataType>> 342["resource1-123"] = [AspireDataType.StructuredLogs, AspireDataType.Traces]
TelemetryRepositoryTests\TraceTests.cs (2)
4990await repositoryContext.Repository.AsWriter().ClearSelectedSignalsAsync(new Dictionary<string, HashSet<AspireDataType>> 4992[new ResourceKey("frontend", "TestId").GetCompositeName()] = [AspireDataType.Resource]