¿Cuáles son algunas buenas herramientas de monitoreo de rendimiento de aplicaciones para aplicaciones Rails?

Hay muchas opciones comerciales por ahí que harán un porcentaje de lo que quieres. Por lo general, el nivel de granularidad que está buscando (mantener los detalles de la solicitud para cada solicitud, mantener los detalles del error para cada error) hará que el costo se acerque a ese precio de NewRelic, como almacenar y analizar esa cantidad de datos (para todos sus clientes) no es un ejercicio trivial.

Si está dispuesto a escribir las sondas de monitoreo usted mismo y hacer su propio alojamiento, puede capturar los eventos de una solicitud, interacción de Mongo, procesamiento de trabajo y errores usando around_filters (Descripción general del controlador de acción), instructores de controladores Mongo (mongodb / mongo -ruby-driver: no está muy bien documentado, pero le permite rastrear la interacción del controlador Mongo en Ruby), Resque hooks (resque / resque: suponiendo que use Resque, otros sistemas de trabajo tienen instalaciones similares) y rescue_from (Descripción general del controlador de acción) respectivamente.

Una vez que tenga sus puntos de captura en su lugar, puede reenviar los eventos a una herramienta como Kibana / ElasticSearch (http://www.elasticsearch.org/ove…), Riemann (http://riemann.io/) o OpenTSDB (http://opentsdb.net/) que puede admitir múltiples dimensiones en las métricas proporcionadas y le brinda la posibilidad de introspectar qué sucedió exactamente en un solo momento. Algunas de esas opciones pueden requerir más trabajo de su parte para crear las visualizaciones que le gustaría ver, pero definitivamente está dentro del alcance de lo posible. ( Advertencia: no he creado ese tipo de sistema yo mismo, pero si el recurso que tienes en abundancia es tiempo sobre dinero, sería una ruta decente para explorar ) .

Alternativamente, si estaba dispuesto a relajar los requisitos, como ver todos los parámetros / argumentos asociados con un evento, podría usar una base de datos / visualizador de series de tiempo más simple para capturar los datos que desea. Hay muchos más proveedores comerciales que brindan ese tipo de servicio (de hecho, tengo uno: https://instrumentalapp.com/), y podrían satisfacer solicitudes de información como cuánto tiempo tomó algo, cuántas veces ocurrió, etc.

Una combinación común que he observado son las aplicaciones que combinan un proveedor de bases de datos de series de tiempo con un servicio de recopilación de errores como Rollbar para satisfacer sus necesidades de monitoreo de rendimiento y al mismo tiempo brindarles toda la información que puedan necesitar en el caso de análisis de excepción.

Espero que sea útil!

Para el monitoreo, New Relic es una herramienta que debes probar y vale su precio. Cubre todos sus requisitos e incluso puede monitorear sus servidores con RAM, CPU, disco io, red … Es increíble.

usa Skylight, es el chico nuevo en el bloque, está muy orientado a los rieles y está construido por ~ tilde company, que es la compañía de Yehuda Katz, por lo que saben lo que hacen

Si considera que New Relic es demasiado caro, tiene algunas opciones: use la versión gratuita de New Relic (todavía muy útil) u obténgala gratis con una asociación. Muchos proveedores ofrecen la edición estándar de New Relic de forma gratuita. Eso es un gran trato.

También hay otros planes de precios (como un plan de inicio) y si está dispuesto a hablar con un vendedor, a menudo pueden hacerlo funcionar para usted.

Hay alternativas a New Relic pero, por lo que puedo decir, nada se compara con New Relic todavía. Trabajo allí, así que no soy imparcial.