2015-05-08 9 views
8

Używam Grape na Rails 4.2.1, aby zapewnić API dla naszej aplikacji.Dlaczego ActionDispatch :: Routing :: RouteSet trwa tak długo

Ale kiedy sprawdzam wydajność Newrelic dzisiaj stwierdziłem, że RackApp Proc#call i Grape API::Root#call zajmują dużo czasu. (Patrz zrzut ekranu)

enter image description here

Potem starałem się zalogować czas zużywany middleware z rack_timer i stwierdził, że ActionDispatch::Routing::RouteSet odbywa się przez większość czasu:

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 

Są nawet przypadki, że weź 500ms - 1000ms w ActionDispatch::Routing::RouteSet. Jak mogłem wyśledzić ten problem i skąd mogłem wiedzieć, co zrobiłem źle na trasach Rails?

Wielkie dzięki za pomoc.

+0

Mam ten sam problem, znalazłeś przyczynę? – fuyi

Odpowiedz

0

Dla mnie okazuje się, że agent Newrelic ruby ​​nie działa z rakietami, klejnotem, którego używam do budowy punktów końcowych API.

Jest jeszcze trzecia partia gem „rocket_pants-rpm”, aby rozwiązać ten problem, ale oryginalny zderzak pracujący ze newrelic_rpm wersji 3.9+, aby rozwiązać ten problem, spróbuj użyć wersji rozwidlony na https://github.com/SpartaSales/rocket_pants-rpm

to jak newrelic raport wyszukuje mnie po dodaniu tego klejnotu.

newrelic request time percentage

Powiązane problemy