diff --git a/lib/instrumentation/module/express.js b/lib/instrumentation/module/express.js index c30c856b..836805a2 100644 --- a/lib/instrumentation/module/express.js +++ b/lib/instrumentation/module/express.js @@ -136,10 +136,23 @@ module.exports = function (agent, version, express) { } else { handle = function (err, req, res, next) { const trace = agent.traceContext.currentTraceObject() + let spanEventRecorder = null if (shouldReport(err, trace)) { - + spanEventRecorder = trace.traceBlockBegin() + spanEventRecorder.recordServiceType(ServiceTypeCode.express) + spanEventRecorder.recordException(err, true) + const methodDescriptor = getMethodDescriptor(objectName, layerName, req.method) + if (methodDescriptor) { + spanEventRecorder.recordApi(getMethodDescriptor(objectName, layerName, req.method)) + } else { + spanEventRecorder.recordApiDesc(getDescriptionText(objectName, layerName, req.method)) + } } - return origin.apply(this, arguments) + const result = origin.apply(this, arguments) + if (trace) { + trace.traceBlockEnd(spanEventRecorder) + } + return result } }