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

Я не могу увидеть следы для моего приложения в APM -> Сервис в Datadog. Я нашел пример кода из документации Datadog, но не знаю точно, где он должен находиться внутри моего приложения. Пожалуйста, дайте мне знать, если у кого-нибудь есть идеи по этому поводу.

Я уже пробовал использовать следующий код в моем файле js. Мое приложение основано на узле js, который не имеет сервера.

const tracer = require('dd-trace').init();
tracer.use('http', {
    service: 'test'
});

Я также добавил зависимости для dd-trace в package.json как "dd-trace": "^0.11.0"

Я ожидал указать свое приложение с правильным именем в APM Services в Datadog.

1 Ответ

1 голос
/ 25 апреля 2019

То, что вы делаете, является правильным, однако, распространенная ошибка заключается не в следующем.

Эта библиотека ДОЛЖНА быть импортирована и инициализирована до того, как модуль. При использовании транспилятора вы ДОЛЖНЫ импортировать и инициализировать библиотека трассировки во внешнем файле, а затем импортировать этот файл как целое при создании приложения. Это предотвращает подъем и гарантирует, что библиотека трассировки будет импортирована и инициализирована до импорт любого другого инструментированного модуля.

Как правило, вы не можете иметь require(any instrumented lib) (например, http, express и т. Д.) Перед вызовом функции трассировки init ().

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

...