如何监控gRPC服务器?

时间:2017-11-06 07:30:57

标签: memory monitoring grpc

gRPC服务器是否为每个传入请求跨越一个单独的线程?

我认为,prometheus有助于监控传入和放大传出流量。但是,如何监视gRPC服务器,如线程(空闲/活动),内存使用(堆),IO,会话等?

最后,关于gRPC Server内部的任何文档都会有所帮助。

1 个答案:

答案 0 :(得分:0)

默认情况下,服务器使用缓存的线程池,但我们可以在构建服务器实例时提供另一个。

ServerBuilder<?> builder = ServerBuilder.forPort(port)
    .executor(Executors.newFixedThreadPool(10))
    // ...
;

来自javadoc“executor”方法:

  

/ ** *提供自定义执行程序。

这是一个可选项   参数。如果用户在服务器时没有提供执行程序   构建后,构建器将使用静态缓存线程池。

服务器不会获取给定执行程序的所有权。它的   调用者有责任关闭执行程序   期望。   
@return这个   
@since 1.0.0   
公共抽象T执行者(@Nullable Executor executor);

您可以为游泳池和游戏提供一些名称。尝试使用VisualVM监视活动