0.1.2 • Published 8 months ago

@revai-care/instrumentation-adonisjs-6 v0.1.2

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

OpenTelemetry AdonisJS Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the AdonisJS framework module, which may be loaded using the @opentelemetry/sdk-trace-node package.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @revai-care/instrumentation-adonisjs-6

Usage

OpenTelemetry AdonisJS Instrumentation allows the user to automatically collect trace data from the request handlers, middleware, and error handling within AdonisJS applications, and export them to the backend of choice.

To load the AdonisJS instrumentation, specify it in the registerInstrumentations configuration.

const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { AdonisInstrumentation } = require('@my-company/instrumentation-adonisjs');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

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

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

Emitted Spans

Nameadonisjs.typeDescriptionIncluded attributes
request handler - <route>request_handlerTraces the execution of a request handler.http.*, adonisjs.namespace, adonisjs.method
middleware - <middlewareName>middlewareTraces the execution of middleware.http.*, adonisjs.namespace, adonisjs.method
ExceptionHandler.reportexception_handlerTraces the error reporting by the ExceptionHandler.http.*, adonisjs.namespace, adonisjs.method

Semantic Conventions

This package uses @opentelemetry/semantic-conventions version 1.27+, which implements Semantic Convention Version 1.7.0.

Semantic conventions

This package uses @opentelemetry/semantic-conventions version 1.22+, which implements Semantic Convention Version 1.7.0

Attributes collected:

AttributeShort Description
component*"@adonisjs/core"
adonisjs.version*Version of instrumented @adonisjs/core package
adonisjs.type*See AdonisType
adonisjs.namespaceClass name of the handler or middleware.
adonisjs.methodName of the method executed within the handler or middleware.
http.methodHTTP method
http.urlFull request URL
http.routeRoute assigned to handler. Ex: /users/:id
http.pathRoute pattern. Ex: /users/:id

* included in all of the spans.

Useful links