7 writes to Items
Aspire.Dashboard (7)
Otlp\Model\OtlpHelpers.cs (1)
493
Items
= items,
Otlp\Storage\PagedResult.cs (1)
11
Items
= new List<T>(),
Otlp\Storage\SqliteTelemetryRepository.Logs.cs (2)
271
Items
= MaterializeLogs(connection, records),
384
Items
= records
Otlp\Storage\SqliteTelemetryRepository.Traces.Reads.cs (3)
49
Items
= traces,
167
Items
= summaries,
409
Items
= identities.Select(identity => traces[identity.TraceId].Spans.Single(span => span.SpanId == identity.SpanId)).ToList(),
217 references to Items
Aspire.Dashboard (18)
Api\TelemetryApiService.cs (3)
55
var allSpans = result.PagedResult.
Items
;
115
var traces = result.PagedResult.
Items
;
217
var logs = result.
Items
;
Components\Pages\StructuredLogs.razor.cs (2)
167
return GridItemsProviderResult.From(logs.
Items
, virtualizedLogCount);
622
return matchingLogs.
Items
.Count == 0;
Components\Pages\TraceDetail.razor.cs (2)
293
}, _cts.Token)).
Items
;
659
return response.PagedResult.
Items
.Select(span => span.SpanId).ToHashSet(StringComparer.Ordinal);
Components\Pages\Traces.razor.cs (1)
171
return GridItemsProviderResult.From(traces.
Items
, virtualizedTraceCount);
Model\GenAI\GenAIVisualizerDialogViewModel.cs (1)
614
return logsResult.
Items
;
Model\StructuredLogsViewModel.cs (1)
95
_currentDataHasErrors = logs.
Items
.Any(i => i.Severity >= Microsoft.Extensions.Logging.LogLevel.Error);
Model\TelemetryExportService.cs (4)
160
if (logs.
Items
.Count == 0)
166
exportArchive.StructuredLogs[resourceName] = ConvertLogsToOtlpJson(logs.
Items
);
176
if (tracesResponse.PagedResult.
Items
.Count == 0)
182
exportArchive.Traces[resourceName] = ConvertTracesToOtlpJson(tracesResponse.PagedResult.
Items
);
Otlp\Storage\SqliteTelemetryRepository.cs (2)
194
return result.
Items
;
208
return result.
Items
;
Otlp\Storage\SqliteTelemetryRepository.Runtime.cs (2)
247
foreach (var span in existingSpans.PagedResult.
Items
.OrderBy(span => span.StartTime))
302
foreach (var log in existingLogs.
Items
)
Aspire.Dashboard.Components.Tests (3)
Controls\GenAIVisualizerDialogTests.cs (2)
216
var trace = tracesResult.PagedResult.
Items
[0];
300
var trace = tracesResult.PagedResult.
Items
[0];
Pages\TraceDetailsTests.cs (1)
997
return response.PagedResult.
Items
.Select(span => span.SpanId).ToHashSet(StringComparer.Ordinal);
Aspire.Dashboard.Tests (196)
Integration\OtlpHttpJsonTests.cs (6)
534
Assert.NotEmpty(traces.PagedResult.
Items
);
536
var trace = traces.PagedResult.
Items
.First();
594
Assert.NotEmpty(logs.
Items
);
596
var log = logs.
Items
.First();
671
Assert.NotEmpty(logs.
Items
);
673
var log = logs.
Items
.First();
Model\DashboardDataSourceTests.cs (1)
1119
}, cancellationToken: CancellationToken.None)).
Items
).Message);
Model\StructuredLogsPageViewModelTests.cs (1)
258
return new StructureLogsDetailsViewModel { LogEntry = Assert.Single(logs.
Items
) };
Model\TelemetryExportServiceTests.cs (17)
69
var result = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
131
var result = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
139
Assert.Equal(logs.
Items
[0].InternalId.ToString(CultureInfo.InvariantCulture), logIdAttribute.Value?.StringValue);
179
var result = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
252
var result = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
306
var result = TelemetryExportService.ConvertTracesToOtlpJson(traces.PagedResult.
Items
);
373
var result = TelemetryExportService.ConvertTracesToOtlpJson(traces.PagedResult.
Items
);
420
traces.PagedResult.
Items
[0].Spans[0].SetUninstrumentedPeer(new OtlpResource(
427
var result = TelemetryExportService.ConvertTracesToOtlpJson(traces.PagedResult.
Items
);
471
var result = TelemetryExportService.ConvertTracesToOtlpJson(traces.PagedResult.
Items
);
1054
var span = (await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).PagedResult.
Items
[0].Spans[0];
1107
var span = (await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).PagedResult.
Items
[0].Spans[0];
1108
var logs = (await repositoryContext.Repository.GetLogsAsync(GetLogsContext.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).
Items
;
1168
var trace = (await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).PagedResult.
Items
[0];
1169
var logs = (await repositoryContext.Repository.GetLogsAsync(GetLogsContext.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).
Items
;
1210
var trace = (await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).PagedResult.
Items
[0];
1247
var logEntry = (await repositoryContext.Repository.GetLogsAsync(GetLogsContext.ForResourceKey(repositoryContext.Repository.GetResources()[0].ResourceKey), cancellationToken: CancellationToken.None)).
Items
[0];
Model\TelemetryImportServiceTests.cs (15)
93
Assert.Single(logs.
Items
);
94
Assert.Equal("Test log message", logs.
Items
[0].Message);
118
Assert.Single(traces.PagedResult.
Items
);
325
var exportedJson = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
345
Assert.Single(importedLogs.
Items
);
346
Assert.Equal("Round trip test", importedLogs.
Items
[0].Message);
347
Assert.Equal(Microsoft.Extensions.Logging.LogLevel.Warning, importedLogs.
Items
[0].Severity);
376
var originalInternalId = logs.
Items
[0].InternalId;
379
var exportedJson = TelemetryExportService.ConvertLogsToOtlpJson(logs.
Items
);
417
Assert.Single(importedLogs.
Items
);
420
Assert.DoesNotContain(importedLogs.
Items
[0].Attributes, a => a.Key == OtlpHelpers.AspireLogIdAttribute);
423
Assert.NotEqual(originalInternalId, importedLogs.
Items
[0].InternalId);
426
Assert.Contains(importedLogs.
Items
[0].Attributes, a => a.Key == "custom.attr" && a.Value == "custom-value");
457
var exportedJson = TelemetryExportService.ConvertTracesToOtlpJson(traces.PagedResult.
Items
);
476
Assert.Single(importedTraces.PagedResult.
Items
);
TelemetryRepositoryTests\LogTests.cs (34)
74
Assert.Collection(logs.
Items
,
190
Assert.Collection(summaries.
Items
,
193
var log = logs.
Items
[0];
229
Assert.Collection(latestSummaries.
Items
,
240
Assert.Collection(latestLogs.
Items
,
267
Assert.Equal("direct", Assert.Single(filtered.
Items
).Message);
277
Assert.Empty(emptyPage.
Items
);
287
Assert.Empty(emptyLogsPage.
Items
);
323
}, cancellationToken: CancellationToken.None)).
Items
;
381
Assert.Collection(logs.
Items
,
433
Assert.Collection(logs.
Items
,
683
Assert.Empty(logs.
Items
);
779
Assert.Single(logs.
Items
);
921
Assert.Collection(logs.
Items
,
1068
}, cancellationToken: CancellationToken.None)).
Items
);
1076
}, cancellationToken: CancellationToken.None)).
Items
);
1115
var log = Assert.Single(result.
Items
);
1155
}, cancellationToken: CancellationToken.None)).
Items
);
1163
}, cancellationToken: CancellationToken.None)).
Items
);
1225
Assert.Collection(logs1.
Items
,
1248
Assert.Collection(logs2.
Items
,
1324
Assert.Collection(logs.
Items
,
1415
Assert.Empty(logs.
Items
);
1480
Assert.Collection(logs.
Items
,
1554
var log = Assert.Single(logs.
Items
);
1593
Assert.Collection(logs.
Items
,
1634
Assert.Collection(logs.
Items
,
1675
Assert.Collection(logs.
Items
,
1718
Assert.Collection(logs.
Items
,
1760
Assert.Collection(logs.
Items
,
1820
Assert.Single(logs.
Items
);
1821
Assert.Equal("matching log", logs.
Items
[0].Message);
1879
}, cancellationToken: CancellationToken.None)).
Items
;
1952
}, cancellationToken: CancellationToken.None)).
Items
;
TelemetryRepositoryTests\SqliteTelemetryPersistenceTests.cs (6)
110
var log = Assert.Single((await repositoryContext.Repository.GetLogsAsync(CreateLogsContext(), cancellationToken: CancellationToken.None)).
Items
);
111
var span = Assert.Single(Assert.Single((await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(cachedResource.ResourceKey), cancellationToken: CancellationToken.None)).PagedResult.
Items
).Spans);
293
var log = Assert.Single((await repositoryContext.Repository.GetLogsAsync(CreateLogsContext(), cancellationToken: CancellationToken.None)).
Items
);
299
var log = Assert.Single((await historicalContext.Repository.GetLogsAsync(CreateLogsContext(), cancellationToken: CancellationToken.None)).
Items
);
357
var trace = Assert.Single((await repositoryContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(new ResourceKey("TestService", "TestId")), cancellationToken: CancellationToken.None)).PagedResult.
Items
);
363
var trace = Assert.Single((await historicalContext.Repository.GetTracesAsync(GetTracesRequest.ForResourceKey(new ResourceKey("TestService", "TestId")), cancellationToken: CancellationToken.None)).PagedResult.
Items
);
TelemetryRepositoryTests\TelemetryRepositoryTests.cs (18)
42
Assert.Empty((await repositoryContext.Repository.GetLogsAsync(new GetLogsContext { ResourceKeys = [resourceKey], Count = 100, Filters = [], StartIndex = 0 }, cancellationToken: CancellationToken.None)).
Items
);
44
Assert.Empty((await repositoryContext.Repository.GetTracesAsync(new GetTracesRequest { ResourceKeys = [resourceKey], Count = 100, Filters = [], StartIndex = 0 }, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
53
Assert.Single((await repositoryContext.Repository.GetLogsAsync(new GetLogsContext { ResourceKeys = [resourceKey], Count = 100, Filters = [], StartIndex = 0 }, cancellationToken: CancellationToken.None)).
Items
);
57
Assert.Single((await repositoryContext.Repository.GetTracesAsync(new GetTracesRequest { ResourceKeys = [resourceKey], Count = 100, Filters = [], StartIndex = 0 }, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
234
Assert.Single(logs.
Items
);
235
Assert.Equal("log-resource2-456", logs.
Items
[0].Message);
246
Assert.Single(resource2Logs.
Items
);
247
Assert.Equal("log-resource2-456", resource2Logs.
Items
[0].Message);
250
Assert.Single(resource2Traces.PagedResult.
Items
);
276
Assert.Contains(logs.
Items
, l => l.Message == "log-resource1-111");
277
Assert.Contains(logs.
Items
, l => l.Message == "log-resource3-333");
278
Assert.DoesNotContain(logs.
Items
, l => l.Message == "log-resource2-222");
319
Assert.Empty(logs.
Items
);
322
Assert.Empty(traces.PagedResult.
Items
);
350
Assert.Empty(logs.
Items
);
353
Assert.Empty(traces.PagedResult.
Items
);
843
Assert.Collection(traces.PagedResult.
Items
,
867
Assert.Collection(result.PagedResult.
Items
,
TelemetryRepositoryTests\TraceTests.cs (98)
87
Assert.Collection(traces.PagedResult.
Items
,
180
var summary = Assert.Single(summaries.PagedResult.
Items
);
213
var latestSummary = Assert.Single(latestSummaries.PagedResult.
Items
);
217
var latestTrace = Assert.Single(latestTraces.PagedResult.
Items
);
230
Assert.Empty(emptyPage.PagedResult.
Items
);
306
var traces = (await repositoryContext.Repository.GetTracesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
;
307
var summaries = (await repositoryContext.Repository.GetTraceSummariesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
;
370
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
418
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
491
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
558
Assert.Empty(traces.PagedResult.
Items
);
612
Assert.Collection(traces.PagedResult.
Items
,
670
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
723
Assert.Collection(traces.PagedResult.
Items
,
793
Assert.Collection(traces.PagedResult.
Items
,
869
Assert.Collection(traces1.PagedResult.
Items
,
910
Assert.Collection(traces2.PagedResult.
Items
,
964
Assert.Collection(traces.PagedResult.
Items
,
1032
Assert.Collection(traces.PagedResult.
Items
,
1108
Assert.Collection(traces.PagedResult.
Items
,
1174
Assert.Collection(traces1.PagedResult.
Items
,
1189
Assert.NotSame(traces1.PagedResult.
Items
[0], traces2.PagedResult.
Items
[0]);
1190
Assert.NotSame(traces1.PagedResult.
Items
[0].Spans[0].Trace, traces2.PagedResult.
Items
[0].Spans[0].Trace);
1257
var trace = Assert.Single(traces.PagedResult.
Items
);
1309
var trace = Assert.Single(traces.PagedResult.
Items
);
1381
var actualOrder = traces.PagedResult.
Items
.Select(t => t.TraceId).ToList();
1390
Assert.Equal(MaxTraceCount * 2, traces.PagedResult.
Items
.SelectMany(t => t.Spans).SelectMany(s => s.Links).Count());
1484
Assert.Collection(traces.PagedResult.
Items
,
1553
Assert.Collection(traces.PagedResult.
Items
,
1645
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
;
1713
Assert.Collection(traces.PagedResult.
Items
,
1731
Assert.Collection(traces.PagedResult.
Items
,
1750
Assert.Empty(traces.PagedResult.
Items
);
1803
Assert.Empty(traces.PagedResult.
Items
);
1818
Assert.Collection(traces.PagedResult.
Items
,
1874
Assert.Collection(traces.PagedResult.
Items
,
1927
Assert.Single(traces.PagedResult.
Items
);
1939
Assert.Empty(traces.PagedResult.
Items
);
1979
Assert.Collection(traces.PagedResult.
Items
,
2022
var trace = Assert.Single((await repositoryContext.Repository.GetTracesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
2047
trace = Assert.Single((await repositoryContext.Repository.GetTracesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
2072
trace = Assert.Single((await repositoryContext.Repository.GetTracesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
2097
trace = Assert.Single((await repositoryContext.Repository.GetTracesAsync(request, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
2202
var trace = Assert.Single(traces.PagedResult.
Items
);
2320
Assert.NotNull(traces?.PagedResult?.
Items
);
2321
Assert.Empty(traces.PagedResult.
Items
);
2398
Assert.NotNull(traces?.PagedResult?.
Items
);
2401
Assert.Collection(traces.PagedResult.
Items
,
2503
Assert.NotNull(traces?.PagedResult?.
Items
);
2504
var trace = Assert.Single(traces.PagedResult.
Items
);
2594
Assert.NotNull(traces?.PagedResult?.
Items
);
2595
var trace = Assert.Single(traces.PagedResult.
Items
);
2667
var trace = Assert.Single(traces.PagedResult.
Items
);
2760
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
2860
Assert.Empty(traces.PagedResult.
Items
);
2928
var trace = Assert.Single(traces.PagedResult.
Items
);
2969
trace = Assert.Single(traces.PagedResult.
Items
);
3082
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
3090
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
3176
Assert.Equal(3, result.PagedResult.
Items
.Count);
3218
Assert.All(result.PagedResult.
Items
, s => AssertId("1", s.TraceId));
3253
var span = Assert.Single(result.PagedResult.
Items
);
3295
AssertId("1-1", result.PagedResult.
Items
[0].SpanId);
3336
AssertId("1-2", result.PagedResult.
Items
[0].SpanId);
3385
Assert.Equal(expectedTraceIds.Length, result.PagedResult.
Items
.Count);
3388
AssertId(expectedTraceIds[index], result.PagedResult.
Items
[index].TraceId);
3446
AssertId("1-1", result.PagedResult.
Items
[0].SpanId);
3503
Assert.Equal(expectedCount, result.PagedResult.
Items
.Count);
3553
AssertId("1-1", result.PagedResult.
Items
[0].SpanId);
3594
AssertId("1-1", result.PagedResult.
Items
[0].SpanId);
3682
AssertId(expectedMatch.SpanId, Assert.Single(result.PagedResult.
Items
).SpanId);
3750
AssertId("1-1", Assert.Single(fieldResult.PagedResult.
Items
).SpanId);
3752
AssertId("1-1", Assert.Single(textResult.PagedResult.
Items
).SpanId);
3793
Assert.Single(result.PagedResult.
Items
);
3794
AssertId("1-2", result.PagedResult.
Items
[0].SpanId);
3837
AssertId("1-1", result.PagedResult.
Items
[0].SpanId);
3857
Assert.Empty(result.PagedResult.
Items
);
3896
Assert.Empty(result.PagedResult.
Items
);
3997
Assert.Contains("span1", result.PagedResult.
Items
[0].Name);
4050
Assert.Empty(traces.PagedResult.
Items
);
4100
Assert.Collection(traces.PagedResult.
Items
,
4151
Assert.Empty(traces.PagedResult.
Items
);
4236
Assert.Collection(traces.PagedResult.
Items
,
4292
Assert.Collection(traces.PagedResult.
Items
,
4345
Assert.Empty(traces.PagedResult.
Items
);
4401
Assert.Contains(result.PagedResult.
Items
, s => GetStringId(s.SpanId) == "1-2");
4402
Assert.Contains(result.PagedResult.
Items
, s => GetStringId(s.SpanId) == "1-3");
4474
Assert.Collection(traces.PagedResult.
Items
,
4498
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4523
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4556
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4585
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4624
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4781
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4843
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);
4916
}, cancellationToken: CancellationToken.None)).PagedResult.
Items
);