SpringCloud RPC

2023-12-01 16:23 更新

Sleuth会自动配置RpcTracing bean,它是RPC工具(例如gRPC或Dubbo)的基础。

如果需要自定义RPC跟踪的客户端/服务器采样,只需注册类型为brave.sampler.SamplerFunction<RpcRequest>的bean,并将bean sleuthRpcClientSampler命名为客户端采样器,将sleuthRpcServerSampler命名为服务器采样器。

为了方便起见,可以使用@RpcClientSampler@RpcServerSampler批注来注入正确的beans或通过其静态字符串NAME字段引用bean名称。

例如 这是一个每秒跟踪100个“ GetUserToken”服务器请求的采样器。这不会启动对运行状况检查服务的请求的新跟踪。其他请求将使用全局采样配置。

@Configuration
class Config {
  @Bean(name = RpcServerSampler.NAME)
  SamplerFunction<RpcRequest> myRpcSampler() {
  	Matcher<RpcRequest> userAuth = and(serviceEquals("users.UserService"),
  			methodEquals("GetUserToken"));
  	return RpcRuleSampler.newBuilder()
  			.putRule(serviceEquals("grpc.health.v1.Health"), Sampler.NEVER_SAMPLE)
  			.putRule(userAuth, RateLimitingSampler.create(100)).build();
  }
}

有关更多信息,请参见https://github.com/openzipkin/brave/tree/master/instrumentation/rpc#sampling-policy

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号