3 instantiations of OtlpLogEntry
Aspire.Dashboard (1)
Otlp\Storage\TelemetryRepository.cs (1)
349var logEntry = new OtlpLogEntry(record, resourceView, scope, _otlpContext);
Aspire.Dashboard.Components.Tests (1)
Controls\StructuredLogDetailsTests.cs (1)
35LogEntry = new OtlpLogEntry(
Aspire.Dashboard.Tests (1)
Model\SpanWaterfallViewModelTests.cs (1)
60var log = new OtlpLogEntry(TelemetryTestHelpers.CreateLogRecord(traceId: trace.TraceId, spanId: "1"), app1View, scope, context);
119 references to OtlpLogEntry
Aspire.Dashboard (115)
Components\Controls\PropertyValues\LogLevelValue.razor.cs (1)
18public required OtlpLogEntry LogEntry { get; set; }
Components\Controls\StructuredLogActions.razor.cs (1)
51public required OtlpLogEntry LogEntry { get; set; }
Components\Pages\StructuredLogs.razor.cs (8)
50private FluentDataGrid<OtlpLogEntry>? _dataGrid; 132private async ValueTask<GridItemsProviderResult<OtlpLogEntry>> GetData(GridItemsProviderRequest<OtlpLogEntry> request) 263var logEntryId = TelemetryRepository.GetLog(LogEntryId.Value); 310private async Task OnShowPropertiesAsync(OtlpLogEntry entry, string? buttonId) 420private string GetRowClass(OtlpLogEntry entry) 447if (_dataGrid != null && FluentDataGridHelper<OtlpLogEntry>.TrySetMaxItemCount(_dataGrid, 10_000)) 544private async Task LaunchGenAIVisualizerAsync(OtlpLogEntry logEntry)
Components\Pages\TraceDetail.razor.cs (1)
530private async Task ToggleSpanLogsAsync(OtlpLogEntry logEntry)
Components\ResourcesGridColumns\LogMessageColumnDisplay.razor.cs (3)
12public required OtlpLogEntry LogEntry { get; set; } 18public required EventCallback<OtlpLogEntry> LaunchGenAIVisualizerCallback { get; set; } 24_exceptionText = OtlpLogEntry.GetExceptionText(LogEntry);
Components_Pages_StructuredLogs_razor.g.cs (35)
1119OtlpLogEntry 1125__builder4.AddComponentParameter(117, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1142__builder4.AddComponentParameter(118, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1159__builder4.AddComponentParameter(119, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1176__builder4.AddComponentParameter(120, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1193__builder4.AddComponentParameter(121, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1210__builder4.AddComponentParameter(122, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1218), (global::System.Func<OtlpLogEntry, global::System.String>)( 1227__builder4.AddComponentParameter(123, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1244__builder4.AddComponentParameter(124, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1261__builder4.AddComponentParameter(125, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1278__builder4.AddComponentParameter(126, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1295__builder4.AddComponentParameter(127, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1312__builder4.AddComponentParameter(128, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1320), (global::Microsoft.FluentUI.AspNetCore.Components.GridItemsProvider<OtlpLogEntry>)( 1329__builder4.AddComponentParameter(129, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1346__builder4.AddComponentParameter(130, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1363__builder4.AddComponentParameter(131, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1371), (global::System.Func<OtlpLogEntry, global::System.Object>)( 1380__builder4.AddComponentParameter(132, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1388), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Microsoft.AspNetCore.Components.EventCallback<global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow<OtlpLogEntry>>>(global::Microsoft.AspNetCore.Components.EventCallback.Factory.Create<global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow<OtlpLogEntry>>(this, 1397__builder4.AddComponentParameter(133, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1407global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_3(__builder5, 135, default(OtlpLogEntry)!, 136, 1471global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_4(__builder5, 147, default(OtlpLogEntry)!, 148, 1505), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1518global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_5(__builder5, 155, default(OtlpLogEntry)!, 156, 1570global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_6(__builder5, 164, default(OtlpLogEntry)!, 165, 1621), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1638), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Microsoft.AspNetCore.Components.EventCallback<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>>(global::Microsoft.AspNetCore.Components.EventCallback.Factory.Create<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>(this, 1651global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_7(__builder5, 174, default(OtlpLogEntry)!, 175, 1745global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_8(__builder5, 187, default(OtlpLogEntry)!, 188, 1809), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1871= (global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>)__value;
Components_ResourcesGridColumns_LogLevelColumnDisplay_razor.g.cs (1)
305public required OtlpLogEntry LogEntry { get; set; }
Model\Assistant\AIHelpers.cs (7)
313public static (string json, string limitMessage) GetStructuredLogsJson(List<OtlpLogEntry> errorLogs, DashboardOptions options, bool includeDashboardUrl = false, Func<OtlpResource, string>? getResourceName = null) 327internal static string GetStructuredLogJson(OtlpLogEntry l, DashboardOptions options, bool includeDashboardUrl = false, Func<OtlpResource, string>? getResourceName = null) 335public static object GetLogEntryDto(OtlpLogEntry l, PromptContext context, DashboardOptions options, bool includeDashboardUrl = false, Func<OtlpResource, string>? getResourceName = null) 337var exceptionText = OtlpLogEntry.GetExceptionText(l); 348.Where(l => l.Key is not (OtlpLogEntry.ExceptionStackTraceField or OtlpLogEntry.ExceptionMessageField or OtlpLogEntry.ExceptionTypeField))
Model\Assistant\AssistantChatDataContext.cs (3)
29private readonly ConcurrentDictionary<long, OtlpLogEntry> _referencedLogs = new(); 340public void AddReferencedLogEntry(OtlpLogEntry logEntry) 345public bool TryGetLog(long internalId, [NotNullWhen(true)] out OtlpLogEntry? logEntry)
Model\Assistant\Markdown\AspireEnrichmentParser.cs (1)
183if (_options.DataContext.TryGetLog(result, out var logEntry))
Model\Assistant\Markdown\LogEntryInline.cs (1)
11public required OtlpLogEntry LogEntry { get; init; }
Model\Assistant\Prompts\IceBreakersBuilder.cs (5)
136public void StructuredLogs(BuildIceBreakersContext context, Func<PagedResult<OtlpLogEntry>> getCurrentLogs, bool hasErrors, Func<PagedResult<OtlpLogEntry>> getErrorLogs) 168public void StructuredLogs(BuildIceBreakersContext context, OtlpResource resource, Func<PagedResult<OtlpLogEntry>> getCurrentLogs, bool hasErrors, Func<PagedResult<OtlpLogEntry>> getErrorLogs) 200public void StructuredLogs(BuildIceBreakersContext context, OtlpLogEntry logEntry)
Model\Assistant\Prompts\KnownChatMessages.cs (4)
179public static ChatMessage CreateErrorStructuredLogsMessage(List<OtlpLogEntry> errorLogs, DashboardOptions options) 197public static ChatMessage CreateAnalyzeLogEntryMessage(OtlpLogEntry logEntry, DashboardOptions options) 283public static ChatMessage CreateAnalyzeTraceMessage(OtlpTrace trace, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options) 306public static ChatMessage CreateAnalyzeSpanMessage(OtlpSpan span, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers, DashboardOptions options)
Model\Assistant\Prompts\PromptContextsBuilder.cs (5)
28public static Task ErrorStructuredLogs(InitializePromptContext promptContext, string displayText, Func<PagedResult<OtlpLogEntry>> getErrorLogs) 31foreach (var log in errorLogs.Items) 52public static Task AnalyzeLogEntry(InitializePromptContext promptContext, string displayText, OtlpLogEntry logEntry) 75foreach (var log in traceLogs.Items) 100foreach (var log in traceLogs.Items)
Model\GenAI\GenAIVisualizerDialogViewModel.cs (1)
387private static List<OtlpLogEntry> GetSpanLogEntries(TelemetryRepository telemetryRepository, OtlpSpan span)
Model\Otlp\SpanLogEntryViewModel.cs (1)
13public required OtlpLogEntry LogEntry { get; init; }
Model\Otlp\SpanWaterfallViewModel.cs (3)
128public static List<SpanWaterfallViewModel> Create(OtlpTrace trace, List<OtlpLogEntry> logs, TraceDetailState state) 147static SpanWaterfallViewModel CreateViewModel(OtlpSpan span, int depth, bool hidden, TraceDetailState state, List<OtlpLogEntry>? spanLogs, ref int currentSpanLogIndex) 168foreach (var log in spanLogs)
Model\Otlp\TelemetryFilter.cs (8)
18public abstract IEnumerable<OtlpLogEntry> Apply(IEnumerable<OtlpLogEntry> input); 111public override IEnumerable<OtlpLogEntry> Apply(IEnumerable<OtlpLogEntry> input) 115case nameof(OtlpLogEntry.TimeStamp): 121case nameof(OtlpLogEntry.Severity): 130case nameof(OtlpLogEntry.Message): 138return input.Where(x => func(OtlpLogEntry.GetFieldValue(x, Field) ?? string.Empty, Value));
Model\SpanType.cs (6)
89public override IEnumerable<OtlpLogEntry> Apply(IEnumerable<OtlpLogEntry> input) 122public override IEnumerable<OtlpLogEntry> Apply(IEnumerable<OtlpLogEntry> input) 155public override IEnumerable<OtlpLogEntry> Apply(IEnumerable<OtlpLogEntry> input)
Model\StructuredLogsViewModel.cs (7)
15private PagedResult<OtlpLogEntry>? _logs; 78public PagedResult<OtlpLogEntry> GetLogs() 104filters.Add(new FieldTelemetryFilter { Field = nameof(OtlpLogEntry.Message), Condition = FilterCondition.Contains, Value = FilterText }); 109filters.Add(new FieldTelemetryFilter { Field = nameof(OtlpLogEntry.Severity), Condition = FilterCondition.GreaterThanOrEqual, Value = _logLevel.Value.ToString() }); 118public PagedResult<OtlpLogEntry> GetErrorLogs(int count) 121filters.RemoveAll(f => f is FieldTelemetryFilter fieldFilter && fieldFilter.Field == nameof(OtlpLogEntry.Severity)); 122filters.Add(new FieldTelemetryFilter { Field = nameof(OtlpLogEntry.Severity), Condition = FilterCondition.GreaterThanOrEqual, Value = Microsoft.Extensions.Logging.LogLevel.Error.ToString() });
Model\StructureLogsDetailsViewModel.cs (2)
11public required OtlpLogEntry LogEntry { get; init; } 13public static string GetEventName(OtlpLogEntry logEntry, IStringLocalizer<Dashboard.Resources.StructuredLogs> loc)
Otlp\Model\OtlpLogEntry.cs (3)
112public static string? GetFieldValue(OtlpLogEntry log, string field) 130public static string? GetExceptionText(OtlpLogEntry logEntry) 151static string? GetProperty(OtlpLogEntry logEntry, string propertyName)
Otlp\Storage\TelemetryRepository.cs (8)
44private readonly CircularBuffer<OtlpLogEntry> _logs; 349var logEntry = new OtlpLogEntry(record, resourceView, scope, _otlpContext); 401public PagedResult<OtlpLogEntry> GetLogs(GetLogsContext context) 410return PagedResult<OtlpLogEntry>.Empty; 437public OtlpLogEntry? GetLog(long logId) 443foreach (var logEntry in _logs) 771foreach (var log in _logs) 773var value = OtlpLogEntry.GetFieldValue(log, attributeName);
Aspire.Dashboard.Tests (4)
Model\SpanWaterfallViewModelTests.cs (1)
60var log = new OtlpLogEntry(TelemetryTestHelpers.CreateLogRecord(traceId: trace.TraceId, spanId: "1"), app1View, scope, context);
TelemetryRepositoryTests\LogTests.cs (3)
813Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = nameof(OtlpLogEntry.Message), Value = "does_not_contain" }] 821Filters = [new FieldTelemetryFilter { Condition = FilterCondition.Contains, Field = nameof(OtlpLogEntry.Message), Value = "message" }] 1213var log = Assert.Single(logs.Items);