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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie füge ich den HTTP-Anfragetext zur Ablaufverfolgungsspanne hinzu?

by Guest » 07 Jan 2025, 14:13

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.

Top