Page 1 of 1

Wie füge ich den HTTP-Anfragetext zur Ablaufverfolgungsspanne hinzu?

Posted: 07 Jan 2025, 14:13
by Guest
Ich möchte den Anforderungstext zu meinen Ablaufverfolgungsspannen hinzufügen, um das Debuggen zu erleichtern, wenn Probleme auftreten.
Hier ist meine aktuelle Ablaufverfolgungskonfiguration.

Code: Select all

        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();
});

Sie können oben sehen, dass ich versucht habe, den Text als Tag hinzuzufügen, aber ich bin mir nicht sicher, ob dies die beste Lösung ist. Die EnrichWithHttpRequestMessage ist eine Aktion, daher ist es wahrscheinlich eine schlechte Sache, sie auf „Async Delegate“ zu setzen.