![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
![]() Multisite Python GUI displaying an overview of monitored systems | |
Developer(s) | Violet Atom Sagl (Alan Pipitone) and Würth Phoenix Srl (Francesco Melchiori) |
---|---|
Initial release | Version 3.0 2020 |
Stable release | 3.6.0 [1] / July 18, 2024 |
Written in | Python |
Operating system | Microsoft Windows |
Type | IT monitoring, Synthetic monitoring and Application performance management |
License | GNU GPL v3 |
Website | alyvix |
Alyvix is an open source [2] [3] 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 [1] applications (including encrypted ones [4] ), 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.
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, [5] 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 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 [6] 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.
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 [7] 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.
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, while the machine simultaneously feeds back information that aids the operators' decision-making process. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls and process controls. The design considerations applicable when creating user interfaces are related to, or involve such disciplines as, ergonomics and psychology.
A screen reader is a form of assistive technology (AT) that renders text and image content as speech or braille output. Screen readers are essential to people who are blind, and are useful to people who are visually impaired, illiterate, or have a learning disability. Screen readers are software applications that attempt to convey what people with normal eyesight see on a display to their users via non-visual means, like text-to-speech, sound icons, or a braille device. They do this by applying a wide variety of techniques that include, for example, interacting with dedicated accessibility APIs, using various operating system features, and employing hooking techniques.
In software development, frontend refers to the presentation layer that users interact with, while backend involves the data management and processing behind the scenes. In the client–server model, the client is usually considered the frontend, handling user-facing tasks, and the server is the backend, managing data and logic. Some presentation tasks may also be performed by the server.
A graphical widget in a graphical user interface is an element of interaction, such as a button or a scroll bar. Controls are software components that a computer user interacts with through direct manipulation to read or edit information about an application. User interface libraries such as Windows Presentation Foundation, Qt, GTK, and Cocoa, contain a collection of controls and the logic to render these.
Nagios is an event monitoring system that offers monitoring and alerting services for servers, switches, applications and services. It alerts users when things go wrong and alerts them a second time when the problem has been resolved.
In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.
Expect is an extension to the Tcl scripting language written by Don Libes. The program automates interactions with programs that expose a text terminal interface. Expect, originally written in 1990 for the Unix platform, has since become available for Microsoft Windows and other systems.
Microsoft Active Accessibility (MSAA) is an application programming interface (API) for user interface accessibility. MSAA was introduced as a platform add-on to Microsoft Windows 95 in 1997. MSAA is designed to help Assistive Technology (AT) products interact with standard and custom user interface (UI) elements of an application, as well as to access, identify, and manipulate an application's UI elements. AT products work with MSAA enabled applications in order to provide better access for individuals who have physical or cognitive difficulties, impairments, or disabilities. Some examples of AT products are screen readers for users with limited sight, on screen keyboards for users with limited physical access, or narrators for users with limited hearing. MSAA can also be used for automated testing tools, and computer-based training applications.
The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. As of MacOS 14.6.1, Xcode is available as a free download from the Mac App Store.
NonVisual Desktop Access (NVDA) is a free and open-source, portable screen reader for Microsoft Windows. The project was started by Michael Curran in 2006.
Microsoft UI Automation (UIA) is an application programming interface (API) that allows one to access, identify, and manipulate the user interface (UI) elements of another application.
API testing is a type of software testing that involves testing application programming interfaces (APIs) directly and as part of integration testing to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI, API testing is performed at the message layer. API testing is now considered critical for automating testing because APIs serve as the primary interface to application logic and because GUI tests are difficult to maintain with the short release cycles and frequent changes commonly used with Agile software development and DevOps.
Shinken is an open source computer system and network monitoring software application compatible with Nagios. It watches hosts and services, gathers performance data and alerts users when error conditions occur and again when the conditions clear.
A command-line interface (CLI) is a means of interacting with a computer program by inputting lines of text called command lines. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternative to the non-interactive mode available with punched cards.
NConf is an open source tool for configuring the Nagios network monitoring system. It is mainly targeted at sysadmins who are looking for a more convenient way of managing their Nagios configuration files through the use of a graphical user interface, as opposed to maintaining the configuration files with a text editor.
Icinga is an open-source computer system and network monitoring application. It was created as a fork of the Nagios system monitoring application in 2009.
Checkmk is a software system developed in Python and C++ for IT Infrastructure monitoring. It is used for the monitoring of servers, applications, networks, cloud infrastructures, containers, storage, databases and environment sensors.
Data scraping is a technique where a computer program extracts data from human-readable output coming from another program.
Naemon is an open-source computer system monitoring, network monitoring and infrastructure monitoring software application. Naemon offers monitoring and alerting services for servers, switches, applications, and services. It alerts the users when things go wrong and alerts them a second time when the problem has been resolved. Naemon was created in 2014 as a fork of Nagios.
Robotic process automation (RPA) is a form of business process automation that is based on software robots (bots) or artificial intelligence (AI) agents. RPA should not be confused with artificial intelligence as it is based on automotive technology following a predefined workflow. It is sometimes referred to as software robotics.