Alyvix is a synthetic monitoring system based on computer vision, that automates interactions with application GUIs, exactly as a human user would do and measures the perceived performance. At the Icinga Camp Berlin 2017, Francesco Melchiori presented the open source tool and it's integration to Icinga 2.
Alyvix provides GUI tools to graphically define every transactions of user interaction flows on any application. Alyvix is able to automate all applications that are in the cloud or on-premises. (e.g. Onlineshop, Citrix etc.). That is because Alyvix is not bolted to application APIs, but it acts as it would sit in front of their interface interacting with them (as a human would do). Alyvix tests the availability of your applications and measures their responsiveness. Hence, Alyvix measures how long transactions take to be accomplished, and reports the performance in HTML pages. Through the integration to your monitoring system (e.g. NetEye, Icinga, Nagios) those outcomes can be tracked. Latency spikes and service downtimes can be clearly recognized from time series charts. Moreover, notification messages and other logics can be set. Alyvix certifies the ongoing quality of IT cloud services highlighting in which location and on whattime they are performing well or worse than expected. With this information, IT operations teams can modulate infrastructure resources and IT clients can check their SLA with providers. Alyvix is a Python-based open source software, which can be easily deployed on Windows 64-bit machines. During his speech, Francesco Melchiori will present the Alyvix features, explain how they can be used to monitor cloud applications and show why they help keeping the quality of your IT services high.
Inferno dantesco e la sua iconografia attraverso i secoliCarolina Covarelli
L'inferno della Divina Commedia di Dante è qui ripercorso da un punto di vista iconografico: gli artisti analizzati sono circa quaranta, dai primi codici trecenteschi, attraverso le varie influenze artistiche (Rinascimento, Barocco, NeoClassicismo, Espressionismo, Astrattismo, etc) ed i vari paesi europei e non, fino al ventesimo secolo. L'occasione per ripercorrere in immagini, versi e storia dell'arte uno dei più bei testi della letteratura italiana e mondiale, frutto di un genio e di un poeta con un'immaginazione ed una cultura enciclopedica.
La Divina Commedia è un'opera appassionante, miniera inesauribile di conoscenze letterarie, filosofiche, scientifiche, di usi, costumi, tradizioni, leggende, allegorie, sensi religiosi e profani, che si legge sempre con nuovo interesse e immenso piacere.
Questo fascicolo raccoglie i disegni di alcuni dei principali personaggi dell'Inferno di Dante Alighieri : il mio punto di vista è quello di una Costumista che debba immaginare come li rappresenterebbe.
Tomo secondo della tesi sull'Iconografia dell'Inferno dantesco attraverso i secoli.
Alyvix provides GUI tools to graphically define every transactions of user interaction flows on any application. Alyvix is able to automate all applications that are in the cloud or on-premises. (e.g. Onlineshop, Citrix etc.). That is because Alyvix is not bolted to application APIs, but it acts as it would sit in front of their interface interacting with them (as a human would do). Alyvix tests the availability of your applications and measures their responsiveness. Hence, Alyvix measures how long transactions take to be accomplished, and reports the performance in HTML pages. Through the integration to your monitoring system (e.g. NetEye, Icinga, Nagios) those outcomes can be tracked. Latency spikes and service downtimes can be clearly recognized from time series charts. Moreover, notification messages and other logics can be set. Alyvix certifies the ongoing quality of IT cloud services highlighting in which location and on whattime they are performing well or worse than expected. With this information, IT operations teams can modulate infrastructure resources and IT clients can check their SLA with providers. Alyvix is a Python-based open source software, which can be easily deployed on Windows 64-bit machines. During his speech, Francesco Melchiori will present the Alyvix features, explain how they can be used to monitor cloud applications and show why they help keeping the quality of your IT services high.
Inferno dantesco e la sua iconografia attraverso i secoliCarolina Covarelli
L'inferno della Divina Commedia di Dante è qui ripercorso da un punto di vista iconografico: gli artisti analizzati sono circa quaranta, dai primi codici trecenteschi, attraverso le varie influenze artistiche (Rinascimento, Barocco, NeoClassicismo, Espressionismo, Astrattismo, etc) ed i vari paesi europei e non, fino al ventesimo secolo. L'occasione per ripercorrere in immagini, versi e storia dell'arte uno dei più bei testi della letteratura italiana e mondiale, frutto di un genio e di un poeta con un'immaginazione ed una cultura enciclopedica.
La Divina Commedia è un'opera appassionante, miniera inesauribile di conoscenze letterarie, filosofiche, scientifiche, di usi, costumi, tradizioni, leggende, allegorie, sensi religiosi e profani, che si legge sempre con nuovo interesse e immenso piacere.
Questo fascicolo raccoglie i disegni di alcuni dei principali personaggi dell'Inferno di Dante Alighieri : il mio punto di vista è quello di una Costumista che debba immaginare come li rappresenterebbe.
Tomo secondo della tesi sull'Iconografia dell'Inferno dantesco attraverso i secoli.
Volo AZ, un Sessantottino in aria, Francesco RubinoFawkes Editions
Il Volo AZ è un romanzo sincero, un dialogo intergenerazionale di cui nessuno dovrebbe privarsi. Una riflessione sul celebre 1968 e i suoi reali effetti sulla società di oggi. Un ottimo romanzo, con uno stile diretto e piacevole.
Volo AZ, un Sessantottino in aria, Francesco RubinoFawkes Editions
Il Volo AZ è un romanzo sincero, un dialogo intergenerazionale di cui nessuno dovrebbe privarsi. Una riflessione sul celebre 1968 e i suoi reali effetti sulla società di oggi. Un ottimo romanzo, con uno stile diretto e piacevole.
KARMA METAL Insaat malzeme tasima kasasi Metal istifleme konteynerleri imalatiKarma Metall
Çelik yük taşıma arabası,Önden açılır kasa,Metal taşıma konteynerleri,Metal taşıma paletleri,Metal sandıklar,çelik stoklama paletleri,Taşıma kasaları fiyatları,Metal taşıma kasası bursa,Endüstriyel taşıma kasaları,Önden açılır sandık,Taşıma kasası fiyatı,kule vinç yük taşıma kasası
Good afternoon everybody,
my name is Francesco Melchiori and I work for Wuerth Phoenix. We are actively developing a monitoring solution for assessing the end user experience, for which we are devoting more and more effort.
--
Monitoraggio della End User Experience di Applicazioni Cloud
Good afternoon everybody,
my name is Francesco Melchiori and I am a product manager in Wuerth Phoenix.
Today it is a pleasure to me to talk to you about a solution we are developing, for which we are devoting more and more effort..
--
Monitoraggio della End User Experience di Applicazioni Cloud
Questo è un tipico scenario cloud, dove App/Service/Platform/Infrastructure/Desktop as a Service in cloud vengono forniti ad un’azienda, la quale li mette a disposizione ai propri utenti finali (dipendenti o clienti).
Il servizio è influenzato dai molti fattori che interessano una rete di telecomunicazioni:
il numero di richieste simultanee al servizio
l’ottimizzazione del software
il pool di risorse hardware a disposizione
mezzo fisico di comunicazione e topologia della rete
protocolli applicativi, di trasporto, di rete
vpn, firewall, proxy, etc.
Tutto ciò determina la performance del servizio presso l’utente finale.
Un IT manager si prende cura di mantenere un certo livello di qualità del servizio: garantire un SLA con l’utente finale.
Naturalmente, ancor prima del controllo viene la misura: si vuole monitorare il servizio cloud.
La questione è questa: esistono scenari che un monitoraggio attivo classico non puo’ risolvere.
Ho riportato tre scenari classici:
Un browser che consuma un servizio cloud, di cui e’ nota per esempio la RESTful API.
Un client closed source di cui non si conosce il middleware.
Ed infine, caso più estremo, un browser che renderizza un’applicazione virtualizzata in cloud: ad esempio tramite protocollo RDP per RDWebAccess o HDX per Citrix.
Chiamare classicamente le API per monitorare il servizio cloud è possibile solo nel primo caso. Nel secondo caso non è possibile: non dato sapere come e’ implementata la comunicazione client-server. Magari potrebbe non usare nemmeno protocolli noti tipo HTTP. Nel terzo caso ciò che abbiamo equivale ad avere un canale video, tastiera, mouse e stampante: impossibile raggiungere le API del servizio cloud.
La soluzione che WP ha sviluppato risolve tutti e tre gli scenari.
I am talking about Alyvix.
Maybe some of you could remember Alexa, which was the original project. But Alyvix is a brand new piece of software and the goal of my keynote is to give you an overview and just some insights about it.
So, the question is: what is Alyvix?
[Actually, for months I have updated you about the state of its development, but maybe most of you did not even know what Alyvix is.]
Alyvix is a Visual Synthetic Monitoring system.
Alyvix is an open source Python software, which is easily deployable on Windows 64bit machines, thanks to Anaconda.
OK, but now, what does ‘Visual Synthetic Monitoring’ mean?
It is ‘Visual’ because Alyvix looks at graphic interfaces. If you can see something on your screen Alyvix can do that too.
It is ‘Synthetic’ because Alyvix behaves like human users. If you can synthetize something (e.g. a music instrument, a vitamin), that is because you can reproduce it artificially. And that’s exactly what you can do with Alyvix synthetizing graphical application states and the way to interact with.
And finally, it is a ‘Monitoring’ system because Alyvix (with a proper integration in Icinga) keeps track of the performance measures about each application transactions in a given user interaction flow.
Before to proceed discovering the features of Alyvix, I would like to localize this kind of product in the IT galaxy.
The Alyvix system (I mean together with Icinga) is a so-called APM, because it is able to monitor and manage the performance measures of software applications. You can diagnose application performance issues in order to maintain an expected level of service.
More specifically, Alyvix assesses the End User Experience, that is the point of view from which the Alyvix performance measurement works.
Moreover, as I said, Alyvix simulates interaction flows that end users would take on applications, that is why Alyvix belongs to the Active Monitoring subset.
But, finally, the most accurate label as product category for Alyvix is Visual Synthetic Monitoring.
Point number ONE.
Alyvix can automate any application, simply because it interacts with GUIs exactly as a human would do.
How it is possible to achieve that?
Alyvix provides GUI tools to design any application transactions, from the point of view of their graphical aspects and interaction modes.
By the way, at its core, Alyvix relies on
- Python (|Anaconda)
- RobotFramework
- OpenCV
- TesseractOCR
So, what we’d like to achieve is, in some sense, to translate 1 transaction in 1 callable Alyvix keyword.
Then, if I’ll call that keyword, Alyvix acts the defined interactions on the defined graphical elements.
It is possible to define transactions for 3 types of graphics:
Images
Rectangles
Text strings
1 Alyvix keyword can be made by 1 so called Image Finder
In Image Finders are defined 1 or more image components
Image components can be for example:
any kind of icon: tiny or big
I mean a picture that can be big as you want
group of icons in toolbars
arrow icons, that are really important
logotypes and banners
and so on: we’re talking about any kind of pixel matrix, between a single point to, eventually, an entire screen
1 Alyvix keyword can be made by 1 Rect Finder
In Rect Finders are defined 1 or more rectangle components
Rect components can be for example:
Check boxes
Buttons
Spin boxes
Combo boxes
Text boxes
Tabs
Progress bars
List boxes
Picture frames
and so on: we’re talking about any kind of rectangular shape, between a small check box to an entire window frame
And of course, they are seen as rectangles.
1 Alyvix keyword can be made by 1 Text Finder
In Text Finders are defined 1 or more text string components
Text string components can be for example:
any text string into GUIs, so text that can be typically found closed to images or rectangles
but also, any text string immersed in a text block
and so on: we’re talking about any kind of text starting from the length of 2 characters
Now I’m going to tell you more in depth about the procedure to create one Alyvix keyword.
First of all, you need to select one of the Alyvix Finder type as we previously took into account.
Second, you have to drag and drop selection areas on the screen in order to highlight one or more components and ROIs they must lie. Here, I’ve put a Rect Finder example.
Third, type a unique keyword name.
Fourth, tune recognition settings for every components:
similarity threshold for IF
size thresholds for RF (here you’ve got the example)
regular expression for TF
Fifth step: set interaction modes for every components; you can choose to do nothing, just to hoover on the components, to left, double or right click on them.
Sixth and final step: set performance settings for the whole keyword; you could enable or not the Alyvix performance measurement and setup its thresholds: warning, critical and timeout. That’s in order to properly label the related transaction because of its time consumption or to break the keyword after a while reporting a failure.
One step further.
You can bind together several Alyvix Finders of different types under a so called Object Finder.
You can basically create an Alyvix keyword with multitype components in order to define a really unique and unambiguous transaction.
Here we’ve got the Citrix login form as an example with IF, TF, RF, ROI in between to link everything together and of course all the interactions are inherited.
Everything together in a powerful keyword Object Finder based.
OK, now, think about this real scenario: Alyvix should access the virtualized application menu through Citrix.
But, the Citrix login form is in a different position on the screen, the rendering of images and text is not good, it is pixelized, the edit boxes and the button are slightly shifted.
Thanks to all the good settings of our keyword, it does break and it can solve the situation accessing the StoreFront.
So, at the end of the day what we’d like to do it to translate entire user interaction flows synthetizing transaction flows which are keyword flows.
Practically, what we get is a list of keywords in the Alyvix editor, so we get a executable test case. Keywords are, by the way, Python methods within a Python module.
Non capiscono perché si possa scrivere lowercased underscored invece che Camel Cased con spazi in mezzo
Dove si usano le keyword all’interno del test case, quali sono gli argomenti opzionali e in che formato vanno
Setup e teardown
Here you’ve got an example on a web service: getting results for Google search.
Alyvix runs a browser addressing Google, then Alyvix tries continuously to detect that object. When it’ll appear on the screen Alyvix takes that time passed and interacts with that object.
That’s what happens on and on until the end of the test case.
The important thing to stress here is that Alyvix engine is design to really output net performances, without image processing time, detection and interaction times.
So, precise and accurate measures.
So, what do we want to know about every transaction?
Well, couple of things:
First, its AVAILABILITY: a transaction, so a keyword, can tell us if an certain application state is available or not.
Second, its RESPONSIVENESS: if a given application state is available, well, I want to know how fast is that availability. I mean the amount of milliseconds.
Absence of availability causes downtime services. Poor responsiveness causes latencies spikes.
First of all, Alyvix test cases are easily scriptable thanks to an Alyvix command line utility. And you can get test case performances at the command line, also in an Icinga format.
But mostly, Alyvix prints out rich HTML reports, where you can find all the list of executed keywords, together with their performances and screenshots, that are grabbed when defined graphics were detected. Actually, every single graphic component of a keyword is highlighted on its screenshot. It good to have a certification of the availability of an application state at that time from that place.
Finally, if a keyword breaks (because it reaches its timeout limit) I can know why, because an animation is provided in that case and a ROI is blinking, where Alyvix can’t detect a component.
I’m going to show you the big picture about Alyvix test case integration in Icinga.
We have an Alyvix probe which is a Windows 64bit machine where a cloud application will run in a browser.
As I explained during this keynote we can build an Alyvix test case that could be automate and measure that app.
Now, I can run that test from a prompt, but I can even run it remotely thanks to NSClient++ easily defining a run command in its config file.
And finally, I can set commands, services and host in Icinga to monitor that probe.
This is an example on the final achievement.
Service downtime and latency spikes detectable.
We can assess the level of the end user experience.
- navigazione in icinga per visualizzare impostazioni e grafici di un test
So, what do we want to know about every transaction?
Well, couple of things:
First, its AVAILABILITY: a transaction, so a keyword, can tell us if an certain application state is available or not.
Second, its RESPONSIVENESS: if a given application state is available, well, I want to know how fast is that availability. I mean the amount of milliseconds.
Absence of availability causes downtime services. Poor responsiveness causes latencies spikes.