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.
Ich möchte den Anforderungstext zu meinen Ablaufverfolgungsspannen hinzufügen, um das Debuggen zu erleichtern, wenn Probleme auftreten.
Hier ist meine aktuelle Ablaufverfolgungskonfiguration.
[code] 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();
});
[/code]
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.