Socket
Socket
Sign inDemoInstall

@opentelemetry/plugin-ioredis

Package Overview
Dependencies
5
Maintainers
4
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @opentelemetry/plugin-ioredis

OpenTelemetry ioredis automatic instrumentation package.


Version published
Maintainers
4
Install size
539 kB
Created

Changelog

Source

0.14.0

:bug: Bug Fix

  • #367 docs(readme): fix links (@Hongbo-Miao)

:rocket: Enhancement

  • #354 refactor: migrate mongodb to instrumentation #250 (@vmarchaud)
  • #381 chore: fixing the graphql example and allowing support version of graph from ver 14 (@obecny)
  • #372 feat(instrumentation-ioredis): add requireParentSpan option to config (@blumamir)

:house: Internal

Committers: 5

Readme

Source

OpenTelemetry ioredis Instrumentation for Node.js

Gitter chat 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:

OptionsTypeDescription
dbStatementSerializerDbStatementSerializerIORedis 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;
      }
    }
  }
});

License

Apache 2.0 - See LICENSE for more information.

Keywords

FAQs

Last updated on 05 Mar 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc