diff --git a/src/Aspire.Dashboard/Components/Controls/SpanDetails.razor b/src/Aspire.Dashboard/Components/Controls/SpanDetails.razor index 1215e1177ee..355de9b42ed 100644 --- a/src/Aspire.Dashboard/Components/Controls/SpanDetails.razor +++ b/src/Aspire.Dashboard/Components/Controls/SpanDetails.razor @@ -71,6 +71,7 @@ - - + @WriteSpanLink(context) - - + + @Loc[nameof(ControlsStrings.ViewAction)] - + @@ -118,20 +117,18 @@ @FilteredSpanBacklinks.Count() - - + @WriteSpanLink(context) - - + + @Loc[nameof(ControlsStrings.ViewAction)] - + diff --git a/src/Aspire.Dashboard/Otlp/Model/OtlpSpanEvent.cs b/src/Aspire.Dashboard/Otlp/Model/OtlpSpanEvent.cs index d306952c0ef..16e246cac77 100644 --- a/src/Aspire.Dashboard/Otlp/Model/OtlpSpanEvent.cs +++ b/src/Aspire.Dashboard/Otlp/Model/OtlpSpanEvent.cs @@ -13,6 +13,7 @@ public class OtlpSpanAttributeItem(string name, string value) : IPropertyGridIte public class OtlpSpanEvent(OtlpSpan span) : IPropertyGridItem { + public required Guid InternalId { get; init; } public required string Name { get; init; } public required DateTime Time { get; init; } public required KeyValuePair[] Attributes { get; init; } diff --git a/src/Aspire.Dashboard/Otlp/Storage/TelemetryRepository.cs b/src/Aspire.Dashboard/Otlp/Storage/TelemetryRepository.cs index e8190f3b89a..df7e31d16bf 100644 --- a/src/Aspire.Dashboard/Otlp/Storage/TelemetryRepository.cs +++ b/src/Aspire.Dashboard/Otlp/Storage/TelemetryRepository.cs @@ -1022,6 +1022,7 @@ private static OtlpSpan CreateSpan(OtlpApplicationView applicationView, Span spa { events.Add(new OtlpSpanEvent(newSpan) { + InternalId = Guid.NewGuid(), Name = e.Name, Time = OtlpHelpers.UnixNanoSecondsToDateTime(e.TimeUnixNano), Attributes = e.Attributes.ToKeyValuePairs(options)