node.js 应用elastic apm全链路追踪故障排查及解决方案:kibana缺失sql和http耗时信息

本文分析如何在Node.js应用中利用Elastic APM实现全链路追踪,并解决一个常见问题:按照官方示例配置后,Kibana界面仅显示接口总耗时,而缺少SQL查询和HTTP调用的详细耗时数据。
问题背景:开发者使用Node.js (v10)、elastic-apm-node (v3.x) 和Elastic APM (v7.14.0)进行全链路追踪尝试,Kibana只展示接口总耗时,缺少关键的SQL和HTTP调用Span信息。而类似的Go语言接口却能正常显示这些细节,说明问题可能出在Node.js应用的配置或代码上。
根本原因及解决方案:问题在于elastic-apm-node的初始化代码位置。 正确的初始化代码应位于所有其他代码之前:
const agent = require('elastic-apm-node').start({ serviceName: 'apm-service-test', // 覆盖package.json中的服务名 serverUrl: 'http://localhost:8200' // 自定义APM Server URL});
此前,初始化代码未放置在文件开头,导致agent未能正确捕获所有Span信息。将此代码移至文件顶部后,Kibana成功显示了SQL查询和HTTP调用的详细耗时信息,问题得到解决。 这强调了在使用elastic-apm-node时,确保agent初始化代码位于所有其他代码之前的必要性。
以上就是Node.js 应用中Elastic APM全链路追踪失败,如何解决Kibana缺失SQL及HTTP耗时细节问题?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1386001.html
微信扫一扫
支付宝扫一扫