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