Можно ли включить пользовательские измерения из деятельности, зарегистрированной в Azuremonitor через Opentelemetry с исC#

Место общения программистов C#
Anonymous
 Можно ли включить пользовательские измерения из деятельности, зарегистрированной в Azuremonitor через Opentelemetry с ис

Сообщение Anonymous »

У меня есть C# .net 8 WebAPI, с метриками, трассировкой и журналом, отправляемыми на монитор Azure через OpenElemetry, и пакет Neuget 1.3.0-beta2 azure.monitor.opentelemetry.aspnetcore (это добавляет поддержку для регистрации). < /p>
Посмотреть в порядке (в программе.

Код: Выделить всё

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>
Основная информация, экспортируемая в монитор Azure, все появляется там, где я ожидаю ее, но расширенные свойства, которые читаются из тегов деятельности, в которой мы сейчас находимся, не делают это при экспорте записи журнала. Например, в некоторое промежуточное программное обеспечение я добавляю тег: < /p>
Activity.Current?.SetTag("ProcessedTime", DateTime.UtcNow.ToString());
< /code>
Это отличается в зарегистрированном «запросе», и я вижу это в Insights Application Insights как пользовательское измерение.
Однако, если в контроллере, который тогда отвечает за обработку запроса, я добавляю оператор журнала, такой как: < /p>
_logger.LogInformation("Getting weather forecast");
< /code>
Я увижу этот оператор журнала в разделе Traces Insight Insight, но теги, которые я добавил на уровне промежуточного программного обеспечения, не присутствуют.Activity.Current?.SetTag("SomeNewTag", "Birds live in forests");
_logger.LogInformation("Getting weather forecast");
Я вижу запись журнала в разделе «Трейсы», но все еще не имеет тегов в качестве пользовательских измерений.

Подробнее здесь: https://stackoverflow.com/questions/794 ... -azuremoni

Вернуться в «C#»