我已经使用 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'})