Как мне установить Traceid в вызов ASP GRPCC#

Место общения программистов C#
Ответить
Anonymous
 Как мне установить Traceid в вызов ASP GRPC

Сообщение Anonymous »

Я подозреваю, что это невозможно, но у кого -то может быть интересное решение. < /p>
Я хочу установить Traceid на вызов GRPC. Это позволит мне непрерывность трассировки на различных границах. Например, куча запросов, которые были сохранены в файле, и теперь нуждаются в обработке. Источник - это приложение C# Консоль, которое использует ASP -Builder в качестве источника клиента. т.е. < /p>
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddGrpc();
builder.Services.AddGrpcClient(options =>
{options.Address = new (serviceAddress);});

... logging stuff etc.

var app = builder.Build();

using var scope = app.Services.CreateScope();
var client = scope.ServiceProvider.GetRequiredService();
client.SayHello(new HelloRequest());
< /code>
Использование обертки ASP добавляет нагрузку полезного журнала, обогащающего клиенту, включая Traceid, который будет распространяться вдоль цепи. В моем случае, однако, клиент не является инициатором запроса, только в разделе GRPC. Я уже попробовал это, и я ожидаю, что это вполне может быть лучшим доступным решением. Но было бы гораздо более аккуратно, если бы я мог привязать к существующей инфраструктуре и не пришлось включать нагрузку дополнительных перехватчиков. Конечно, Interceptors GRPC нажимают, но они не имеют редактирования доступа к контексту HTTP. Это переопределяет идентификатор трассы (через Traceparent) на конце сервера, но не в журнале в конце клиента. Похоже, это также неправильно переопределяется. Я подозреваю, что где -то в цепочке есть услуга, которая предоставляет данные трассировки клиенту, которые необходимо было бы переопределить или манипулировать, но я не могу их найти.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -grpc-call
Ответить

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

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

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

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

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