@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
JavaScript
;
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;