Una nueva (y vistosa) manera de ver errores de servidor

 ● 29th Apr 2015

4 min read

Aquí en OverOps trabajamos en el rubro del rastreo de errores. Cada día rastreamos más de 500.000 errores procedentes de cientos de compañías. Errores a través de diferentes máquinas, errores con multihilos, errores derivados de librerías de terceros, de todos los tipos que se te puedan ocurrir. Nuestra meta al crear OverOps era la de rastrear al código que conduce a los errores y la ralentización. Soñamos con un lugar donde pudiéramos ver información que nunca antes había estado disponible, ni aún en los archivos de registro (log).

Sí, los sueños se hacen realidad: nuestro visor de errores

OverOps registra los valores de las variables como si ellos estuvieran en cada marco de la pila (stack frame). Buscábamos una manera de permitir a los usuarios analizar la pila -y localizar las variables que causaron el error- con facilidad. Pensábamos en qué bueno sería si pudiéramos analizar el código causante del error en una sola pasada. Muy bueno. Así que lo creamos: una nueva manera de ver errores de servidor:

rec1

Una mirada al interior del monstruo

A la izquierda de esta nueva pantalla, puedes ver la pila de llamadas que condujo a una excepción o a un error de registro (como en la captura de pantalla que aparece más abajo). Los marcos con un ícono en forma de lentes representan marcos con variables registradas. Para quitar un poco de ruido, OverOps registra únicamente aquellos valores de variable que puedan haber propiciado el error. Los marcos señalados con un ícono en forma de lápiz contienen código que fue modificado recientemente. Ya que los errores nuevos suelen surgir de nuevo código, resaltar estas partes puede ser de ayuda para rastrearlas.
Si una máquina invocó una llamada a una API en otra máquina, la cual causó un error, podrás ver la ruta completa. El análisis a través de diferentes máquinas funciona si estás enviando una solicitud HTTP usando las API estándar de Java o cualquier otra librería popular de terceros.
The stack trace

Los principales sospechosos

Corriéndonos hacia la derecha: los principales sospechosos. Aquí puedes ver tu código y obtener con precisión los valores de variable que llevaron al error, tal como lucían cuando dicho error ocurrió. Puedes desplazarte rápidamente sobre todos los métodos que condujeron al error. Las variables registradas aparecen resaltadas y, al pasar el puntero sobre ellas, puedes ver el valor de la variable tal como estaba en el momento del error. Si se trata de un objeto complejo con campos, también puedes verlos a ellos.
¿Cómo mostramos el código? Para brindar la mayor seguridad posible al código, OverOps encripta el código del usuario con una clave secreta AES de 256 bits que puede generarse de manera local.
The code and variables

El resto es historia

Si esta excepción ocurrió más de una vez, puedes alternar entre diferentes registros y comparar las pilas y los valores de variable. Para aquellas excepciones que ocurren docenas, cientos, miles o millones de veces, limitamos los registros a unas pocas docenas para poder mantener el overhead al mínimo posible.

History

Puedes registrarte y obtener un período de prueba gratis aquí y, en honor a tu asombro e interés por nuestro nuevo concepto, estamos ofreciendo un período extendido de prueba de dos meses para aquellos usuarios que se registren desde este artículo.
¿Y qué hay de las ralentizaciones? Hiciste bien en preguntar. Actualmente, estamos diseñando el análisis de ralentización de OverOps: creando un nuevo concepto para resaltar código que lleva a ralentizaciones. Si te gusta la idea de hacerle una revisión en una beta cerrada y brindarnos tu opinión, contacta con nosotros, escribiéndonos a hello@overops.com. ¡Te prometemos que será súper interesante!

 Try the new UI now – and get an extended 2-month trial:

Iris is one of OverOps' co-founders and served as VP Product during her time with the company. Her main interests are creative products, data driven marketing and nitpicking small UX details.

Troubleshooting Apache Spark Applications with OverOps OverOps’ ability to detect precisely why something broke and to see variable state is invaluable in a distributed compute environment.
Troubleshooting Apache Spark Applications with OverOps

Next Article

The Fastest Way to Why.

Eliminate the detective work of searching logs for the Cause of critical issues. Resolve issues in minutes.
Learn More