繁体   English   中英

Newrelic:忽略交易的特定部分

[英]Newrelic: ignore specific part of transaction

对于某些服务,我们只希望看到每个事务的很少部分-除外部Web服务以外的所有部分。

我在这里找到了newrelic_ignore_apdexnewrelic_ignore_transaction方法。 但是调用此方法将忽略整个事务,而不仅仅是特定部分。

有没有办法完全忽略交易的一部分?

新的例子

如果我了解您的需求,可能更适合使用

newrelic_end_of_transaction()或newrelic_end_transaction([ignore])以阻止在某个点记录交易

如果需要稍后重新打开事务,请与newrelic_start_transaction(应用程序名称[,许可证])一起使用。

您可以在这里找到它们两者https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-api

引用NewRelic文档

newrelic_end_of_transaction()

 function newrelic_end_of_transaction (): null 

立即停止记录网络交易。 通常在页面完成所有计算并要流式传输数据(文件下载,音频或视频流式传输等)并且不希望将流式传输的时间计入事务的一部分时使用。 当完成操作所花费的时间完全超出应用程序的范围时,这尤其重要 例如,连接速度非常慢的用户可能需要很长时间才能下载甚至很小的文件,并且您不希望该下载时间偏离真实的交易时间。

另一方面,这里是启动功能的说明

newrelic_start_transaction(应用名称[,许可证])

 function newrelic_start_transaction (string $appname, string $license = ini_get('newrelic.license')): bool 

如果您在脚本终止之前已经结束了事务(可能是由于它刚刚完成了作业队列管理器中的任务),并且您想开始新的事务,请使用此调用。 这将执行与首次启动脚本时相同的操作。 在两个参数中,只有应用程序名称是必需的。 但是,如果您要处理多个帐户的任务,则还可以提供关联帐户的许可证。 为该API调用设置的许可证将取代INI文件中配置的所有按目录和全局默认许可证。 如果事务成功启动,此函数将返回true。

请注意newrelic_end_transaction([ignore])和newrelic_end_of_transaction()之间的一些区别

尽管其名称与上面的newrelic_end_of_transaction类似,但此调用的目的却截然不同。 newrelic_end_of_transaction只是标记事务的结束时间,但不执行其他任何操作。 当PHP引擎确定脚本已完成执行并且正在关闭时,该事务仍仅发送到守护程序。 另一方面,此功能使当前事务立即结束,并且除非将ignore参数设置为true,否则会将到目前为止收集的所有度量标准都发送到守护程序。 实际上,此调用模拟了PHP终止当前事务时将发生的情况。

知道我做了很多引用,但是文档如此明确,以至于我发现以不同的方式讲同样的事情毫无用处。 希望这会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM