@mzahor-test-org/plugin-ioredis
v0.0.115
Published
Aspecto fork of OpenTelemetry ioredis automatic instrumentation package.
Downloads
99
Readme
OpenTelemetry ioredis Instrumentation for Node.js
This is a fork of the plugin, to add features required by aspecto until they are merged into the main repo and published.
This module provides automatic instrumentation for ioredis
.
For automatic instrumentation see the @opentelemetry/node package.
Installation
npm install --save @opentelemetry/plugin-ioredis
Supported Versions
>=2.0.0
Usage
To load a specific plugin (ioredis in this case), specify it in the Node Tracer's configuration
const { NodeTracerProvider } = require('@opentelemetry/node');
const provider = new NodeTracerProvider({
plugins: {
ioredis: {
enabled: true,
// You may use a package name or absolute path to the file.
path: '@opentelemetry/plugin-ioredis',
}
}
});
To load all of the supported plugins, use below approach. Each plugin is only loaded when the module that it patches is loaded; in other words, there is no computational overhead for listing plugins for unused modules.
const { NodeTracerProvider } = require('@opentelemetry/node');
const provider = new NodeTracerProvider();
IORedis Plugin Options
IORedis plugin has few options available to choose from. You can set the following:
| Options | Type | Description |
| ------- | ---- | ----------- |
| dbStatementSerializer
| DbStatementSerializer
| IORedis plugin will serialize db.statement using the specified function. |
#### Custom db.statement Serializer
The plugin serializes the whole command into a Span attribute called db.statement
. The standard serialization format is {cmdName} {cmdArgs.join(',')}
.
It is also possible to define a custom serialization function. The function will receive the command name and arguments and must return a string.
Here is a simple example to serialize the command name skipping arguments:
const { NodeTracerProvider } = require('@opentelemetry/node');
const provider = new NodeTracerProvider({
plugins: {
ioredis: {
enabled: true,
// You may use a package name or absolute path to the file.
path: '@opentelemetry/plugin-ioredis',
dbStatementSerializer: function (cmdName, cmdArgs) {
return cmdName;
}
}
}
});
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 on gitter
License
Apache 2.0 - See LICENSE for more information.