Облачные функции Google с подключением агента трассировки

Мне нужно подключить инструменты мониторинга и отслеживания для нашего приложения. Наш основной код на Express 4 работает на Google Cloud Functions. Все запросы, поступающие от переднего прокси-сервера nginx, которые обрабатывают доменные и красивые имена маршрутов. К сожалению, агент трассировки отслеживает эти запросы, поступающие на передний прокси-сервер nginx без какой-либо дополнительной информации, и этого недостаточно для сбора полезной информации о приложении. Я обнаружил пользовательский API драйвера стека, который, как я понимаю, может помочь собрать соответствующие данные во время выполнения, но я не понимаю, как я могу подключить его к приложению Google Cloud Functions. Все остальные примеры говорят о том, что мы должны расширить наш скрипт запуска, но Google Cloud Functions полностью автоматизирован, здесь такой возможности нет.

2 ответа

Нашел решение. я включен require("@google-cloud/trace-agent"); не в верхней части index.js. Это должно быть включено перед всеми другими модулями. После этого все заработало.

Размещение 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.

Однако мне удалось обойти это, вручную исправив экспресс:

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
);
Другие вопросы по тегам