首页 > 解决方案 > 在 grpc-node 中记录请求时间是否有任何选项?

问题描述

在 grpc-node 中记录请求时间是否有任何选项?我已经能够使用 opentelemetry 和 jaegar 记录响应时间(以显示响应时间)。我也找不到任何 npm 包,但只是想问你们是否确实找到了 grpc-node 的任何选项。

标签: grpctracedistributed-systemgrpc-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
    }
}

推荐阅读