pinpoint-node-agent
Version:
Pinpoint APM agent for Node.js — distributed tracing, error analysis, and URI statistics
43 lines (34 loc) • 1.21 kB
JavaScript
/**
* Pinpoint Node.js Agent
* Copyright 2020-present NAVER Corp.
* Apache License v2.0
*/
const serviceType = require('./mysql-service-type')
const MethodDescriptorBuilder = require('../../../context/method-descriptor-builder')
const apiMetaService = require('../../../context/api-meta-service')
class MySQLConnectionConnectInterceptor {
doInBeforeTrace(recorder, target, args) {
recorder.recordServiceType(serviceType)
}
doInBeforeAsyncTrace(asyncEventRecorder, target, args) {
asyncEventRecorder.recordServiceType(serviceType)
}
callbackIndexOf(args) {
if (args.length > 1 && typeof args[1] === 'function') {
return 1
}
if (typeof args[0] !== 'function') {
return
}
return 0
}
doInAfterTrace(recorder) {
const methodDescriptorBuilder = new MethodDescriptorBuilder('connect')
.setClassName('Connection')
.setParameterVariableNames('connectionUri')
const methodDescriptor = apiMetaService.cacheApiWithBuilder(methodDescriptorBuilder)
recorder.recordApi(methodDescriptor)
}
}
module.exports = MySQLConnectionConnectInterceptor