@opentelemetry/instrumentation-mongodb

OpenTelemetry mongodb automatic instrumentation package.

Usage no npm install needed!

<script type="module">
  import opentelemetryInstrumentationMongodb from 'https://cdn.skypack.dev/@opentelemetry/instrumentation-mongodb';
</script>

README

OpenTelemetry mongodb Instrumentation for Node.js

NPM Published Version dependencies devDependencies Apache License

This module provides automatic instrumentation for mongodb.

For automatic instrumentation see the @opentelemetry/sdk-trace-node package.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-mongodb

Supported Versions

  • >=3.3 <4

Usage

OpenTelemetry Mongodb Instrumentation allows the user to automatically collect trace data and export them to their backend of choice, to give observability to distributed systems.

To load a specific instrumentation (mongodb in this case), specify it in the Node Tracer's configuration.

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

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

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

Mongo instrumentation Options

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

Options Type Description
enhancedDatabaseReporting string If true, additional information about query parameters and results will be attached (as attributes) to spans representing database operations
responseHook MongoDBInstrumentationExecutionResponseHook (function) Function for adding custom attributes from db response
dbStatementSerializer DbStatementSerializer (function) Custom serializer function for the db.statement tag

Useful links

License

Apache 2.0 - See LICENSE for more information.