@opentelemetry/plugin-ioredisdeprecated

OpenTelemetry ioredis automatic instrumentation package.

Usage no npm install needed!

<script type="module">
  import opentelemetryPluginIoredis from 'https://cdn.skypack.dev/@opentelemetry/plugin-ioredis';
</script>

README

OpenTelemetry ioredis Instrumentation for Node.js

NPM Published Version dependencies devDependencies Apache License

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 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 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

License

Apache 2.0 - See LICENSE for more information.