@@ -50,33 +50,33 @@ class ExpressHttpProxyInstrumentation {
5050
5151function wrapProxy ( proxy , { tracer, serviceName, remoteServiceName} ) {
5252 return function zipkinProxy ( host , options = { } ) {
53- function wrapDecorateRequest ( instrumentation , decorateRequest ) {
53+ function wrapProxyReqOptDecorator ( instrumentation , proxyReqOptDecorator ) {
5454 return ( proxyReq , serverReq ) => {
5555 const serverTraceId = serverReq . _trace_id ;
5656 let wrappedProxyReq = proxyReq ;
57- if ( typeof decorateRequest === 'function' ) {
57+ if ( typeof proxyReqOptDecorator === 'function' ) {
5858 tracer . letId ( serverTraceId , ( ) => {
59- wrappedProxyReq = decorateRequest ( proxyReq , serverReq ) ;
59+ wrappedProxyReq = proxyReqOptDecorator ( proxyReq , serverReq ) ;
6060 } ) ;
6161 }
6262
6363 return instrumentation . decorateAndRecordRequest ( serverReq , wrappedProxyReq , serverTraceId ) ;
6464 } ;
6565 }
6666
67- function wrapIntercept ( instrumentation , intercept ) {
68- return ( rsp , data , serverReq , res , callback ) => {
69- const instrumentedCallback = ( err , rspd , sent ) => {
70- instrumentation . recordResponse ( rsp , serverReq . _trace_id_proxy ) ;
71- return callback ( err , rspd , sent ) ;
72- } ;
73-
67+ function wrapUserResDecorator ( instrumentation , userResDecorator ) {
68+ return ( rsp , data , serverReq , res ) => {
7469 const serverTraceId = serverReq . _trace_id ;
75- if ( typeof intercept === 'function' ) {
76- tracer . letId ( serverTraceId ,
77- ( ) => intercept ( rsp , data , serverReq , res , instrumentedCallback ) ) ;
70+ if ( typeof userResDecorator === 'function' ) {
71+ let decoratedResponse ;
72+ tracer . letId ( serverTraceId , ( ) => {
73+ decoratedResponse = userResDecorator ( rsp , data , serverReq , res ) ;
74+ instrumentation . recordResponse ( rsp , serverReq . _trace_id_proxy ) ;
75+ } ) ;
76+ return decoratedResponse ;
7877 } else {
79- instrumentedCallback ( null , data ) ;
78+ instrumentation . recordResponse ( rsp , serverReq . _trace_id_proxy ) ;
79+ return data ;
8080 }
8181 } ;
8282 }
@@ -87,11 +87,13 @@ function wrapProxy(proxy, {tracer, serviceName, remoteServiceName}) {
8787
8888 const wrappedOptions = options ;
8989
90- const { decorateRequest} = wrappedOptions ;
91- wrappedOptions . decorateRequest = wrapDecorateRequest ( instrumentation , decorateRequest ) ;
90+ const { proxyReqOptDecorator} = wrappedOptions ;
91+ wrappedOptions . proxyReqOptDecorator = wrapProxyReqOptDecorator (
92+ instrumentation , proxyReqOptDecorator
93+ ) ;
9294
93- const { intercept } = wrappedOptions ;
94- wrappedOptions . intercept = wrapIntercept ( instrumentation , intercept ) ;
95+ const { userResDecorator } = wrappedOptions ;
96+ wrappedOptions . userResDecorator = wrapUserResDecorator ( instrumentation , userResDecorator ) ;
9597
9698 return proxy ( host , wrappedOptions ) ;
9799 } ;
0 commit comments