Che cos'è il monitoraggio sintetico?

Il monitoraggio sintetico è una pratica di monitoraggio che simula le interazioni degli utenti con un sistema. Può trattarsi di un'applicazione o di un sito web, o di qualsiasi tipo di software esposto agli utenti finali. I dati generati dalle interazioni simulate vengono raccolti e analizzati per valutare il comportamento degli utenti e la risposta del sistema agli input e alle azioni degli utenti.

Un uso comune del monitoraggio sintetico dei siti web è la comprensione e l'ottimizzazione di un sito web, ma il monitoraggio sintetico è una pratica molto più ampia, che comprende molti settori. Viene utilizzato per emulare operazioni desktop/OS, per il riconoscimento di pattern di immagini o per eseguire controlli HTTP su una rete. Questo tipo di monitoraggio avviene attraverso l'uso di test sintetici: una serie di script e file di configurazione che indicano allo strumento di monitoraggio come eseguire i test sintetici.

Questi sono di grande utilità per gli amministratori IT per testare tutti i possibili casi d'uso a cui è soggetto un software, o più in generale un sistema, e vedere se c'è spazio per l'ottimizzazione, motivi per le modifiche o azioni da intraprendere per risolvere i problemi.

Il monitoraggio sintetico è anche definito monitoraggio proattivo, in quanto non attende che si verifichino eventi, ma crea scenari per verificare il comportamento del sistema. Può convalidare le prestazioni e la disponibilità dei sistemi in modo attivo. Il monitoraggio classico, invece, che analizza solo i dati reali, viene definito monitoraggio passivo.

Dashboard del monitoraggio sintetico in Checkmk

Come funziona il monitoraggio sintetico?

In generale, i test sintetici vengono creati dagli ingegneri QA (quality assurance) per testare un sito web, un'applicazione o un sistema. A seconda del framework adottato e dello strumento di monitoraggio sintetico, questi script assumono diverse forme e sintassi. Le soluzioni di monitoraggio sintetico eseguono i test e riportano i risultati allo strumento di monitoraggio. I dati vengono analizzati per valutare il comportamento del sistema. Se viene identificata una necessità, il sistema viene migliorato o modificato di conseguenza. Vengono scritti nuovi test sintetici per verificare ulteriormente le modifiche ed eventualmente continuare a migliorare la qualità del sistema.

Spesso i test sintetici si presentano sotto forma di attività automatizzate che di solito vengono eseguite dagli ingegneri. In genere è anche possibile eseguire test sintetici manualmente, anche se è più raro. La maggior parte degli interventi manuali avviene quando i test vengono aggiornati per riflettere le modifiche al comportamento e all'interfaccia utente dei sistemi monitorati.

Il monitoraggio sintetico ha come fulcro i test sintetici, poiché tutto ruota attorno alla corretta scrittura ed esecuzione dei test per i propri casi d'uso. Nella maggior parte delle soluzioni di monitoraggio sintetico, sono possibili test sintetici per una miriade di scenari, con un'ampia copertura delle esigenze di qualsiasi azienda, entro i limiti di ciò che il fornitore ha integrato nel software. Sia che tu debba testare il flusso di clic di un utente finale attraverso la tua piattaforma di e-commerce, sia che tu debba monitorare le transazioni di shopping o persino i giochi online, i test sintetici sono possibili.

La vista di monitoraggio sintetico in Checkmk con tre test

Quali sono i tipi di monitoraggio sintetico?

A questo punto è facile capire che esistono diversi tipi di monitoraggio sintetico. Si differenziano in base al caso d'uso per il quale vengono eseguiti i test o al tipo di sistema da testare. Vediamo quali tipi esistono e per quali scopi vengono utilizzati.

Monitoraggio dell'uptime

Conosciuto anche come monitoraggio della disponibilità, aiuta a monitorare la disponibilità e la reattività di un'applicazione web. I test sintetici possono consistere nel semplice utilizzo di un ping o di una richiesta GET a risorse specifiche per verificarne l'accessibilità, oppure nella creazione di più richieste simultanee per monitorare la reattività e le prestazioni dell'applicazione web.

Monitoraggio sintetico dei siti web

Come è facile intuire dal nome stesso, il monitoraggio sintetico dei siti web verifica la disponibilità e la navigabilità di un sito web. Con il monitoraggio sintetico dei siti web è possibile eseguire non solo semplici test di monitoraggio dell'uptime, ma anche casi d'uso più complessi di un ipotetico utente che naviga attraverso il sito web. I tempi di risposta, il tempo di caricamento delle pagine e tutte le metriche relative alle prestazioni di un sito web possono essere verificati attraverso test sintetici di questo tipo.

Monitoraggio sintetico delle transazioni

Il monitoraggio sintetico delle transazioni va un po' oltre il monitoraggio sintetico dei siti web ed è più specializzato. Viene utilizzato per testare sia i siti web che le applicazioni web al fine di garantire funzionalità prive di bug, convalidare l'invio di moduli, verificare che le operazioni critiche per l'azienda, come il checkout del carrello della spesa, siano prive di problemi e altro ancora. Test come questi vengono spesso eseguiti a intervalli regolari da server sparsi in tutto il mondo per garantire la completa disponibilità di tutte le funzioni critiche delle applicazioni e dei siti web.

Monitoraggio degli utenti reali e monitoraggio sintetico: qual è la differenza?

È necessario spendere una parola sul monitoraggio degli utenti reali e sul monitoraggio sintetico. I termini vengono spesso confusi. Il monitoraggio degli utenti reali si basa sui dati e sulle interazioni effettive effettuate dagli utenti finali su un sistema, indipendentemente da quale esso sia. Si tratta quindi di dati reali, a differenza del monitoraggio sintetico, che è generato dal computer, una simulazione del possibile comportamento degli utenti reali.

Pertanto, il monitoraggio sintetico e quello reale non differiscono nell'obiettivo finale, che è sempre quello di monitorare un sistema per garantirne le prestazioni e l'operatività ottimali, ma utilizzano insiemi di dati completamente diversi. Tuttavia, non è necessario scegliere tra monitoraggio dell'utente reale e monitoraggio sintetico. Entrambi possono essere e sono implementati contemporaneamente, anche con gli stessi strumenti. A volte il monitoraggio sintetico viene impostato solo su sistemi in fase di test, non ancora in produzione; a volte viene eseguito in parallelo al monitoraggio dell'utente reale su sistemi già attivi. La scelta spetta agli ingegneri e alle ragioni specifiche del monitoraggio.

Quali sono i vantaggi del monitoraggio sintetico?

L'implementazione del monitoraggio sintetico presenta evidenti vantaggi. Uno di questi è la convalida delle prestazioni di un sistema. In quello che a volte viene chiamato monitoraggio sintetico delle prestazioni, vengono creati dei test per verificare le prestazioni di un sistema sotto stress e giudicare se è necessario apportare delle modifiche prima della messa in funzione. Oppure, semplicemente, per monitorare le prestazioni complessive in modo che le modifiche non abbiano un impatto negativo sugli utenti finali o sui carichi di lavoro interni. Questa funzione è preziosa per raccogliere informazioni che potrebbero essere più difficili da ottenere dagli utenti reali, poiché alcuni casi limite potrebbero essere troppo rari per fornire dati sufficientemente significativi.

Con il monitoraggio sintetico delle transazioni, è possibile stabilire un benchmark di riferimento. Osservando il comportamento dell'applicazione in una serie di test sintetici, è possibile stabilire un benchmark di come dovrebbe funzionare in condizioni normali. Una volta che l'applicazione è in produzione e durante il suo utilizzo, è utile confrontarla con il suo benchmark di prestazioni e rendersi conto immediatamente di eventuali cali di prestazioni.

Non esistono solo i vantaggi del monitoraggio sintetico delle prestazioni. Un'importante risorsa che il monitoraggio sintetico può offrire è la capacità di monitorare l'accessibilità di un sistema. Simulando il comportamento di utenti che necessitano di specifiche caratteristiche di accessibilità, è possibile capire quanto sia accessibile un'interfaccia utente o un sistema in generale.

Allo stesso modo, con il monitoraggio sintetico è possibile simulare l'esperienza che un utente lontano dal tuo datacenter avrà con un sistema. Gli sviluppatori e gli ingegneri QA possono determinare i tipi di richieste che un determinato utente probabilmente farà, oppure possono avviare loro stessi le richieste in determinate condizioni, ad esempio instradando gli utenti in un modo che riflette il modo in cui verrebbero instradati in una specifica posizione geografica.

La vista di monitoraggio sintetico in Checkmk con i test falliti

Le principali sfide del monitoraggio sintetico

Il monitoraggio sintetico non è privo di sfide. Ad esempio, molte delle difficoltà nell'impostare un sistema di monitoraggio sintetico risiedono nella preparazione dei giusti test sintetici. Ad esempio, oggi in molte infrastrutture si utilizza un mix di risorse cloud e on-premise. Più grande è l'ambiente distribuito, più difficile è per i team DevOps o di ingegneria simulare ogni possibile scenario.

Gli errori possono sfuggire se una determinata posizione o situazione non viene prevista e testata di conseguenza. Senza conoscere in anticipo e con precisione il percorso che gli utenti compiono sulla tua applicazione web, ad esempio, i test sintetici diventano un gioco di ipotesi. Prima di iniziare a implementare un software di monitoraggio sintetico, occorre fare un po' di lavoro.

Il monitoraggio sintetico richiede una serie di competenze specifiche da parte degli ingegneri, e non tutti sono esperti in materia. I diversi linguaggi e framework di testing utilizzano modi leggermente diversi per scrivere i test e creare un sistema di monitoraggio sintetico funzionante. Se i tuoi team non dispongono già di conoscenze specialistiche, il monitoraggio sintetico può diventare difficile da configurare e richiedere molto tempo.

Anche piccole modifiche dell'interfaccia utente nelle applicazioni rivolte al cliente possono causare il fallimento degli script di test, innescando avvisi e notifiche e l'inevitabile preoccupazione degli amministratori di sistema. È importante disporre di una buona configurazione di avvisi/notifiche che eviti di attivare inutilmente gli avvisi, causando "stanchezza da avvisi". Anche se la risoluzione della maggior parte dei guasti è spesso banale, il monitoraggio sintetico ha ancora molta strada da fare prima di affermare di essere una soluzione "imposta una volta e dimenticala".

monitoraggio sintetico

Conclusione

Nonostante le sfide, è chiaro che il monitoraggio sintetico è uno strumento incredibilmente utile nell'arsenale delle aziende che vogliono ottimizzare l'affidabilità della propria infrastruttura. Gli strumenti di monitoraggio si sono orientati verso l'integrazione o l'abbinamento con specifici framework di monitoraggio sintetico. Checkmk non fa eccezione.

Checkmk ha incluso la potenza del Robot Framework nelle funzioni già molto automatizzate di Checkmk Cloud ed Enterprise. Seguire i risultati dei test sintetici di Checkmk è ora facile come impostare un normale agente di monitoraggio, con viste integrate nelle dashboard generali di Checkmk. Un ulteriore passo avanti per rendere il monitoraggio sintetico quasi senza sforzo.