UNPKG

@hyperdx/instrumentation-sentry-node

Version:

[![NPM Published Version][npm-img]][npm-url] [![Apache License][license-image]][license-image]

47 lines (46 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SentryNodeInstrumentation = void 0; const api_1 = require("@opentelemetry/api"); const instrumentation_1 = require("@opentelemetry/instrumentation"); const hyperdxIntegration_1 = require("./hyperdxIntegration"); const package_json_1 = require("../package.json"); class SentryNodeInstrumentation extends instrumentation_1.InstrumentationBase { constructor(config = {}) { super(package_json_1.name, package_json_1.version, config); } setConfig(config = {}) { this._config = Object.assign({}, config); } getConfig() { return this._config; } init() { return [ new instrumentation_1.InstrumentationNodeModuleDefinition('@sentry/node', ['>=7.30.0 <9'], (moduleExports) => { api_1.diag.debug(`Detected Sentry installed with SDK version: ${moduleExports.SDK_VERSION}`); this._wrap(moduleExports, 'init', (original) => { return (...args) => { const result = original.apply(this, args); try { if (moduleExports.addIntegration instanceof Function) { moduleExports.addIntegration((0, hyperdxIntegration_1.hyperdxIntegration)()); api_1.diag.debug('Added HyperDX Sentry integration'); } else { api_1.diag.error('Sentry SDK does not support addIntegration method'); } } catch (e) { api_1.diag.error('Error adding HyperDX Sentry integration', e); } return result; }; }); return moduleExports; }, (moduleExports) => { }), ]; } } exports.SentryNodeInstrumentation = SentryNodeInstrumentation;