【发布时间】:2019-03-30 00:59:23
【问题描述】:
我已经使用 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 中间件的上下文,但我没有找到获取上下文的方法。
每当收到传入请求时,都会自动启动根跨度(换句话说,所有中间件都已在根跨度内运行)。
更新基于@kjin评论:
在你只需要的快递控制器中
tracer.createChildSpan({name: 'name'})
【问题讨论】:
标签: node.js express google-cloud-platform google-cloud-stackdriver google-cloud-trace