ECS Fargate的Rails应用通过NewRelic rubyagent无法监控Aurora Serverless PGSQL
问题排查方向
以下是导致New Relic Ruby Agent无法识别RDS Serverless PGSQL数据库的常见原因及对应排查方案:
- Ruby Agent版本兼容性问题
低于7.0版本的newrelic_rpmgem对Rails 6的ActiveRecord插桩、以及RDS Serverless PGSQL的实例识别存在已知兼容缺陷。如果你的Gemfile中锁定的gem版本过旧,优先升级到最新稳定版后验证。 - ActiveRecord插桩未生效
检查两个核心点:- 确认没有在初始化脚本、环境变量中设置
NEW_RELIC_DISABLE_ACTIVE_RECORD_INSTRUMENTATION=true,该参数会完全禁用ActiveRecord操作的采集。你当前配置文件中未显式禁用该功能,但环境变量优先级高于yml配置,需要额外排查。 - 将agent日志级别临时调整为
debug,重启应用后查看启动日志,确认存在ActiveRecord instrumentation enabled类的标识,若没有相关日志说明插桩钩子未正常挂载,一般是自定义连接池、非官方pg适配器导致的。
- 确认没有在初始化脚本、环境变量中设置
- ECS环境配置覆盖问题
New Relic Agent的配置优先级为:环境变量 > newrelic.yml配置 > 默认值。检查你的ECS任务定义中是否设置了NEW_RELIC_DISABLE_ACTIVE_RECORD_INSTRUMENTATION、NEW_RELIC_TRANSACTION_TRACER_ENABLED这类会影响数据库采集的环境变量,覆盖了yml中的配置。 - 事务采样阈值未触发
你当前配置中transaction_tracer.transaction_threshold设为apdex_f,只有耗时超过Apdex阈值4倍的事务才会被采样记录。如果测试阶段所有请求耗时都低于该阈值,会出现暂时没有数据库分类数据的情况,可以临时将该参数改为0,验证是否有数据库操作被采集。 - Rails多数据库适配问题
如果你使用了Rails 6原生的多数据库配置,低于8.0版本的Ruby Agent无法正确识别多库实例,会出现数据库操作漏采或者归类错误的问题,升级agent版本即可解决。
内容的提问来源于stack exchange,提问作者schangli
相关产品推荐
相关产品推荐

