Как добавить тело http-запроса в диапазон трассировки?C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить тело http-запроса в диапазон трассировки?

Сообщение Anonymous »

Я хочу добавить тело запроса в диапазоны трассировки, чтобы упростить отладку при возникновении проблем.
Вот моя текущая конфигурация трассировки.

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

        var resourceBuilder = ResourceBuilder.CreateDefault()
.AddService(serviceName);

services.AddOpenTelemetry().WithTracing(cfg =>
{
cfg.SetResourceBuilder(resourceBuilder);

cfg.AddHttpClientInstrumentation(opt =>
{
opt.FilterHttpRequestMessage = Filters.AllowAll;
opt.EnrichWithHttpRequestMessage = async (activity, httpRequestMessage) =>
{
activity.DisplayName = $"{httpRequestMessage.Method} {httpRequestMessage.RequestUri?.Host}{httpRequestMessage.RequestUri?.AbsolutePath}";

// here's my attemptt:
if (httpRequestMessage.Content is not null) {
activity.SetTag("request_body", await httpRequestMessage.Content.ReadAsStringAsync());
}
};
});
cfg.AddSource(serviceName);
cfg.AddJaegerExporter(options =>
{
options.MaxPayloadSizeInBytes = 65000;
});
cfg.SetErrorStatusOnException();
});

Выше вы можете видеть, что я пытался добавить тело в качестве тега, но не уверен, что это лучшее решение. EnrichWithHttpRequestMessage является действием, поэтому установка для него асинхронного делегата, вероятно, является плохой вещью.


Подробнее здесь: https://stackoverflow.com/questions/793 ... acing-span
Ответить

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

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

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

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

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