5 writes to Attributes
Aspire.Dashboard (3)
Otlp\Model\OtlpSpan.cs (1)
96Attributes = item.Attributes,
Otlp\Storage\SqliteTelemetryRepository.Traces.Reads.cs (1)
799Attributes = ToPairs(spanAttributes[(traceId, record.SpanId)]),
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (1)
936Attributes = span.Attributes.ToKeyValuePairs(_otlpContext, filter: attribute => attribute.Key != OtlpHelpers.AspireDestinationNameAttribute),
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
273Attributes = attributes ?? [],
Aspire.Dashboard.Tests (1)
tests\Shared\Telemetry\TelemetryTestHelpers.cs (1)
273Attributes = attributes ?? [],
46 references to Attributes
Aspire.Dashboard (42)
Components\Pages\StructuredLogs.razor.cs (1)
574if (GenAIHelpers.HasGenAIAttribute(s.Attributes))
Components\Pages\TraceDetail.razor.cs (2)
532return GenAIHelpers.HasGenAIAttribute(spanViewModel.Span.Attributes); 698foreach (var attribute in span.Attributes)
Components\Pages\Traces.razor.cs (2)
429var firstSpan = trace.Spans.FirstOrDefault(s => GenAIHelpers.HasGenAIAttribute(s.Attributes)); 449return latestTrace.Spans.Where(span => GenAIHelpers.HasGenAIAttribute(span.Attributes)).ToList();
Model\GenAI\GenAIVisualizerDialogViewModel.cs (10)
70: OtlpHelpers.GetPeerAddress(spanDetailsViewModel.Span.Attributes) ?? UnknownPeerName 73viewModel.ModelName = viewModel.Span.Attributes.GetValue(GenAIHelpers.GenAIResponseModel); 74viewModel.InputTokens = viewModel.Span.Attributes.GetValueAsInteger(GenAIHelpers.GenAIUsageInputTokens); 75viewModel.OutputTokens = viewModel.Span.Attributes.GetValueAsInteger(GenAIHelpers.GenAIUsageOutputTokens); 78var toolDefinitionsJson = viewModel.Span.Attributes.GetValue(GenAIHelpers.GenAIToolDefinitions); 172viewModel.Span.Attributes.GetValue("error.type"), 285var systemInstructions = viewModel.Span.Attributes.GetValue(GenAIHelpers.GenAISystemInstructions); 286var inputMessages = viewModel.Span.Attributes.GetValue(GenAIHelpers.GenAIInputMessages); 287var outputMessages = viewModel.Span.Attributes.GetValue(GenAIHelpers.GenAIOutputInstructions); 394var attributes = viewModel.Span.Attributes;
Model\Otlp\SpanWaterfallViewModel.cs (2)
103var hasPeerService = OtlpHelpers.GetPeerAddress(span.Attributes) != null; 169return OtlpHelpers.GetPeerAddress(span.Attributes);
Model\SpanMenuBuilder.cs (1)
82if (GenAIHelpers.HasGenAIAttribute(span.Attributes))
Model\TelemetryExportService.cs (2)
396Attributes = ConvertAttributes(span.Attributes, destinationName is not null 833return span.GetDestination()?.ResourceKey.GetCompositeName() ?? span.Attributes.GetPeerAddress();
Model\TraceHelpers.cs (2)
136if (span.Attributes.HasKey("messaging.system")) 145if (span.Attributes.HasKey("messaging.system"))
Otlp\Model\OtlpSpan.cs (16)
96Attributes = item.Attributes, 130foreach (var kv in Attributes.OrderBy(a => a.Key)) 178if (span.Attributes.GetValueWithFallback("http.request.method", "http.method") is { Length: > 0 } httpMethod) 180var statusCode = span.Attributes.GetValueWithFallback("http.response.status_code", "http.status_code"); 189else if (!string.IsNullOrEmpty(OtlpHelpers.GetValue(span.Attributes, "db.system"))) 191var dbSystem = OtlpHelpers.GetValue(span.Attributes, "db.system"); 195else if (!string.IsNullOrEmpty(OtlpHelpers.GetValue(span.Attributes, "rpc.system"))) 197var rpcSystem = OtlpHelpers.GetValue(span.Attributes, "rpc.system"); 198var rpcService = OtlpHelpers.GetValue(span.Attributes, "rpc.service"); 199var rpcMethod = OtlpHelpers.GetValue(span.Attributes, "rpc.method"); 203var grpcStatusCode = OtlpHelpers.GetValue(span.Attributes, "rpc.grpc.status_code"); 216else if (!string.IsNullOrEmpty(OtlpHelpers.GetValue(span.Attributes, "messaging.system"))) 218var messagingSystem = OtlpHelpers.GetValue(span.Attributes, "messaging.system"); 219var messagingOperation = OtlpHelpers.GetValue(span.Attributes, "messaging.operation"); 220var destinationName = OtlpHelpers.GetValue(span.Attributes, "messaging.destination.name"); 245_ => span.Attributes.GetValue(field)
Otlp\Storage\SqliteTelemetryRepository.Traces.Writes.cs (4)
444static bool HasGenAI(IEnumerable<OtlpSpan> spans) => spans.Any(span => span.Attributes.Any(attribute => 559var hasPeerAddress = OtlpHelpers.GetPeerAddress(span.Attributes) is not null; 564if (TryResolvePeerResourceKey(span.Attributes, out var peerKey)) 793.SelectMany(pendingSpan => pendingSpan.Span.Attributes.Select((attribute, ordinal) => new
Aspire.Dashboard.Tests (4)
Integration\OtlpHttpJsonTests.cs (1)
548Assert.Collection(span.Attributes,
TelemetryRepositoryTests\SqliteTelemetryPersistenceTests.cs (1)
365Assert.Equal(KeyValuePair.Create("span-key", "span-value"), Assert.Single(trace.FirstSpan.Attributes));
TelemetryRepositoryTests\TraceTests.cs (2)
1261Assert.Collection(trace.FirstSpan.Attributes, 4968Assert.Equal(KeyValuePair.Create("index", index.ToString(CultureInfo.InvariantCulture)), Assert.Single(span.Attributes));