跟踪C ++ gRPC服务器中的所有RPC调用

时间:2017-02-20 13:21:26

标签: c++ tracing grpc

我有一个用C ++编写的gRPC服务器,我想跟踪或记录所有对服务器的RPC调用,如果可能的话,包括参数和响应。

Go gRPC实现具有非常有用的Interceptor概念,可以连接到客户端或服务器。拦截器不仅可以访问元数据,还可以访问参数/响应。对于C ++ API,我找不到类似的东西。

2 个答案:

答案 0 :(得分:0)

您是否看过这个(Intercept gRPC C++ calls in server and client)主题?接受的答案的服务器端代码听起来像是可以适应你想要的。

答案 1 :(得分:0)

https://grpc.github.io/grpc/cpp/classgrpc_1_1experimental_1_1_interceptor.html呢?

我可以找到的唯一用法参考是以下问题:C++ grpc::experimental:interceptor how to return status and message from custom interceptor

编辑:事实上,我认为这是更好的资源-https://github.com/grpc/grpc/blob/7bf82de9eda0aa8fecfe5edb33834f1b272be30b/test/cpp/end2end/server_interceptors_end2end_test.cc

我认为您可以从拦截器替代方法methods的{​​{1}}参数中查询请求和响应消息,请在此处查看可用的方法和属性:https://grpc.github.io/grpc/cpp/classgrpc_1_1experimental_1_1_interceptor_batch_methods.html