php - ¿Cómo funciona New Relic?
heroku ftp (5)
¿Cómo puede New Relic aprovechar mi aplicación con una instalación simple? ¿Cómo sabe todos los métodos, peticiones, etc.?
Funciona para RoR, PHP, etc.
¿Alguien puede explicar la tecnología detrás de esto? Me interesa aprovechar mi aplicación Rails, pero quiero hacerlo sin problemas como New Relic.
Gracias
En el caso de Java es ingestion bytecode. Ellos "piratean" los métodos clave de su servidor de aplicaciones y agregan su código en él. Luego envían la información relevante de la transacción a su servidor, agregándola y puede ver el resumen. Es un proceso realmente complicado, así que no creo que un desarrollador pueda implementarlo.
En primer lugar, no podrá duplicar la funcionalidad de NewRelic por su cuenta. Ignorando el lado del servidor, el rpm Gem es un software bastante complejo que hace muchas cosas. Eche un vistazo a la fuente si desea ver cómo se enlaza al sistema Rails. Merece la pena leer la fuente, ya que hace algunas cosas interesantes en términos de subprocesamiento y cálculo de referencias de los datos antes de enviarlos de nuevo a sus servidores.
Si desea un reemplazo porque Newrelic es caro (y con razón, es increíble en lo que hace), entonces eche un vistazo al proyecto FreeRelic en Github.
Están utilizando CONCEPTOS DE PROGRAMACIÓN ORIENTADOS AL ASPECTO Y Reflexión en gran medida para Interceptar la llamada al método original y agregar instrumentación alrededor de eso.
Para Java, están adjuntando un agente Java a JVM que intercepta las llamadas de método y las monitorea. Puede usar AspectJ para replicar el mismo comportamiento y registrar todas las llamadas de métodos a donde quiera, digamos que cree métricas personalizadas de Cloudwatch.
Para una solución de rieles, simplemente podría implementar un nivel de registro más detallado (nivel de desarrollo / depuración) e interrogar el archivo production.log para eventos específicos, tiempos, etc.