grpc - 在 grpc-node 中记录请求时间是否有任何选项?
问题描述
在 grpc-node 中记录请求时间是否有任何选项?我已经能够使用 opentelemetry 和 jaegar 记录响应时间(以显示响应时间)。我也找不到任何 npm 包,但只是想问你们是否确实找到了 grpc-node 的任何选项。
解决方案
你不需要一个包来做这件事,你可以使用一个简单的 gRPC 客户端拦截器来做。
这就是你在 Golang 中的做法。只需检查如何在 Node.js 中创建 gRPC 拦截器即可。抱歉没有 JS 示例,希望对您有所帮助。
func UnaryRequestTImeInterceptor() grpc.UnaryClientInterceptor {
return func(
ctx context.Context,
method string,
req interface{},
reply interface{},
cc *grpc.ClientConn,
invoker grpc.UnaryInvoker,
opts ...grpc.CallOption,
) error {
start := time.Now()
err := invoker(ctx, method, req, reply, cc, opts...)
reqTime := time.Since(start)
return err
}
}
推荐阅读
- ios - IOS - 你如何快速获得当前的滚动视图位置?
- aws-iot - Zephyr AWS IOT 示例应用程序
- python - 如何根据 Pandas 中的条件将一列的值复制到另一列?
- virtualbox - 如何在 Python 中使用 Scapy 在特定接口上与主机通信?
- php - 使用 JQuery 搜索谷歌电子表格
- javascript - Kendo Grid 设置屏幕调整大小时的最小列宽
- python-3.x - 将“文件名”作为参数传递给“python 3”中的类
- javascript - PHP,Javascript - 独立地将日期输出到“每个”网格
- intellij-idea - Intellij 在运行 PsiSearchHelper 时经常崩溃
- sql - sql中的distinct如何工作?