测量每个流的gRPC带宽

时间:2018-05-18 16:37:42

标签: go grpc prometheus

我有一个用Go编写的gRPC服务,它有很长的运行流。我想要一种方法来衡量每个流的网络/带宽使用情况,并将这些信息提供给prometheus

我找到grpc.StreamServerInterceptor但是从我收集的内容来看,它并不能让你访问编组的消息(我需要弄清楚它的大小)。

我找到了this第三方中间件,但它似乎没有导出任何与网络相关的信息。

1 个答案:

答案 0 :(得分:2)

您可以在gRPC stats.Handlerservers上设置clients。您可以在提供的上下文中放置所需的任何标签。

然后,

gRPC将使用stats.OutPayloadstats.InPayload调用处理程序的HandleRPC方法,其中包含消息(原始和已编码),未压缩和线长以及时间戳。< / p>

这是all in the source code