Monitoreo e instrumentación
Si te preguntaran por tu estado de salud actual ¿serías capaz de dar una respuesta objetiva? Quizás podrías hacerlo basado en tu estilo de vida o sensaciones físicas que estés experimentando actualmente. Sin embargo, un mejor enfoque sería hacerse una evaluación médica integral, que a través de instrumentos médicos y análisis profesional nos permita conocer si existen factores de riesgo de enfermedades para poder tratarlas o prevenirlas. En este sentido, es fundamental un control periódico de tu salud para su cuidado.
Cambiando de rubro y preguntando con el mismo sentido ¿cuál es el estado de salud de tu aplicación? ¿cuáles son las evidencias sobre su comportamiento en tiempo de ejecución? Conocer las respuestas a estas preguntas puede resultar de gran utilidad. Por ejemplo, cuando algo sale mal será indispensable saber qué y porqué sucedió, además de cualquier pista que nos ayude a solucionar el problema para evitar que vuelva a ocurrir en el futuro.
Para conocer el estado y salud de una aplicación está la actividad de monitoreo, la cual se puede definir como el proceso sistemático de recolectar, analizar y utilizar información para hacer seguimiento del comportamiento de la aplicación con la finalidad de diagnosticar y/o solucionar problemas.
Es evidente que la eficacia de un sistema de monitoreo está en función de la calidad de la información recabada. Para dar soporte a esto está la instrumentación. La palabra instrumentación es un término amplio que adquiere un significado particular según el contexto donde se aplique: procesos industriales, bioingeniería, electrónica, etc. En el campo de la programación se refiere al proceso de incluir código extra (código de instrumentación) a un programa para generar información sobre su comportamiento durante su ejecución.
Entonces, la instrumentación es necesaria para obtener datos que nos permitan entender aspectos como: performance, uso de recursos, comportamiento del usuario, diagnóstico de errores, etc.
Métodos de instrumentación
Source-code instrumentation
Binary Instrumentation
Mecanismos de instrumentación
- Logging: Los logs están dirigidos a administradores que supervisan el funcionamiento normal del sistema. Registro de eventos normales o excepcionales.
- Tracing: Los traces están dirigidos a desarrolladores que necesitan detalles sobre el flujo de control del software. Se utilizan principalmente para la detección de problemas en sistemas productivos (alternativa al debugging).
- Exception handling: Medida de precaución para tratar errores en tiempo de ejecución. Útil para el seguimiento y corrección de errores.
- Performance monitoring: A través de performance counters que permiten el seguimiento del rendimiento de la aplicación.
Buenas prácticas de instrumentación
- Add logging capability for the most critical, if not all, components of your application.
- Include elaborate/full exception details.
- Use counters and log details around retry attempts.
- Log all failures and retries associated with integration to external service.
- Monitor current and average response time for all cross-component calls.
- Determine the root component that is causing any failure condition.
- Ensure that all instrumentation is configurable for production and test environments.
No comments:
Post a Comment