@sentry/node
Version:
Sentry Node SDK using OpenTelemetry for performance instrumentation
51 lines (47 loc) • 1.88 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const core = require('@sentry/core');
const dc = require('node:diagnostics_channel');
const serverUtils = require('@sentry/server-utils');
const nodeCore = require('@sentry/node-core');
const diagnosticsChannelInjection = require('../../../sdk/diagnosticsChannelInjection.js');
const cache = require('./cache.js');
const ioredisInstrumentation = require('./vendored/ioredis-instrumentation.js');
const redisInstrumentation = require('./vendored/redis-instrumentation.js');
const INTEGRATION_NAME = "Redis";
const instrumentIORedis = nodeCore.generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {
return new ioredisInstrumentation.IORedisInstrumentation({
responseHook: cache.cacheResponseHook
});
});
const instrumentRedisModule = nodeCore.generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {
return new redisInstrumentation.RedisInstrumentation({
responseHook: cache.cacheResponseHook
});
});
const instrumentRedis = Object.assign(
() => {
if (!diagnosticsChannelInjection.isDiagnosticsChannelInjectionEnabled() || !dc.tracingChannel) {
instrumentIORedis();
instrumentRedisModule();
}
},
{ id: INTEGRATION_NAME }
);
const _redisIntegration = ((options = {}) => {
return core.extendIntegration(serverUtils.redisIntegration({ responseHook: cache.cacheResponseHook }), {
name: INTEGRATION_NAME,
setupOnce() {
cache.setRedisOptions(options);
instrumentRedis();
}
});
});
const redisIntegration = core.defineIntegration(_redisIntegration);
Object.defineProperty(exports, "_redisOptions", {
enumerable: true,
get: () => cache._redisOptions
});
exports.cacheResponseHook = cache.cacheResponseHook;
exports.instrumentRedis = instrumentRedis;
exports.redisIntegration = redisIntegration;
//# sourceMappingURL=index.js.map