0.40.0 • Published 1 month ago

@frzzzy/opentelemetry-instrumentation-typeorm v0.40.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 month ago

OpenTelemetry TypeORM Instrumentation for Node.js

NPM version

This module provides automatic instrumentation for TypeORM.

Installation

npm install --save @frzzzy/opentelemetry-instrumentation-typeorm

Supported Versions

This instrumentation supports >0.2.28:

Usage

For further automatic instrumentation instruction see the @opentelemetry/instrumentation package.

const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { TypeormInstrumentation } = require('opentelemetry-instrumentation-typeorm');

const tracerProvider = new NodeTracerProvider({
  // be sure to disable old plugin
  plugins: {
    typeorm: { enabled: false, path: 'opentelemetry-plugin-typeorm' }
  }
});

registerInstrumentations({
  tracerProvider,
  instrumentations: [
    new TypeormInstrumentation({
      // see under for available configuration
    })
  ]
});

TypeORM Instrumentation Options

TypeORM instrumentation has few options available to choose from. You can set the following:

OptionsTypeDescription
responseHookTypeormResponseCustomAttributesFunctionHook called before response is returned, which allows to add custom attributes to span.
moduleVersionAttributeNamestringIf passed, a span attribute will be added to all spans with key of the provided moduleVersionAttributeName and value of the patched module version
suppressInternalInstrumentationbooleanTypeorm operation use mongodb/postgres/mysql/mariadb/etc. under the hood. If, for example, postgres instrumentation is enabled, a postgres operation will also create a postgres span describing the communication. Setting the suppressInternalInstrumentation config value to true will cause the instrumentation to suppress instrumentation of underlying operations.
enableInternalInstrumentationbooleanSome methods such as getManyAndCount can generate internally multiple spans. To instrument those set this to true
collectParametersbooleanset to true if you want to capture the parameter values for parameterized SQL queries (may leak sensitive information)