@@ -70,6 +70,7 @@ const kPerfHooksDnsLookupServiceContext = Symbol('kPerfHooksDnsLookupServiceCont
7070const kPerfHooksDnsLookupResolveContext = Symbol ( 'kPerfHooksDnsLookupResolveContext' ) ;
7171
7272const {
73+ hasObserver,
7374 startPerf,
7475 stopPerf,
7576} = require ( 'internal/perf/observe' ) ;
@@ -83,7 +84,9 @@ function onlookup(err, addresses) {
8384 return this . callback ( dnsException ( err , 'getaddrinfo' , this . hostname ) ) ;
8485 }
8586 this . callback ( null , addresses [ 0 ] , this . family || isIP ( addresses [ 0 ] ) ) ;
86- stopPerf ( this , kPerfHooksDnsLookupContext ) ;
87+ if ( this [ kPerfHooksDnsLookupContext ] && hasObserver ( 'dns' ) ) {
88+ stopPerf ( this , kPerfHooksDnsLookupContext ) ;
89+ }
8790}
8891
8992
@@ -102,7 +105,9 @@ function onlookupall(err, addresses) {
102105 }
103106
104107 this . callback ( null , addresses ) ;
105- stopPerf ( this , kPerfHooksDnsLookupContext ) ;
108+ if ( this [ kPerfHooksDnsLookupContext ] && hasObserver ( 'dns' ) ) {
109+ stopPerf ( this , kPerfHooksDnsLookupContext ) ;
110+ }
106111}
107112
108113
@@ -187,13 +192,15 @@ function lookup(hostname, options, callback) {
187192 process . nextTick ( callback , dnsException ( err , 'getaddrinfo' , hostname ) ) ;
188193 return { } ;
189194 }
190- const detail = {
191- hostname,
192- family,
193- hints,
194- verbatim,
195- } ;
196- startPerf ( req , kPerfHooksDnsLookupContext , { type : 'dns' , name : 'lookup' , detail } ) ;
195+ if ( hasObserver ( 'dns' ) ) {
196+ const detail = {
197+ hostname,
198+ family,
199+ hints,
200+ verbatim,
201+ } ;
202+ startPerf ( req , kPerfHooksDnsLookupContext , { type : 'dns' , name : 'lookup' , detail } ) ;
203+ }
197204 return req ;
198205}
199206
@@ -206,7 +213,9 @@ function onlookupservice(err, hostname, service) {
206213 return this . callback ( dnsException ( err , 'getnameinfo' , this . hostname ) ) ;
207214
208215 this . callback ( null , hostname , service ) ;
209- stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
216+ if ( this [ kPerfHooksDnsLookupServiceContext ] && hasObserver ( 'dns' ) ) {
217+ stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
218+ }
210219}
211220
212221
@@ -231,14 +240,16 @@ function lookupService(address, port, callback) {
231240
232241 const err = cares . getnameinfo ( req , address , port ) ;
233242 if ( err ) throw dnsException ( err , 'getnameinfo' , address ) ;
234- startPerf ( req , kPerfHooksDnsLookupServiceContext , {
235- type : 'dns' ,
236- name : 'lookupService' ,
237- detail : {
238- host : address ,
239- port
240- }
241- } ) ;
243+ if ( hasObserver ( 'dns' ) ) {
244+ startPerf ( req , kPerfHooksDnsLookupServiceContext , {
245+ type : 'dns' ,
246+ name : 'lookupService' ,
247+ detail : {
248+ host : address ,
249+ port
250+ }
251+ } ) ;
252+ }
242253 return req ;
243254}
244255
@@ -255,7 +266,9 @@ function onresolve(err, result, ttls) {
255266 this . callback ( dnsException ( err , this . bindingName , this . hostname ) ) ;
256267 else {
257268 this . callback ( null , result ) ;
258- stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
269+ if ( this [ kPerfHooksDnsLookupResolveContext ] && hasObserver ( 'dns' ) ) {
270+ stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
271+ }
259272 }
260273}
261274
@@ -278,14 +291,16 @@ function resolver(bindingName) {
278291 req . ttl = ! ! ( options && options . ttl ) ;
279292 const err = this . _handle [ bindingName ] ( req , toASCII ( name ) ) ;
280293 if ( err ) throw dnsException ( err , bindingName , name ) ;
281- startPerf ( req , kPerfHooksDnsLookupResolveContext , {
282- type : 'dns' ,
283- name : bindingName ,
284- detail : {
285- host : name ,
286- ttl : req . ttl
287- }
288- } ) ;
294+ if ( hasObserver ( 'dns' ) ) {
295+ startPerf ( req , kPerfHooksDnsLookupResolveContext , {
296+ type : 'dns' ,
297+ name : bindingName ,
298+ detail : {
299+ host : name ,
300+ ttl : req . ttl
301+ }
302+ } ) ;
303+ }
289304 return req ;
290305 }
291306 ObjectDefineProperty ( query , 'name' , { value : bindingName } ) ;
0 commit comments