@@ -68,6 +68,7 @@ const kPerfHooksDnsLookupServiceContext = Symbol('kPerfHooksDnsLookupServiceCont
68
68
const kPerfHooksDnsLookupResolveContext = Symbol ( 'kPerfHooksDnsLookupResolveContext' ) ;
69
69
70
70
const {
71
+ hasObserver,
71
72
startPerf,
72
73
stopPerf,
73
74
} = require ( 'internal/perf/observe' ) ;
@@ -81,7 +82,9 @@ function onlookup(err, addresses) {
81
82
return this . callback ( dnsException ( err , 'getaddrinfo' , this . hostname ) ) ;
82
83
}
83
84
this . callback ( null , addresses [ 0 ] , this . family || isIP ( addresses [ 0 ] ) ) ;
84
- stopPerf ( this , kPerfHooksDnsLookupContext ) ;
85
+ if ( this [ kPerfHooksDnsLookupContext ] && hasObserver ( 'dns' ) ) {
86
+ stopPerf ( this , kPerfHooksDnsLookupContext ) ;
87
+ }
85
88
}
86
89
87
90
@@ -100,7 +103,9 @@ function onlookupall(err, addresses) {
100
103
}
101
104
102
105
this . callback ( null , addresses ) ;
103
- stopPerf ( this , kPerfHooksDnsLookupContext ) ;
106
+ if ( this [ kPerfHooksDnsLookupContext ] && hasObserver ( 'dns' ) ) {
107
+ stopPerf ( this , kPerfHooksDnsLookupContext ) ;
108
+ }
104
109
}
105
110
106
111
@@ -173,13 +178,15 @@ function lookup(hostname, options, callback) {
173
178
process . nextTick ( callback , dnsException ( err , 'getaddrinfo' , hostname ) ) ;
174
179
return { } ;
175
180
}
176
- const detail = {
177
- hostname,
178
- family,
179
- hints,
180
- verbatim,
181
- } ;
182
- startPerf ( req , kPerfHooksDnsLookupContext , { type : 'dns' , name : 'lookup' , detail } ) ;
181
+ if ( hasObserver ( 'dns' ) ) {
182
+ const detail = {
183
+ hostname,
184
+ family,
185
+ hints,
186
+ verbatim,
187
+ } ;
188
+ startPerf ( req , kPerfHooksDnsLookupContext , { type : 'dns' , name : 'lookup' , detail } ) ;
189
+ }
183
190
return req ;
184
191
}
185
192
@@ -192,7 +199,9 @@ function onlookupservice(err, hostname, service) {
192
199
return this . callback ( dnsException ( err , 'getnameinfo' , this . hostname ) ) ;
193
200
194
201
this . callback ( null , hostname , service ) ;
195
- stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
202
+ if ( this [ kPerfHooksDnsLookupServiceContext ] && hasObserver ( 'dns' ) ) {
203
+ stopPerf ( this , kPerfHooksDnsLookupServiceContext ) ;
204
+ }
196
205
}
197
206
198
207
@@ -217,14 +226,16 @@ function lookupService(address, port, callback) {
217
226
218
227
const err = cares . getnameinfo ( req , address , port ) ;
219
228
if ( err ) throw dnsException ( err , 'getnameinfo' , address ) ;
220
- startPerf ( req , kPerfHooksDnsLookupServiceContext , {
221
- type : 'dns' ,
222
- name : 'lookupService' ,
223
- detail : {
224
- host : address ,
225
- port
226
- }
227
- } ) ;
229
+ if ( hasObserver ( 'dns' ) ) {
230
+ startPerf ( req , kPerfHooksDnsLookupServiceContext , {
231
+ type : 'dns' ,
232
+ name : 'lookupService' ,
233
+ detail : {
234
+ host : address ,
235
+ port,
236
+ } ,
237
+ } ) ;
238
+ }
228
239
return req ;
229
240
}
230
241
@@ -241,7 +252,9 @@ function onresolve(err, result, ttls) {
241
252
this . callback ( dnsException ( err , this . bindingName , this . hostname ) ) ;
242
253
else {
243
254
this . callback ( null , result ) ;
244
- stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
255
+ if ( this [ kPerfHooksDnsLookupResolveContext ] && hasObserver ( 'dns' ) ) {
256
+ stopPerf ( this , kPerfHooksDnsLookupResolveContext ) ;
257
+ }
245
258
}
246
259
}
247
260
@@ -264,14 +277,16 @@ function resolver(bindingName) {
264
277
req . ttl = ! ! ( options && options . ttl ) ;
265
278
const err = this . _handle [ bindingName ] ( req , toASCII ( name ) ) ;
266
279
if ( err ) throw dnsException ( err , bindingName , name ) ;
267
- startPerf ( req , kPerfHooksDnsLookupResolveContext , {
268
- type : 'dns' ,
269
- name : bindingName ,
270
- detail : {
271
- host : name ,
272
- ttl : req . ttl
273
- }
274
- } ) ;
280
+ if ( hasObserver ( 'dns' ) ) {
281
+ startPerf ( req , kPerfHooksDnsLookupResolveContext , {
282
+ type : 'dns' ,
283
+ name : bindingName ,
284
+ detail : {
285
+ host : name ,
286
+ ttl : req . ttl ,
287
+ } ,
288
+ } ) ;
289
+ }
275
290
return req ;
276
291
}
277
292
ObjectDefineProperty ( query , 'name' , { value : bindingName } ) ;
0 commit comments