SpringCloud HTTP
如果需要定制与HTTP相关的spans的客户端/服务器解析,只需注册类型为brave.http.HttpClientParser
或brave.http.HttpServerParser
的bean。如果需要客户端/服务器采样,只需注册类型为brave.sampler.SamplerFunction<HttpRequest>
的bean,并将bean sleuthHttpClientSampler
命名为客户端采样器,将sleuthHttpServerSampler
命名为服务器采样器。
为了方便起见,可以使用@HttpClientSampler
和@HttpServerSampler
批注注入适当的beans或通过其静态字符串NAME
字段引用bean名称。
查看Brave的代码,以查看有关如何制作基于路径的采样器的示例 https://github.com/openzipkin/brave/tree/master/instrumentation/http#sampling-policy
如果您想完全重写HttpTracing
bean,则可以使用SkipPatternProvider
接口检索spans不应采样的URL Pattern
。在下面,您可以看到在服务器端Sampler<HttpRequest>
中使用SkipPatternProvider
的示例。
@Configuration class Config { @Bean(name = HttpServerSampler.NAME) SamplerFunction<HttpRequest> myHttpSampler(SkipPatternProvider provider) { Pattern pattern = provider.skipPattern(); return request -> { String url = request.path(); boolean shouldSkip = pattern.matcher(url).matches(); if (shouldSkip) { return false; } return null; }; } }
更多建议: