npm.io
0.67.0 • Published 1 week ago

@opentelemetry/instrumentation-mysql2

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

OpenTelemetry mysql Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the mysql2 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-mysql2

Supported Versions

Usage

OpenTelemetry MySQL2 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 mysql2.

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 { MySQL2Instrumentation } = require('@opentelemetry/instrumentation-mysql2');

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

You can set the following instrumentation options:

Options Type Description
responseHook MySQL2InstrumentationExecutionResponseHook (function) Function for adding custom attributes from db response
addSqlCommenterCommentToQueries boolean If true, adds sqlcommenter specification compliant comment to queries with tracing context (default false). NOTE: A comment will not be added to queries that already contain -- or /* ... */ in them, even if these are not actually part of comments
maskStatement boolean If true, masks the db.statement attribute in spans (default false) with the maskStatementHook
maskStatementHook MySQL2InstrumentationMaskStatementHook (function) Function for masking the db.statement attribute in spans Default: return query.replace(/\b\d+\b/g, '?').replac(/(["'])(?:(?=(\\?))\2.)*?\1/g, '?');

Semantic Conventions

The @opentelemetry/instrumentation-mysql2 versions 0.66.0 and later emit the stable v1.33.0+ semantic conventions.

Attribute Description
db.system.name The database system. Always 'mysql'.
db.query.text The database query being executed.
db.namespace The name of the database, fully qualified within the server address and port.
server.address Remote hostname or similar.
server.port Remote port number.

License

Apache 2.0 - See LICENSE for more information.

Keywords