我已经在Laravel dev中设置了我的NewRelic PHP代理,让它具有newrelic.transaction_tracer.record_sql =“raw”,但是到达APM的值是“?”而不是值。NewRelic文档说值应该通过https://docs.newrelic.com/docs/apm/agents/php-agent/configuration/php-agent-configuration/#inivar-tt-sql来。
还有其他人遇到过这个问题吗?如果有,你是如何解决的?
当我将其设置为“off”时,SQL语句会像预期的那样停止通过。将其设置为“obfuscated”也会像预期的那样通过“?”而不是值。但是再次将其设置为“raw”时,SQL语句中仍然会通过“?”而不是值。
我们有一个CodeIgniter PHP设置,当将此配置设置为“raw”时,值确实会通过。
newrelic.high_security没有设置,所以默认为false。
我试着显式地将newrelige.framework设置为“laravel”,但没有修复它。
已验证我们使用的是最新的NewRelic代理和PHP次要版本:
- PHP version 8.0.30(编译:Sep 2 2023 08:05:13)(NTS)
- 新的Relic PHP代理版本10.14.0.3- 1563 e8045968
1条答案
按热度按时间f2uvfpb91#
不幸的是,在Laravel或New Relic PHP代理中没有直接的方法来改变这种行为。使用实际值的原始SQL查询可能会暴露敏感数据并存在安全风险。但是如果您需要查看实际值以进行调试,您可以考虑将查询记录在Laravel应用程序中。Laravel提供了几种记录查询的方法。
但您可以在
AppServiceProvider
中使用查询侦听器字符串
我说完了祝你好运。