@opentelemetry/instrumentation-mongoose
v0.68.0
Published
OpenTelemetry instrumentation for `mongoose` database object data modeling (ODM) library for MongoDB
Readme
OpenTelemetry mongoose Instrumentation for Node.js
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-mongooseSupported Versions
mongooseversions>=5.9.7 <10
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)
Useful links
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For help or feedback on this project, join us in GitHub Discussions
License
Apache 2.0 - See LICENSE for more information.
