En informática , la supervisión de eventos es el proceso de recopilar, analizar y señalar las ocurrencias de eventos a los suscriptores, como procesos del sistema operativo , reglas de bases de datos activas y operadores humanos. Estos sucesos pueden provenir de fuentes arbitrarias tanto en software como en hardware , como sistemas operativos, sistemas de gestión de bases de datos , software de aplicación y procesadores . El monitoreo de eventos puede usar una base de datos de series de tiempo .
Conceptos básicos
La supervisión de eventos utiliza un bus lógico para transportar las ocurrencias de eventos desde las fuentes a los suscriptores , donde las fuentes de eventos señalan las ocurrencias de eventos a todos los suscriptores de eventos y los suscriptores de eventos reciben ocurrencias de eventos. Un bus de eventos se puede distribuir en un conjunto de nodos físicos , como sistemas informáticos independientes. Los ejemplos típicos de buses de eventos se encuentran en sistemas gráficos como X Window System , Microsoft Windows , así como en herramientas de desarrollo como SDT.
La recopilación de eventos es el proceso de recopilar las ocurrencias de eventos en un registro de eventos filtrado para su análisis. Un registro de eventos filtrado es un registro de las ocurrencias de eventos que pueden ser de utilidad significativa en el futuro; esto implica que las ocurrencias de eventos se pueden eliminar del registro de eventos filtrado si son inútiles en el futuro. El análisis del registro de eventos es el proceso de analizar el registro de eventos filtrado para agregar las ocurrencias de eventos o para decidir si se debe señalar o no la ocurrencia de un evento. La señalización de eventos es el proceso de señalización de eventos a través del bus de eventos.
Algo que se supervisa se denomina objeto supervisado ; por ejemplo, una aplicación, un sistema operativo, una base de datos, hardware, etc. pueden ser objetos supervisados. Un objeto monitoreado debe estar adecuadamente acondicionado con sensores de eventos para permitir el monitoreo de eventos, es decir, un objeto debe estar instrumentado con sensores de eventos para que sea un objeto monitoreado. Los sensores de eventos son sensores que señalan la ocurrencia de eventos cada vez que ocurre un evento. Siempre que se supervisa algo, se debe gestionar el efecto sonda .
Objetos monitorizados y efecto sonda
Como lo discutió Gait, [1] cuando se monitorea un objeto, su comportamiento cambia. En particular, en cualquier sistema concurrente en el que los procesos puedan ejecutarse en paralelo , esto plantea un problema particular. La razón es que siempre que se introducen sensores en el sistema, los procesos pueden ejecutarse en un orden diferente. Esto puede causar un problema si, por ejemplo, estamos tratando de localizar una falla , y al monitorear el sistema cambiamos su comportamiento de tal manera que la falla no resulte en una falla; en esencia, la falla se puede enmascarar monitoreando el sistema. El efecto de sonda es la diferencia de comportamiento entre un objeto supervisado y su homólogo no instrumentado.
Según Schütz, [2] podemos evitar, compensar o ignorar el efecto sonda. En un sistema crítico en tiempo real, en el que la puntualidad (es decir, la capacidad de un sistema para cumplir con las limitaciones de tiempo, como los plazos) es significativa, la evitación es la única opción. Si, por ejemplo, instrumentamos un sistema para realizar pruebas y luego retiramos la instrumentación antes de la entrega, esto invalida los resultados de la mayoría de las pruebas basadas en el sistema completo. En un sistema en tiempo real menos crítico (por ejemplo, sistemas basados en medios), la compensación puede ser aceptable para, por ejemplo, pruebas de rendimiento . En sistemas no concurrentes, el desconocimiento es aceptable, ya que el comportamiento con respecto al orden de ejecución no se modifica.
Análisis de registro de eventos
El análisis de registros de eventos se conoce como composición de eventos en bases de datos activas , reconocimiento de crónicas en inteligencia artificial y como evaluación lógica en tiempo real en sistemas en tiempo real. Básicamente, el análisis de registro de eventos se utiliza para la coincidencia de patrones , el filtrado de ocurrencias de eventos y la agregación de ocurrencias de eventos en ocurrencias de eventos compuestos. Comúnmente, las estrategias de programación dinámica de algoritmos se emplean para guardar los resultados de análisis previos para uso futuro, ya que, por ejemplo, el mismo patrón puede coincidir con las mismas ocurrencias de eventos en varios procesos de análisis consecutivos. En contraste con el procesamiento de reglas generales (empleado para afirmar hechos nuevos a partir de otros hechos, cf. motor de inferencia ) que generalmente se basa en técnicas de retroceso , los algoritmos de análisis de registro de eventos son comúnmente codiciosos ; por ejemplo, cuando se dice que ha ocurrido un compuesto, este hecho nunca se revoca, como se puede hacer en un algoritmo basado en retroceso.
Se han propuesto varios mecanismos para el análisis de registros de eventos: autómatas de estado finito , redes de Petri , procedimentales (ya sea basados en un lenguaje de programación imperativo o en lenguajes de programación orientados a objetos), una modificación del algoritmo de búsqueda de cadenas de Boyer-Moore y redes temporales simples .
Ver también
- Procesamiento de flujo de eventos (ESP)
- Procesamiento de eventos complejos (CEP)
- Monitoreo de la red
- Verificación en tiempo de ejecución (RV)
Referencias
- ^ J. Marcha (1985). Un depurador para programas concurrentes. Práctica y experiencia de software , 15 (6)
- ^ W. Schütz (1994). Problemas fundamentales en la prueba de sistemas distribuidos en tiempo real. Sistemas en tiempo real , 7 (2): 129–157