【发布时间】:2018-05-18 16:37:41
【问题描述】:
我有一个用 Go 编写的 gRPC 服务,它运行时间很长。我想要一种方法来测量每个流的网络/带宽使用情况,并将该信息提供给prometheus。
我找到了grpc.StreamServerInterceptor,但据我所知,它无法让您访问编组的消息(我需要弄清楚它的大小)。
我找到了this第三方中间件,但是好像没有导出任何网络相关信息。
【问题讨论】:
-
StreamServerInterceptor不会让您访问编组的消息,而是让您访问流。您可以轻松地代理流并在它们经过时计算字节数。 -
@Adrian 如果需要,我会使用外部代理,但我更愿意将网络使用情况与服务器的其他指标一起导出。
-
不是外部代理,是内部proxy。
-
@Adrian 如果我正在代理未编组的消息流,我该如何“计算字节数”?
-
我刚刚找到了 proto.Size 方法。我会编组两次,但我会一直担心它,直到它成为瓶颈。
标签: go grpc prometheus