OpenTelemetry ioredis automatic instrumentation package.
$ cnpm install @opentelemetry/plugin-ioredis
This module provides automatic instrumentation for ioredis.
For automatic instrumentation see the @opentelemetry/node package.
npm install --save @opentelemetry/plugin-ioredis
>=2.0.0To load a specific plugin (ioredis in this case), specify it in the registerInstrumentations's configuration
const { NodeTracerProvider } = require('@opentelemetry/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [
{
plugins: {
ioredis: {
enabled: true,
// You may use a package name or absolute path to the file.
path: '@opentelemetry/plugin-ioredis',
}
}
},
],
tracerProvider: provider,
});
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 { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
tracerProvider: provider,
});
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;
}
}
}
});
Apache 2.0 - See LICENSE for more information.
Copyright 2013 - present © cnpmjs.org | Home |