npm.io
0.67.0 • Published 1 week ago

@opentelemetry/instrumentation-mongoose

Licence
Apache-2.0
Version
0.67.0
Deps
3
Size
83 kB
Vulns
0
Weekly
0
Stars
917

OpenTelemetry mongoose Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the mongoose module.

If total installation size is not constrained, it is recommended to use the @opentelemetry/auto-instrumentations-node bundle with @opentelemetry/sdk-node for the most seamless instrumentation experience.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-mongoose

Supported Versions

Usage

To enable a specific instrumentation, pass it to registerInstrumentations(). This is commonly done via NodeSDK for fully setting up all OpenTelemetry SDK components:

const { NodeSDK } = require('@opentelemetry/sdk-node');
const { MongooseInstrumentation } = require('@opentelemetry/instrumentation-mongoose');

const sdk = new NodeSDK({
  instrumentations: [
    new MongooseInstrumentation(),
  ],
});
sdk.start();
process.once('beforeExit', async () => { await sdk.shutdown(); });

Semantic Conventions

This instrumentation uses Semantic Conventions for database calls and network.

The instrumentation-mongoose versions 0.66.0 and later emit the stable v1.33.0+ semantic conventions.

Attribute Description
db.system.name An identifier for the database management system (DBMS) product being used. Value: 'mongodb'
db.collection.name The collection being accessed within the database.
db.namespace The name of the database being accessed.
db.operation.name The name of the operation being executed.
db.query.text The database statement being executed (only set when dbStatementSerializer is configured).
server.address Remote hostname or similar.
server.port Remote port number.

Span name format: {operation} {collection} (e.g., save users)

License

Apache 2.0 - See LICENSE for more information.

Keywords