@opentelemetry/instrumentation-sequelize
v0.15.0
Published
OpenTelemetry instrumentation for `sequelize` ORM
Readme
OpenTelemetry sequelize Instrumentation for Node.js
This module provides automatic instrumentation for the sequelize package.
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.
Installation
npm install --save @opentelemetry/instrumentation-sequelizeSupported versions
sequelizeversions>=6 <7
Usage
const { NodeSDK } = require('@opentelemetry/sdk-node');
const { SequelizeInstrumentation } = require('@opentelemetry/instrumentation-sequelize');
const sdk = new NodeSDK({
instrumentations: [
new SequelizeInstrumentation({
// see below for available configuration
}),
],
});
sdk.start();
process.once('beforeExit', async () => { await sdk.shutdown(); });Instrumentation Options
You can set the following:
| Options | Type | Description |
| --------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| queryHook | SequelizeQueryHook | Function called before running the query. Allows for adding custom attributes to the span. |
| responseHook | SequelizeResponseCustomAttributesFunction | Function called after a response is received. Allows for adding custom attributes to the span. |
| ignoreOrphanedSpans | boolean | Can be set to only produce spans which have parent spans. Default: false |
| suppressInternalInstrumentation | boolean | Set to ignore the underlying database library instrumentation. Default: false |
Semantic Conventions
| Attribute | Short Description |
| -------------------- | --------------------------------------------------------------------------- |
| db.namespace | The name of the database being accessed. |
| db.operation.name | The name of the operation being executed (e.g. the SQL keyword). |
| db.collection.name | The name of the table being accessed. |
| db.query.text | The database statement being executed. |
| db.system.name | An identifier for the database management system (DBMS) product being used. |
| server.address | Remote address of the database. |
| server.port | Peer port number of the network connection. |
| network transport | OSI transport layer or inter-process communication method. |
Attributes collected:
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.
