Skip to content

mnadeem/opentelemetry-instrumentation-mssql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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