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耗时细节问题?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号