我正在使用Rails 4.2.1之上的葡萄来为我们的应用程序提供API。
但是当我今天检查Newrelic的性能时,我发现RackApp Proc#call和Grape API::Root#call占用了大量的时间。(见截图)

然后我尝试用rack_timer记录在中间件中消耗的时间,发现ActionDispatch::Routing::RouteSet占用了大部分时间:
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 67.12579727172852 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 101.51457786560059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 84.18059349060059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 1236.2565994262695 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 8.124351501464844 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 55.65309524536133 ms在ActionDispatch::Routing::RouteSet中甚至有耗时500ms - 1000ms的情况。我怎么才能追踪到这个问题,我怎么知道我在Rails路线中做错了什么?
非常感谢你的帮助。
发布于 2017-02-26 06:26:37
对我来说,Newrelic ruby代理不能与我用来构建API端点的gem rocket_pants一起工作。
有一个第三方gem 'rocket_pants-rpm‘可以解决这个问题,但是原来的那个从newrelic_rpm版本3.9+停止工作,要解决这个问题,请尝试使用https://github.com/SpartaSales/rocket_pants-rpm上的派生版本
这就是添加了这个gem之后的newrelic report的样子。
https://stackoverflow.com/questions/30128883
复制相似问题