Alyvix

Alyvix is an open source software application developed in Python for System monitoring and IT monitoring, synthetic monitoring and application performance management on Windows computers. It is used for visually monitoring fixed applications, streamed and cloud applications (including encrypted ones ), and websites, as well as for robotic process automation.

Alyvix allows you to interact with an application's graphical user interface (GUI) to describe what should be seen onscreen after a sequence of interactions, and then later compare it whenever desired to the current GUI in that state.

Operation
Alyvix works in two main stages: GUI description, and interactive GUI replay. In the description phase (using Alyvix Editor), Alyvix captures the screen and then allows the user to describe what to look for, such as images, text labels, buttons and text fields, by drawing and annotating directly on the screen capture.





The user then combines these elements with a visual scripting language Visual programming language that describes a sequence of desired interaction steps (for instance, clicking on one of the buttons, or inserting a predefined string into one of the text fields) and how those steps proceed from one to the next, along with the original series of screen grabs. This description is then saved in an open format called a test case.

Once this test case is created, Alyvix can use it to interactively replay that application interaction description as many times as you want while the application is "live". In this mode (called Alyvix Robot), Alyvix attempts to visually recognize what is shown in the GUI at a particular moment using the open source OpenCV recognizer. It then cycles through the recognition and interaction phases, applying the user-defined actions in the current step to the interface it sees.

Use in monitoring
While up to this point Alyvix can be used for automation, it also allows you to declare warning and critical thresholds that are useful for monitoring, based on visual recognition timeouts. When a timeout is exceeded, it can then be reported to a monitoring system using the Nagios and Icinga protocols.

While Alyvix Robot can run a script to make a single check, what's usually needed in monitoring scenarios is to run many such checks at regular intervals, say every 5 minutes. Thus Alyvix needs to integrate with a monitoring system, which may not be open source. Coordinating this integration is Alyvix Service, which schedules test case runs over multiple target servers, manages configuration settings like how often to run each test case, records the measurements made by Alyvix Robot, and provides that data and reports via an open API. Any monitoring system, like NetEye, only needs to add a module that calls the open API as necessary.