Code: Select all
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" in Ordnung, und ich kann dies in Anwendungseinsichten als benutzerdefinierte Dimension sehen._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");