2

我在 Heroku 上运行 rails 3.0 应用程序并使用 New Relic 插件/服务。

我一直在查看事务跟踪功能(在专业版中提供)以了解更多有关应用程序性能特征的信息。但是,很大一部分时间(30-50%)是“未测量时间”。在通过将 method_tracers 放在某些地方进行了一些尝试并经历了相当慢的周期以测试我是否获得更多信息之后,我觉得这一切都进展不快。

似乎在 PHP 新遗物代理中,它们具有一个很棒的功能,可以获取非常详细的跟踪,而无需猜测将方法跟踪器放在哪里:http: //newrelic.com/docs/php/php-agent-faq#top100

红宝石有类似的东西吗?

注意:我已经在使用 rpm_contrib 来获取更多信息并启用垃圾收集统计信息。此外,这不是解决性能问题,只是了解如何更好地使用可用的性能工具,并为那个未使用的时间解决一个琐碎的问题。

4

2 回答 2

2

Ruby 目前没有类似的东西。当我有机会时,我会向 Ruby 工程师提及它。我的猜测是,除非收到很多请求,否则它暂时不会位居榜首。同时,您可以使用方法跟踪器来计算未测量的时间。

希望有帮助。

于 2011-12-16T17:01:51.233 回答
1

方法跟踪器可以很好地工作,但是如果您的控制器中有很多代码,请尝试使用 trace_execution_scoped 进行二进制搜索,它会记录一段代码所花费的时间:

http://newrelic.github.com/rpm/NewRelic/Agent/MethodTracer/InstanceMethods/TraceExecutionScoped.html#method-i-trace_execution_scoped

添加几个调用,给每个指标一个合理的名称,如“Custom/MySlowControllerAction/block0”(trace_execution_scoped 的第一个参数),然后重复。

您命名的指标不仅会显示在事务跟踪中,还会显示在 Web 事务选项卡下的控制器操作的性能细分中,因此您将看到该代码块中所有请求的平均时间,而不仅仅是慢速请求.

于 2011-12-16T19:02:22.017 回答