Ich verwende Grape zusätzlich zu Rails 4.2.1, um API für unsere Anwendung bereitzustellen.
Aber wenn ich heute Newrelic auf Leistung überprüfe, habe ich festgestellt, dass RackApp Proc#call
und Grape API::Root#call
viel Zeit in Anspruch nehmen. (Siehe Screenshot)
Dann habe ich versucht, die Zeit in Middleware mit rack_timer
zu protokollieren und festgestellt, dass ActionDispatch::Routing::RouteSet
die meiste Zeit beansprucht:
Es gibt sogar Fälle, die 500 ms - 1000 ms in ActionDispatch::Routing::RouteSet
benötigen. Wie könnte ich dieses Problem aufspüren und wie könnte ich wissen, was ich bei den Rails Routen falsch gemacht habe?
Vielen Dank für die Hilfe.
Für mich stellt sich heraus, dass der Newrelic-Ruby-Agent nicht mit rocket_pants arbeitet, dem Juwel, mit dem ich API-Endpunkte erstelle.
Es gibt ein drittes Juwel 'rocket_pants-rpm', um dieses Problem zu lösen, aber das Original funktioniert nicht mehr mit newrelic_rpm, Version 3.9+. Um das Problem zu beheben, verwenden Sie die gegabelte Version unter Ссылка
So sieht der newrelic-Bericht nach dem Hinzufügen dieses Edelsteins aus.
Tags und Links ruby-on-rails performance ruby-on-rails-4 newrelic grape