mnadeem / opentelemetry-instrumentation-mssql

Opentelemetry js plugin for mssql npm to enable Auto instrumentation for db calls.

Home Page:https://reachmnadeem.wordpress.com/2021/02/22/opentelemetry-automatic-instrumentation-of-a-nodejs-library/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenTelemetry mssql Instrumentation for Node.js

This module provides automatic instrumentation for mssql

There are 2️⃣ variations

Instrumention Variation

This is the recomended variation. The source code can be found here

Installation

npm install --save opentelemetry-instrumentation-mssql

Usage

const { NodeTracerProvider } = require('@opentelemetry/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { MssqlInstrumentation } = require('opentelemetry-instrumentation-mssql');

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

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

MSSQL Instrumentation Options

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

Options Type Description
ignoreOrphanedSpans boolean Set to true if you only want to trace operation which has parent spans

Versions

Instrumentation Version OTEL Version
0.0.2 0.15.0
0.1.1 0.16.0
0.2.1 0.17.0
0.3.1 0.18.0

Plugin Variation

This variation would be depreciated soon. The source code can be found here

Installation

npm install --save opentelemetry-plugin-mssql

Usage

import {LogLevel} from '@opentelemetry/core'
import {NodeTracerProvider} from '@opentelemetry/node'
import {registerInstrumentations} from '@opentelemetry/instrumentation'

// Enable OpenTelemetry exporters to export traces to Grafan Tempo.
const provider = new NodeTracerProvider ({
    plugins: {
        mssql: {
            enabled: true,
            // You may use a package name or absolute path to the file.
            path: "opentelemetry-plugin-mssql",
        },
    },
    logLevel: LogLevel.ERROR,      
});

registerInstrumentations({
    tracerProvider: provider
});

Versions

Plugin Version OTEL Version
0.1.0 0.15.0
0.2.0 0.16.0
0.3.0 0.17.0

Sample Trace

Instrumentation

Supported

  • Request.query
  • ConnectionPool.query
  • ConnectionPool.request

Future

  • Request.execute
  • Request.batch
  • Request.bulk
  • ConnectionPool.batch

Misc

Start mssql server as follows (for development)

docker run  -p 1433:1433 -d -e ACCEPT_EULA=Y --name otmssql -e SA_PASSWORD=P@ssw0rd mcr.microsoft.com/mssql/server

Example

About

Opentelemetry js plugin for mssql npm to enable Auto instrumentation for db calls.

https://reachmnadeem.wordpress.com/2021/02/22/opentelemetry-automatic-instrumentation-of-a-nodejs-library/


Languages

Language:TypeScript 100.0%