我正在研究X射线以应用于我的项目。但是我已经阅读了AWS上的文档
文档示例为“ new HttpClient(new HttpClientXRayTracingHandler(new HttpClientHandler())
”
但是在NET核心中,我们使用DI,因此我们不使用新的HttpClient。那就是httpclientfactory createclient
在我的状态
AWSSDKHandler.RegisterXRayForAllServices();
services.AddHttpClient(namedHttpClient.Name,(serviceProvider,config) => {
....
.ConfigurePrimaryHttpMessageHandler(() =>
{
var handler = new HttpClientHandler();
new HttpClientXRayTracingHandler(handler);
return handler;
});
})
Json:
{
"version": 2,"rules": [
{
"description": "Player moves.","host": "*","http_method": "*","url_path": "/api/*","fixed_target": 0,"rate": 0.05
}
],"default": {
"fixed_target": 1,"rate": 0.1
}
}
在程序中
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json",optional: false)
.Build();
var recorder = new AWSXRayRecorderBuilder().WithSamplingStrategy(new LocalizedSamplingStrategy(@"C:folder\SamplingRules.json")).Build();
AWSXRayRecorder.InitializeInstance(config,recorder);
在使用中,使用httpClientFactory
调用其他api。我们正在系统中使用微服务。
var contentService = _httpClientFactory.Createclient("")
;
var response = await contentService.SendAsync(request);
测试后的结果是请求和响应中没有X射线信息。我不知道它已经工作了吗?请帮助我,我不知道这个SDK。如何正确配置它们?谢谢