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)
1113OtlpLogEntry 1119__builder4.AddComponentParameter(117, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1136__builder4.AddComponentParameter(118, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1153__builder4.AddComponentParameter(119, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1170__builder4.AddComponentParameter(120, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1187__builder4.AddComponentParameter(121, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1204__builder4.AddComponentParameter(122, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1212), (global::System.Func<OtlpLogEntry, global::System.String>)( 1221__builder4.AddComponentParameter(123, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1238__builder4.AddComponentParameter(124, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1255__builder4.AddComponentParameter(125, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1272__builder4.AddComponentParameter(126, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1289__builder4.AddComponentParameter(127, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1306__builder4.AddComponentParameter(128, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1314), (global::Microsoft.FluentUI.AspNetCore.Components.GridItemsProvider<OtlpLogEntry>)( 1323__builder4.AddComponentParameter(129, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1340__builder4.AddComponentParameter(130, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1357__builder4.AddComponentParameter(131, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1365), (global::System.Func<OtlpLogEntry, global::System.Object>)( 1374__builder4.AddComponentParameter(132, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1382), 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, 1391__builder4.AddComponentParameter(133, nameof(global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>. 1401global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_3(__builder5, 135, default(OtlpLogEntry)!, 136, 1465global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_4(__builder5, 147, default(OtlpLogEntry)!, 148, 1499), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1512global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_5(__builder5, 155, default(OtlpLogEntry)!, 156, 1564global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_6(__builder5, 164, default(OtlpLogEntry)!, 165, 1615), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1632), 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, 1645global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_7(__builder5, 174, default(OtlpLogEntry)!, 175, 1739global::__Blazor.Aspire.Dashboard.Components.Pages.StructuredLogs.TypeInference.CreateAspireTemplateColumn_8(__builder5, 187, default(OtlpLogEntry)!, 188, 1803), global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Aspire.Dashboard.Otlp.Model.OtlpLogEntry>( 1865= (global::Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid<OtlpLogEntry>)__value;
Components_ResourcesGridColumns_LogLevelColumnDisplay_razor.g.cs (1)
299public required OtlpLogEntry LogEntry { get; set; }
Model\Assistant\AIHelpers.cs (7)
244public static (string json, string limitMessage) GetStructuredLogsJson(List<OtlpLogEntry> errorLogs) 258internal static string GetStructuredLogJson(OtlpLogEntry l) 266public static object GetLogEntryDto(OtlpLogEntry l, PromptContext context) 268var exceptionText = OtlpLogEntry.GetExceptionText(l); 279.Where(l => l.Key is not (OtlpLogEntry.ExceptionStackTraceField or OtlpLogEntry.ExceptionMessageField or OtlpLogEntry.ExceptionTypeField))
Model\Assistant\AssistantChatDataContext.cs (3)
33private readonly ConcurrentDictionary<long, OtlpLogEntry> _referencedLogs = new(); 390public void AddReferencedLogEntry(OtlpLogEntry logEntry) 395public 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)
178public static ChatMessage CreateErrorStructuredLogsMessage(List<OtlpLogEntry> errorLogs) 196public static ChatMessage CreateAnalyzeLogEntryMessage(OtlpLogEntry logEntry) 282public static ChatMessage CreateAnalyzeTraceMessage(OtlpTrace trace, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers) 305public static ChatMessage CreateAnalyzeSpanMessage(OtlpSpan span, List<OtlpLogEntry> traceLogEntries, IEnumerable<IOutgoingPeerResolver> outgoingPeerResolvers)
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);