UNPKG

newrelic-nestjs-instrumentation

Version:

Comprehensive New Relic instrumentation for NestJS applications - SQS, Kafka, HTTP/2, cron jobs and custom protocols

33 lines 1.47 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startUnhandledNewrelicTransaction = startUnhandledNewrelicTransaction; const newrelic_1 = __importDefault(require("newrelic")); const internal_1 = require("./internal"); function startUnhandledNewrelicTransaction(transactionName, type = 'web', customCB) { const transaction = newrelic_1.default.getTraceMetadata(); let transactionId = transaction?.traceId; if (transactionId) return {}; const startResult = newrelic_1.default[type === 'web' ? 'startWebTransaction' : 'startBackgroundTransaction'](transactionName, () => { const result = newrelic_1.default.getTransaction(); customCB?.(result); return { traceData: newrelic_1.default.getTraceMetadata(), newTransaction: result, context: (0, internal_1.getNewrelicContext)(), }; }); transactionId = startResult.traceData.traceId; if (transactionId) { (0, internal_1.setNewrelicContext)(startResult.context); internal_1.customNewrelicContext.setCustomTransaction(startResult.newTransaction, startResult.traceData); } return { transaction: startResult.newTransaction, transactionId, }; } //# sourceMappingURL=start-unhandled-newrelic-transaction.js.map