Подключение наблюдения в Nest
Приложение уже отвечает по HTTP, но ни один запрос не попадает в дашборд: агент не установлен и Nest не получил крючок инструментирования при создании экземпляра.
createObserveModule
возвращает пару: динамический
ObserveModule для импорта
в корневой модуль и
ObserveInstrument
для опции instrument
при вызове фабрики приложения.
В forRoot передают
ключ сервиса, секрет и имя
сервиса; значения удобно брать
из переменных окружения
OBSERVE_APP_KEY
и OBSERVE_APP_SECRET.
Покажем на примере постов:
npm install @nestjs/observe
Вынесем фабрику модуля в отдельный файл:
import { createObserveModule } from '@nestjs/observe';
export const { ObserveModule, ObserveInstrument } =
createObserveModule();
Подключим модуль в корне и укажем учётные данные:
import { Module } from '@nestjs/common';
import { ObserveModule } from './observe.js';
@Module({
imports: [
ObserveModule.forRoot({
appKey: process.env.OBSERVE_APP_KEY!,
appSecret: process.env.OBSERVE_APP_SECRET!,
serviceId: 'posts-api',
}),
],
})
export class AppModule {}
В точке входа передадим крючок инструментирования в опции создания приложения:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.js';
import { ObserveInstrument } from './observe.js';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
instrument: ObserveInstrument,
});
await app.listen(3000);
}
bootstrap();
Подключите наблюдение в корневом модуле приложения работников и передайте инструмент при создании приложения.