Skip to content

Mongoose

autotel-mongoose instruments Mongoose 8+ with stable semantic conventions, query text capture, and default PII redaction.

Terminal window
npm install autotel autotel-mongoose mongoose
import mongoose from 'mongoose';
import { init } from 'autotel';
import { instrumentMongoose } from 'autotel-mongoose';
init({ service: 'my-app', endpoint: 'http://localhost:4318' });
instrumentMongoose(mongoose, { dbName: 'myapp' });
const User = mongoose.model(
'User',
new mongoose.Schema({ name: String, email: String }),
);
await User.findOne({ email: 'alice@example.com' }).exec();
// Span: "find users" with db.query.text (PII redacted)
instrumentMongoose(mongoose, { instrumentHooks: true });
userSchema.pre('save', async function () {
this.set('name', this.get('name')?.trim());
// Pre/post hooks get their own spans
});
Option Default Description
dbName Database name
peerName MongoDB host
peerPort MongoDB port
captureCollectionName true Include collection in span
instrumentHooks false Wrap pre/post hooks
dbStatementSerializer built-in Custom query serializer
statementRedactor 'default' PII redaction preset
  • example-mongoose: Mongoose with query text capture, PII redaction, and hook instrumentation.

Uses stable OTel conventions only:

  • db.system.name
  • db.operation.name
  • db.collection.name
  • db.namespace
  • db.query.text
  • server.address / server.port