node-redis (OpenTelemetry)

The AppSignal for Node.js integration with OpenTelemetry for node-redis, through the redis package v3.0.0+.

Installation

First follow the OpenTelemetry installation instructions.

In the appsignal.js file, disable the AppSignal Redis instrumentation by adding the instrumentRedis: false option to the configuration.

// appsignal.js
// The start of the appsignal.js file, see the installation instructions
 
const appsignal = new Appsignal({
  // Other config here
  instrumentRedis: false,
});
 
// The rest of the appsignal.js file, see the installation instructions

In the tracing.js file, add the OpenTelemetry RedisInstrumentation to the list of instrumentations.

// tracing.js
// The start of the tracing.js file, see the installation instructions
 
// Add the RedisInstrumentation import
const {
  RedisInstrumentation,
} = require("@opentelemetry/instrumentation-redis");
 
const sdk = new opentelemetry.NodeSDK({
  instrumentations: [
    // Other instrumention here
 
    // Add the RedisInstrumentation
    new RedisInstrumentation(),
  ],
});
 
// The rest of the tracing.js file, see the installation instructions

Configuration

By default the Redis instrumentation does not include any queries in the event data sent to AppSignal, only the type of query (get/set/etc).

If you want to include sanitized query data, a dbStatementSerializer must be configured. We recommend using the AppSignal dbStatementSerializer to sanitize queries.

// tracing.js
// The start of the tracing.js file, see the installation instructions
 
// Add the RedisDbStatementSerializer import
const { RedisDbStatementSerializer } = require("@appsignal/nodejs");
// Add the RedisInstrumentation import
const {
  RedisInstrumentation,
} = require("@opentelemetry/instrumentation-redis");
 
const sdk = new opentelemetry.NodeSDK({
  instrumentations: [
    // Other instrumention here
 
    // Add the RedisInstrumentation
    new RedisInstrumentation({
      // Configure the AppSignal RedisDbStatementSerializer to sanitize queries
      dbStatementSerializer: RedisDbStatementSerializer,
    }),
  ],
});
 
// The rest of the tracing.js file, see the installation instructions

Warning: By configuring a dbStatementSerializer that does not sanitize Redis queries the app may send Personal Identifiable Information (PII) and other sensitive data to AppSignal. We recommend you do not send any unsanitized queries.

Want to help us improve this documentation page?

Create a pull request

Need more help?

Contact us and speak directly with the engineers working on AppSignal. They will help you get set up, tweak your code and make sure you get the most out of using AppSignal.

Contact us

Start a trial - 30 days free

AppSignal is a great way to monitor your Ruby, Elixir & Node.js applications. Works great with Rails, Phoenix, Express and other frameworks, with support for background jobs too. Let's improve your apps together.

Start a trial