gpt4 book ai didi

node.js - Google Cloud 跟踪 自定义跟踪只能运行几次

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:58 28 4
gpt4 key购买 nike

我已经使用 Nodejs 和 Express 激活了 Google Cloud Tracer,在自动模式下运行良好,正确注册了对 API 的调用。

我尝试手动创建跟踪,以了解中间步骤的执行时间。

controller (req, res) {

tracer.runInRootSpan({ name: 'dnd-task' }, (rootSpan) => {

//promise
myPromise(rootSpan)
.then((data) => {
rootSpan.endSpan()
res.ok(data)
})
.catch((err)=>{
rootSpan.endSpan()
res.send(err)
})
})

}

但 Google Cloud Trace 仅列出 1 或 2 个调用,而自动生成的调用则显示数千个 API 调用。

我也阅读了文档尝试获取express.js中间件的上下文,但没有找到获取上下文的方法。

来自:google-cloud-trace

a root span is automatically started whenever an incoming request is received (in other words, all middleware already runs within a root span).

基于@ kjin更新评论:

在 Express 的 Controller 内,您只需要

tracer.createChildSpan({name: 'name'})

最佳答案

如果您启用了自动跟踪,并且使用自定义 Span API 在请求监听器中生成根 Span,则该根 Span 将被忽略,因为它是在预先存在的根 Span 中创建的(为此请求自动启动的那个)。这是我根据此处提供的代码的猜测,但您应该能够通过创建子跨度来完成您想要的任务。 (自定义根跨度适用于请求生命周期之外发生的工作,例如定期工作。)

回复:Express.js 中间件上下文 - 我不太确定您在这里的意思,但跟踪代理不会在跟踪上下文中存储任何请求监听器参数。

作为补充说明 - 如果您直接向链接的 GitHub 存储库报告问题,您将获得更快的响应时间。

希望这有帮助!

关于node.js - Google Cloud 跟踪 自定义跟踪只能运行几次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52988854/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com