Wie kann ich azure.monitor.opentelemetry.aspnetcore konfigurieren, um die benutzerdefinierte Eigenschaft zu einer TelemeC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich azure.monitor.opentelemetry.aspnetcore konfigurieren, um die benutzerdefinierte Eigenschaft zu einer Teleme

Post by Anonymous »

Ich verwende einen Otel -Tracer -Prozessor (

Code: Select all

CorrelationIdActivityEnrichingProcessor
) So fügen Sie eine benutzerdefinierte Eigenschaften zu Spuren hinzu, die in Anwendungseinsichten emittiert werden. src = "https://i.Sstatic.net/qcvv5pnz.png"/>
Wie kann ich Azure.monitor.opentelemetry.aspnetcore konfigurieren, um die benutzerdefinierte Eigenschaft zu einer Art von Telemetrie hinzuzufügen, nicht nur Anfragen code> races?

Code: Select all

        // Add correlation ID to Application Insights telemetry as a custom property
builder.Services.ConfigureOpenTelemetryTracerProvider((sp, tracerBuilder) => tracerBuilder.AddProcessor(
new CorrelationIdActivityEnrichingProcessor(
sp.GetRequiredService(),
sp.GetRequiredService()
)
));

builder.Services.AddOpenTelemetry()
.UseAzureMonitor(options =>
{
options.EnableLiveMetrics = true;
}).ConfigureResource(resourceBuilder =>
{
resourceBuilder.AddAttributes([
new KeyValuePair("service.name", "MyApp")
]);
});

public class CorrelationIdActivityEnrichingProcessor(IHttpContextAccessor httpContextAccessor, ILogger logger) : BaseProcessor
{
public override void OnStart(Activity activity)
{
var httpContext = httpContextAccessor.HttpContext;
var correlationId = httpContext?.Request.Headers["correlation-id"].FirstOrDefault();
if (correlationId != null)
{
// logger.LogDebug("Enriching activity with correlation ID: {CorrelationId}", correlationId);
activity.SetTag("CorrelationId", correlationId);
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post