我需要为我们的应用程序连接监控和跟踪工具。我们的主要代码在运行在 Google Cloud Functions 上的 Express 4 上。从处理域和漂亮路由名称的前端 nginx 代理服务器传入的所有请求。不幸的是,跟踪代理会跟踪这个请求,这些请求在没有任何附加信息的情况下通过 nginx 前端代理进行,这不足以收集有关应用程序的有用信息。我找到了 Stack Driver 自定义 API,据我所知,它可能有助于在运行时收集适当的数据,但我不明白如何将它连接到 Google Cloud Functions 应用程序。所有其他示例都说,我们必须扩展我们的启动脚本,但是 Google Cloud Functions 完全自动化的东西,这里没有这种可能性。
问问题
530 次
2 回答
1
找到解决方案。我require("@google-cloud/trace-agent");
不包括在index.js的顶部。它应该包含在所有其他模块之前。之后它开始工作。
于 2017-06-15T11:42:28.867 回答
1
将 require("@google-cloud/trace-agent") 作为第一次导入对我不起作用。我仍然不断得到:
ERROR:@google-cloud/trace-agent: express tracing might not work as /var/tmp/worker/node_modules/express/index.js was loaded before the trace agent was initialized.
但是我设法通过手动修补 express 来解决它:
var traceApi = require('@google-cloud/trace-agent').get();
require("@google-cloud/trace-agent/src/plugins/plugin-express")[0].patch(
require(Object.keys(require('module')._cache).find( _ => _.indexOf("express") !== -1)),
traceApi
);
于 2017-06-26T14:41:16.553 回答