0.37.1 • Published 5 days ago

@opentelemetry/instrumentation-nestjs-core v0.37.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
5 days ago

OpenTelemetry NestJS Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the Nest framework module, which may be loaded using the @opentelemetry/sdk-trace-node package and is included in the @opentelemetry/auto-instrumentations-node bundle.

If total installation size is not constrained, it is recommended to use the @opentelemetry/auto-instrumentations-node bundle with @opentelemetry/sdk-node for the most seamless instrumentation experience.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-nestjs-core

Supported Versions

  • >=4.0.0

Usage

OpenTelemetry Nest Instrumentation allows the user to automatically collect trace data from the controller handlers and export them to the backend of choice.

To load a specific instrumentation (Nest in this case), specify it in the registerInstrumentations' configuration.

const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { NestInstrumentation } = require('@opentelemetry/instrumentation-nestjs-core');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

const provider = new NodeTracerProvider();
provider.register();

registerInstrumentations({
  instrumentations: [
    new NestInstrumentation(),
  ],
});

Emitted Spans

Namenestjs.typeDescriptionIncluded attributes
Create Nest Appapp_creationTraces the bootup for the Nest App. The NestFactory(Static).create call.nestjs.module
<ControllerName>.<memberName>request_contextTraces the whole request context.http.*, nestjs.callback
<memberName>handlerTraces the work of a specific controller member function.nestjs.callback

Attributes

NameDescription
component*"@nestjs/core"
nestjs.version*Version of instrumented @nestjs/core package
nestjs.type*See NestType
nestjs.moduleNest module class name
nestjs.controllerNest controller class name
nestjs.callbackThe function name of the member in the controller
http.methodHTTP method
http.urlFull request URL
http.routeRoute assigned to handler. Ex: /users/:id

* included in all of the spans.

Useful links

License

Apache 2.0 - See LICENSE for more information.