Как задать имя службы APM в DataDog для приложения, использующего Nodejs

#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().

https://docs.datadoghq.com/tracing/setup/nodejs/