Диапазоны открытой телеметрии не получают должным образом идентификатор родительского диапазона. (неверные идентификаторC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Диапазоны открытой телеметрии не получают должным образом идентификатор родительского диапазона. (неверные идентификатор

Сообщение Anonymous »

Я пытаюсь добавить трассировку в свое микросервисное приложение, созданное с использованием ASP.NET. В общем, оглядываясь по сторонам, все рекомендуют сделать что-то подобное. Поскольку мое приложение использует WebHost вместо WebApplication, я добавил элементы открытой телеметрии в файл Startup.cs, например:

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

public virtual IServiceProvider ConfigureServices(IServiceCollection services)
{
// configure Open Telemetry
services.AddOpenTelemetry()
.ConfigureResource(resource => resource
.AddService(
serviceName: $"{Configuration["SubscriptionClientName"]} Service",
serviceVersion: "1.0.0"))
.WithTracing(builder => builder
.SetSampler(new AlwaysOnSampler())
.AddSource(names: $"{Configuration["SubscriptionClientName"]} Service")
.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(serviceName: $"{Configuration["SubscriptionClientName"]} Service"))
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddGrpcClientInstrumentation()
.AddEntityFrameworkCoreInstrumentation()
.AddOtlpExporter(options =>
{
options.Endpoint = new Uri("http://jaeger-allinone-collector.jaeger-observability.svc.cluster.local:4317");
options.Protocol = OtlpExportProtocol.Grpc;
}));
...
В Program.cs соответствующий код следующий:

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

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.OtherStuff()
.Build();
Когда я запускаю это, я вижу, что Jaeger получает промежутки. Однако вызываемая служба Customer при вызове из другой службы Telemetry представлена ​​в той же трассировке, но не как дочерний вызов Telemetry. Как показано ниже
Изображение

Кроме того, я вижу это предупреждение в службе поддержки клиентов
[img]https://i.sstatic .net/5ktRrfHO.png[/img]
.
Насколько я понимаю, проблема в том, что служба телеметрии неправильно отправляет свой идентификатор диапазона клиенту услуга. Я подумал, что использования .AddAspNetCoreInstrumentation() и .AddHttpClientInstrumentation() должно быть достаточно, но это явно не сработало. Я подозреваю, что это проблема с конфигурацией, но не знаю, что еще попробовать.
В конце концов, я хочу, чтобы служба Customer отображалась как дочерний элемент службы телеметрии.

Подробнее здесь: https://stackoverflow.com/questions/791 ... id-invalid
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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