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

Ein Treffpunkt für C#-Programmierer
Guest
 Wie füge ich den HTTP-Anfragetext zur Ablaufverfolgungsspanne hinzu?

Post 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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post