@@ -70,6 +70,7 @@ const kPerfHooksDnsLookupServiceContext = Symbol('kPerfHooksDnsLookupServiceCont
70
70
const kPerfHooksDnsLookupResolveContext = Symbol ( 'kPerfHooksDnsLookupResolveContext' ) ;
71
71
72
72
const {
73
+ hasObserver,
73
74
startPerf,
74
75
stopPerf,
75
76
} = require ( 'internal/perf/observe' ) ;
@@ -83,7 +84,9 @@ function onlookup(err, addresses) {
83
84
return this . callback ( dnsException ( err , 'getaddrinfo' , this . hostname ) ) ;
84
85
}
85
86
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
+ }
87
90
}
88
91
89
92
@@ -102,7 +105,9 @@ function onlookupall(err, addresses) {
102
105
}
103
106
104
107
this . callback ( null , addresses ) ;
105
- stopPerf ( this , kPerfHooksDnsLookupContext ) ;
108
+ if ( this [ kPerfHooksDnsLookupContext ] && hasObserver ( 'dns' ) ) {
109
+ stopPerf ( this , kPerfHooksDnsLookupContext ) ;
110
+ }
106
111
}
107
112
108
113
@@ -187,13 +192,15 @@ function lookup(hostname, options, callback) {
187
192
process . nextTick ( callback , dnsException ( err , 'getaddrinfo' , hostname ) ) ;
188
193
return { } ;
189
194
}
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
+ }
197
204
return req ;
198
205
}
199
206
@@ -206,7 +213,9 @@ function onlookupservice(err, hostname, service) {
206
213
return this . callback ( dnsException ( err , 'getnameinfo' , this . hostname ) ) ;
207
214
208
215
this . callback ( null , hostname , service ) ;
209
- stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
216
+ if ( this [ kPerfHooksDnsLookupServiceContext ] && hasObserver ( 'dns' ) ) {
217
+ stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
218
+ }
210
219
}
211
220
212
221
@@ -231,14 +240,16 @@ function lookupService(address, port, callback) {
231
240
232
241
const err = cares . getnameinfo ( req , address , port ) ;
233
242
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
+ }
242
253
return req ;
243
254
}
244
255
@@ -255,7 +266,9 @@ function onresolve(err, result, ttls) {
255
266
this . callback ( dnsException ( err , this . bindingName , this . hostname ) ) ;
256
267
else {
257
268
this . callback ( null , result ) ;
258
- stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
269
+ if ( this [ kPerfHooksDnsLookupResolveContext ] && hasObserver ( 'dns' ) ) {
270
+ stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
271
+ }
259
272
}
260
273
}
261
274
@@ -278,14 +291,16 @@ function resolver(bindingName) {
278
291
req . ttl = ! ! ( options && options . ttl ) ;
279
292
const err = this . _handle [ bindingName ] ( req , toASCII ( name ) ) ;
280
293
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
+ }
289
304
return req ;
290
305
}
291
306
ObjectDefineProperty ( query , 'name' , { __proto__ : null , value : bindingName } ) ;
0 commit comments