#datadog
#datadog
Вопрос:
Я не могу видеть трассировки для своего приложения в APM -> Service в Datadog. Я нашел некоторый пример кода из Datadog docs, но не знаю точно, куда он должен идти внутри моего приложения. Пожалуйста, дайте мне знать, если у кого-нибудь есть какие-либо идеи относительно этого.
Я уже пробовал использовать следующий код в моем js-файле. Мое приложение основано на node js, который не имеет сервера.
const tracer = require('dd-trace').init();
tracer.use('http', {
service: 'test'
});
Я также добавил зависимости для dd-trace в package.json как "dd-trace": "^0.11.0"
Я ожидал указать свое приложение с правильным именем в службах APM в Datadog.
Ответ №1:
То, что вы делаете, является правильным, однако распространенной ошибкой является несоблюдение приведенного ниже.
Эта библиотека ДОЛЖНА быть импортирована и инициализирована перед любым инструментальным модулем. При использовании транспилятора НЕОБХОДИМО импортировать и инициализировать библиотеку трассировки во внешнем файле, а затем импортировать этот файл целиком при сборке вашего приложения. Это предотвращает подъем и гарантирует, что библиотека трассировки будет импортирована и инициализирована перед импортом любого другого инструментального модуля.
В принципе, вы не можете иметь require(any instrumented lib)
(например, http, express и т.д.) Перед вызовом функции трассировки init().