dd-trace
Version:
Datadog APM tracing client for JavaScript
45 lines (33 loc) • 956 B
JavaScript
const http = require('http')
const https = require('https')
const { storage } = require('../../../../datadog-core')
const legacyStorage = storage('legacy')
const keepAlive = true
const maxSockets = 1
function createAgentClass (BaseAgent) {
class CustomAgent extends BaseAgent {
constructor () {
super({ keepAlive, maxSockets })
}
createConnection (...args) {
return this._noop(() => super.createConnection(...args))
}
keepSocketAlive (...args) {
return this._noop(() => super.keepSocketAlive(...args))
}
reuseSocket (...args) {
return this._noop(() => super.reuseSocket(...args))
}
_noop (callback) {
return legacyStorage.run({ noop: true }, callback)
}
}
return CustomAgent
}
const HttpAgent = createAgentClass(http.Agent)
const HttpsAgent = createAgentClass(https.Agent)
module.exports = {
httpAgent: new HttpAgent(),
httpsAgent: new HttpsAgent(),
}