OpenTelemetry Tedious Instrumentation for Node.js
This module provides automatic instrumentation for the tedious 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-tedious
Supported Versions
- tedious
>=1.11.0 <21
Usage
OpenTelemetry Tedious Instrumentation allows the user to automatically collect trace data and export them to the backend of choice, to give observability to distributed systems when working with tedious.
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 { TediousInstrumentation } = require('@opentelemetry/instrumentation-tedious');
const sdk = new NodeSDK({
instrumentations: [
new TediousInstrumentation(),
],
});
sdk.start();
process.once('beforeExit', async () => { await sdk.shutdown(); });
Semantic Conventions
This instrumentation creates spans with attributes from the stable database and networking semantic conventions.
The instrumentation-tedious versions 0.39.0 and later emit the stable v1.33.0+ semantic conventions.
| Attribute | Description |
|---|---|
db.system.name |
Database system identifier: 'microsoft.sql_server' |
db.query.text |
The database query being executed. |
db.namespace |
The database associated with the connection. |
db.collection.name |
The name of a collection (table, container) within the database. |
server.address |
Remote hostname or similar. |
server.port |
Remote port number. |
Trace Context Propagation
Database trace context propagation can be enabled by setting enableTraceContextPropagationto true.
This uses the SET CONTEXT_INFO
command to set traceparentinformation
for the current connection, which results in an additional round-trip to the database.
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.