OpenTelemetry ioredis Instrumentation for Node.js
This module provides automatic instrumentation for ioredis
.
For automatic instrumentation see the
@opentelemetry/node package.
Installation
npm install --save @opentelemetry/plugin-ioredis
Supported Versions
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,
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,
path: '@opentelemetry/plugin-ioredis',
dbStatementSerializer: function (cmdName, cmdArgs) {
return cmdName;
}
}
}
});
Useful links
License
Apache 2.0 - See LICENSE for more information.