Ich habe ein C# .NET 8-Webapi, wobei Metriken, Verfolgung und Protokollierung über Opentelemetry an Azure Monitor gesendet werden.var serviceName = "My-import-service";
var connStr = builder.Configuration["ConnectionStrings:Azure"];
builder.Logging.AddOpenTelemetry(options =>
{
options
.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName))
.AddConsoleExporter();
});
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource => resource.AddService(serviceName))
.WithTracing(tracing => tracing
.AddAspNetCoreInstrumentation()
.AddAzureMonitorTraceExporter(opt => opt.ConnectionString = connStr)
.AddConsoleExporter())
.WithMetrics(metrics => metrics
.AddAspNetCoreInstrumentation()
.AddAzureMonitorMetricExporter(opt => opt.ConnectionString = connStr)
.AddConsoleExporter())
.WithLogging(logging => logging
.AddConsoleExporter()
.AddAzureMonitorLogExporter(opt => opt.ConnectionString = connStr));
< /code>
Die in Azure Monitor exportierten grundlegenden Informationen werden alle angezeigt, wo ich sie erwarten würde, aber die erweiterten Eigenschaften, die aus den Tags der Aktivität gelesen werden, in denen wir gerade sind, machen es beim Exportieren eines Protokolleintrags nicht. In einigen Middleware füge ich beispielsweise ein Tag hinzu: < /p>
Activity.Current?.SetTag("ProcessedTime", DateTime.UtcNow.ToString());
< /code>
Dies erscheint in der angemeldeten "Anfrage" gut, und ich kann dies in Anwendungseinsichten als benutzerdefinierte Dimension sehen. Wie in diesem Bild:
Wenn jedoch in dem Controller die Anforderung verantwortlich ist, füge ich eine logarithmische Anweisung hinzu, z. B.:
_logger.LogInformation("Getting weather forecast");
< /code>
Ich werde diese logarithmische Anweisung im Abschnitt "Traces of Application Insight" sehen, aber die Tags, die ich auf der Middleware -Ebene hinzugefügt habe, sind nicht vorhanden.Activity.Current?.SetTag("SomeNewTag", "Birds live in forests");
_logger.LogInformation("Getting weather forecast");
< /code>
Ich kann den Protokolleintrag im Abschnitt "Traces" sehen, haben aber immer noch nicht die Tags als benutzerdefinierte Dimensionen wie SO:
Auf Azure.Monitor.opentelemetry.exporter 1.4.0-beta.2 als Drop-In-Ersatz (wie es anscheinend neuer zu sein) ist die gleichen Ergebnisse. Programm.cs:
< /p>
und hier ist der Controller:
Ist es möglich, benutzerdefinierte Dimensionen einer Aktivität, die über Opentelemetry an Azuremonitor angemeldet ist, m ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post