Запретите экспорт трассировки для конечной точки Метрики с помощью OpenTelemetryC#

Место общения программистов C#
Anonymous
Запретите экспорт трассировки для конечной точки Метрики с помощью OpenTelemetry

Сообщение Anonymous »

В моем веб-приложении ASP.NET Core есть следующая простая настройка:

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

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System.Net;
using System.IO;

using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;

namespace MyNamespace;

public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
var builder = WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) => { ... }
.ConfigureServices((context, services) =>
{
services.AddOpenTelemetry()
.ConfigureResource(resource => resource
.AddService(serviceName: context.HostingEnvironment.ApplicationName))
.WithMetrics(metrics =>
{
metrics.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddSqlClientInstrumentation()
.AddPrometheusExporter();
})
.WithTracing(tracing =>
{
tracing.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation(config =>
{
config.FilterHttpRequestMessage = (httpRequestMessage) =>
{
// Filter out health check requests and other non-business requests
var path = httpRequestMessage.RequestUri?.AbsolutePath;
return !string.IsNullOrEmpty(path) &&
!path.StartsWith("/health") &&
!path.StartsWith("/metrics") &&
!path.StartsWith("/favicon.ico");
};
})
.AddOtlpExporter();
});
})
.UseStartup()
.UseKestrel();

return builder;
}
}
Когда я запускаю свое приложение и просматриваю экспортированные трассировки в конечной точке Jaeger, отображается множество запросов для конечной точки метрик, хотя я намеревался не экспортировать их с помощью FilterHttpRequestMessage. Я также установил точку останова в функции, однако она никогда не срабатывает (символы соответствуют коду, я это уже проверил).
Я использую all-in-one-jaeger без какой-либо дополнительной настройки. Трафик экспортируется через gRPC через порт 4317, и его можно запросить в Jaeger:
Изображение

Есть ли способ исключить экспорт этих следов? Они не несут для меня никакой пользы, а вместо этого загромождают пользовательский интерфейс и сжигают мое хранилище.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ntelemetry

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