要解决Apm-server在Node.js代理(express)中未记录事务的问题,可以按照以下步骤进行操作:
npm install elastic-apm-node --save
const apm = require('elastic-apm-node').start({
serviceName: 'your-service-name',
serverUrl: 'http://your-apm-server-url:8200',
})
在上述代码中,serviceName
是你的服务名称,serverUrl
是你的APM服务器的URL。请根据你的实际情况进行替换。
app.get('/api/users', (req, res) => {
const transaction = apm.startTransaction('getUsers', 'request')
// 处理逻辑...
transaction.end()
res.send('Users')
})
在上述代码中,startTransaction()
函数用于开始一个新的APM事务,其中第一个参数是事务名称,第二个参数是事务类型。end()
函数用于结束事务。
app.use((err, req, res, next) => {
apm.captureError(err)
// 错误处理逻辑...
})
在上述代码中,captureError()
函数用于捕获和报告错误。
通过以上步骤,你应该能够在Node.js代理(express)中使用Apm-server来记录事务了。请根据你的实际情况进行调整和修改。