Pregunta ¿Cómo perfilar un controlador de rieles que devuelve una respuesta json con rack-mini-profiler?


Estoy usando rack-mini-profiler en mi proyecto rails 3.2.

En gemfile:

gem 'rack-mini-profiler'

Todo funciona bien Pero mi aplicación es principalmente un conjunto de puntos finales json. Entonces, si bien es muy útil poder inspeccionar el rendimiento de las páginas html, también me gustaría poder ver el rendimiento de los controladores que devuelven json.

Ejemplo de mi controlador:

class UsersController < BaseController
  def json_method
    # you don't see the mini profiler ui for this controller
    render json: { users: [:foo, :bar]}
  end
end

Si voy a localhost:3000/users/json_method, Veo mi respuesta JSON, pero no la UI profiler.


11
2018-05-14 14:20


origen


Respuestas:


En desarrollo, por defecto, la gema rack-mini-profiler recoge la llamada JSON anterior y la presenta en el menú accesible desde la página HTML. No se requiere cambio de código.

Por lo tanto, haga su solicitud JSON, luego acceda a cualquier otra página HTML y estará disponible en la lista. Usamos esto con gran efecto. Si su aplicación Rails es solo un servicio de la API JSON, asegúrese de tener al menos un archivo 404.html en su carpeta pública, luego pulse algo como:

http://localhost/404.html

14
2017-11-07 12:23



si el miniperfil de rack no puede mostrar los resultados, los recopilará hasta que pueda en la próxima página HTML. Entonces, la solución que estoy usando es:

hacer la solicitud JSON y luego, presiona una página HTML de mi elección. Aparecerán los resultados, junto con el perfil HTML más reciente.

http://tech.eshaiju.in/blog/2016/02/25/profile-api-endpoints-using-rack-mini-profiler/


3
2018-02-25 06:47



Como primera solución, puede establecer el formato en html y renderizar dentro de la página html:

El controlador:

class UsersController < BaseController
  def json_method
    @users_json { users: [:foo, :bar]}
    render 'index', formats: ['html']
  end
end

Y en app / views / users / index.html.erb:

Users:<br/>
<%= @json.inspect %>

No me importa tanto mi resultado json, ahora tengo la interfaz gráfica de usuario.

Una solución donde tengo la interfaz de usuario de perfiles sin cambiar mi controlador sería mucho mejor.


1
2018-05-14 14:45