在 Go 中将统计处理程序附加到 gRPC

Attaching a stats handler to gRPC in Go

所以我正在使用一个多路复用器来确定传入的请求类型(gRPC 或 REST)并相应地路由请求。对于 gRPC 请求,我附加了一个统计处理程序来收集一些元数据,但是我们用来标记元数据的接口方法之一 TagRPC() 没有被调用。

app.httpMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    if isgRPC(r) {
        app.gRPCServer.ServeHTTP(w, r)
    } else {
        app.rMux.ServeHTTP(w, r)
    }
})

我认为问题出在 gRPC 的 ServeHTTP 方法不支持所有方法。如果我要手动附加 TagGRPC(),哪里比较合适?

ServeHTTP 处理程序现在不完全支持统计处理程序。

https://github.com/grpc/grpc-go/issues/1784

中有更多详细信息

(我刚刚注意到你也提交了这个问题,但这可能会帮助其他对此感兴趣的人)