Nuovo strumento semplifica l'analisi delle prestazioni dei microservizi
Un tool di analisi visiva migliora l'analisi delle performance dei microservizi.
― 8 leggere min
Indice
- Le Sfide delle Prestazioni dei Microservizi
- Introduzione dello Strumento di Analisi Visiva
- Componenti Visive Spiegate
- La Visualizzazione ad Albero
- Il Componente Istogramma
- Interazione degli Utenti con lo Strumento
- Analisi in Avanti
- Analisi all'Indietro
- Architettura e Implementazione dello Strumento
- Valutazione dello Strumento
- Generazione del Dataset
- Analisi Manuale
- Risultati dalla Valutazione
- Conclusione
- Fonte originale
- Link di riferimento
Analizzare le Prestazioni dei Microservizi è un lavoro complesso. I microservizi sono piccoli servizi indipendenti che lavorano insieme, spesso chiamandosi a vicenda per completare una richiesta. Ogni volta che una richiesta passa attraverso il sistema, potrebbe attivare diverse chiamate ad altri servizi situati su server o contenitori diversi. Queste interazioni possono rendere difficile capire le prestazioni.
Gli strumenti attuali per tracciare e analizzare i microservizi usano principalmente visualizzazioni chiamate swimlane. Queste mostrano le singole richieste che si muovono attraverso il sistema, aiutando a comprendere le loro prestazioni. Tuttavia, non riescono a colmare il divario quando si tratta di comprendere le tendenze delle prestazioni complessive nel sistema con molte richieste.
Per affrontare questo problema, presentiamo un nuovo strumento di analisi visiva che aiuta ad analizzare le prestazioni di più richieste contemporaneamente. Lo strumento offre una varietà di visualizzazioni interattive che evidenziano le caratteristiche comuni delle richieste e come si relazionano alle prestazioni complessive.
Testando il nostro strumento con dati di un sistema di microservizi open-source consolidato, dimostriamo che può aiutare a identificare discrepanze temporali significative nelle chiamate remote che influenzano le prestazioni. Inoltre, può aiutare a scoprire schemi significativi nelle richieste e la loro connessione con le prestazioni dei microservizi.
Le Sfide delle Prestazioni dei Microservizi
I microservizi hanno cambiato il modo in cui il software viene sviluppato e distribuito. Ogni servizio funziona in modo indipendente, con team separati che gestiscono il suo ciclo di vita. Questa configurazione consente aggiornamenti più rapidi, che è un vantaggio vitale nel mercato di oggi. Tuttavia, introduce anche sfide nel mantenere prestazioni costanti.
Un problema principale è la complessità di questi sistemi. I metodi di assicurazione delle prestazioni, come il testing prima del rilascio, diventano spesso difficili da implementare a causa del tempo e delle risorse limitate. La pressione per consegnare aggiornamenti rapidamente può spingere i team a saltare controlli essenziali delle prestazioni.
Inoltre, le prestazioni dei microservizi possono variare in base ai modelli di utilizzo in tempo reale, rendendo difficile prevedere i problemi di prestazioni prima che si verifichino. Cambiamenti frequenti nel sistema e carichi di lavoro imprevedibili possono portare a regressioni delle prestazioni che colgono i team di sorpresa.
A causa di queste sfide, il concetto di osservabilità ha guadagnato interesse. L'osservabilità consente ai team di analizzare log, tracce e metriche per ottenere una visione completa delle prestazioni del sistema. Gli strumenti di tracciamento distribuito sono ampiamente utilizzati oggi per migliorare l'osservabilità nei sistemi di microservizi. Questi strumenti tracciano le richieste mentre si muovono attraverso il sistema, fornendo assistenza visiva per analizzare le prestazioni.
Tuttavia, molti strumenti di tracciamento distribuito attuali sono stati criticati per non essere efficaci nell'analizzare le prestazioni complessive. Spesso richiedono agli utenti di passare tra diversi strumenti per varie analisi. Questo passaggio può diventare ingombrante e dispendioso in termini di tempo, rendendo più difficile avere una comprensione rapida dei modelli di prestazione del sistema.
Introduzione dello Strumento di Analisi Visiva
Il nostro nuovo strumento si concentra sull semplificare l'analisi delle prestazioni per i sistemi di microservizi. Si basa su idee precedenti e offre un modo semplice per vedere come le diverse caratteristiche delle richieste si relazionano alle prestazioni complessive.
Lo strumento include due componenti visive principali: un albero e un istogramma. L'albero mostra come le richieste fluiscono attraverso le varie chiamate a procedura remota (RPC), mentre l'istogramma presenta la distribuzione dei tempi di risposta per le richieste.
Gli utenti possono interagire con questi componenti per scoprire le caratteristiche importanti di specifici percorsi di esecuzione e come influenzano le prestazioni.
Componenti Visive Spiegate
Visualizzazione ad Albero
LaL'albero è progettato per dare una vista dettagliata dei flussi di lavoro coinvolti nelle richieste. Ogni nodo nell'albero rappresenta una chiamata RPC, con le linee che mostrano come le richieste si relazionano tra loro.
Ad esempio, se una richiesta comporta una serie di RPC, verrà visualizzata nell'albero in base alle connessioni tra quelle chiamate. Questa struttura ad albero consente di avere una vista aggregata di più richieste, rendendo più facile vedere quali percorsi vengono utilizzati frequentemente e come si relazionano alle prestazioni.
Per evidenziare le RPC che meritano di essere investigate, lo strumento utilizza la codifica a colori per mostrare la variabilità dei tempi di esecuzione e la frequenza delle chiamate. I percorsi con maggiore variabilità possono indicare un maggiore impatto sul tempo di risposta complessivo.
Il Componente Istogramma
L'istogramma mostra un grafico standard dei tempi di risposta end-to-end per aiutare gli utenti a vedere l'immagine complessiva delle prestazioni. Permette di identificare visivamente i modelli di prestazione, come le modalità che indicano comportamenti ricorrenti.
Gli utenti possono selezionare intervalli nell'istogramma per concentrarsi su tempi di risposta specifici. Questa selezione aggiornerà il componente ad albero per mostrare come i percorsi di esecuzione RPC si relazionano a quei tempi selezionati, evidenziando eventuali discrepanze nei tempi di risposta in base agli intervalli selezionati.
Interazione degli Utenti con lo Strumento
Lo strumento supporta due tipi di analisi: analisi in avanti e analisi all'indietro.
Analisi in Avanti
Nell'analisi in avanti, gli utenti partono dalla visualizzazione ad albero. Esaminando i nodi, possono identificare i percorsi RPC che mostrano una variabilità significativa nei loro tempi di esecuzione o frequenza di invocazione. Gli utenti possono quindi fare clic su questi nodi per esplorare come questi attributi si relazionano ai tempi di risposta complessivi.
Quando un utente seleziona un percorso RPC, lo strumento genera un grafico a barre che mostra l'intervallo dei tempi di esecuzione per quel percorso. Questa visualizzazione consente agli utenti di vedere come i comportamenti specifici dei tempi di esecuzione si correlano alle prestazioni end-to-end, aiutando a scoprire potenziali problemi di prestazioni.
Analisi all'Indietro
Nell'analisi all'indietro, gli utenti possono partire dall'istogramma. Scelgono un intervallo specifico di tempi di risposta end-to-end che vogliono analizzare, il che aggiorna poi l'albero per mostrare le discrepanze nei tempi di esecuzione e nella frequenza. I nodi che mostrano differenze significative in questi attributi rispetto ad altri verranno evidenziati.
Facendo clic su questi nodi evidenziati verranno visualizzati istogrammi che confrontano i tempi di esecuzione per le richieste selezionate rispetto ad altre richieste. Questo approccio rende facile vedere come i diversi comportamenti di esecuzione siano collegati a tempi di risposta specifici.
Architettura e Implementazione dello Strumento
L'architettura sottostante dello strumento coinvolge diversi componenti.
- Raccoglitore di Tracce: Raccoglie tracce dal sistema di microservizi e le memorizza in un'archiviazione di tracce.
- Fase di Preprocessing: Questo componente migliora l'efficienza e organizza i dati raccolti, preparandoli per l'analisi nello strumento.
- App Dashboard: La dashboard si connette ai dati organizzati e genera visualizzazioni per gli utenti.
Lo strumento supporta dati formattati da strumenti di tracciamento comuni ed è costruito utilizzando tecnologie web per renderizzare le visualizzazioni.
Valutazione dello Strumento
Per capire quanto sia efficace lo strumento, abbiamo condotto una valutazione approfondita utilizzando set di dati derivati da un complesso sistema di microservizi. Il nostro obiettivo era vedere se lo strumento potesse rivelare efficacemente le relazioni tra attributi RPC e tempi di risposta complessivi.
Generazione del Dataset
I set di dati provenivano da un noto sistema di microservizi open-source che fornisce un servizio di prenotazione. Abbiamo generato set di dati distinti, ciascuno mimando scenari che producevano diverse caratteristiche di prestazione.
Abbiamo utilizzato due approcci principali per creare i set di dati:
- Inserendo Problemi di Prestazione: Introducendo ritardi artificiali in specifici RPC, potevamo osservare come queste modifiche influenzassero i tempi di risposta.
- Cambiando i Carichi di Lavoro: Abbiamo variato i carichi per simulare diversi tipi di interazioni degli utenti, portando a fluttuazioni delle prestazioni.
Analisi Manuale
Due autori hanno analizzato manualmente i set di dati utilizzando lo strumento. Si sono concentrati su quanto bene questo aiutasse a comprendere la relazione tra gli attributi delle richieste e i tempi di risposta. Entrambi gli autori avevano conoscenze pregresse del sistema di microservizi, ma non erano a conoscenza delle modifiche specifiche apportate ai set di dati.
In generale, lo strumento ha reso l'analisi delle richieste semplice nella maggior parte dei casi. Ha messo in evidenza le relazioni tra i tempi di esecuzione e i tempi di risposta attraverso diversi set di dati.
Risultati dalla Valutazione
Attraverso la nostra valutazione, abbiamo scoperto che lo strumento ha fornito preziose informazioni sulle prestazioni dei microservizi. Nella maggior parte dei set di dati testati, è stato facile identificare le RPC influenzate e le loro correlazioni con i tempi di risposta complessivi.
Tuttavia, in un paio di set di dati, l'analisi si è rivelata più difficile, richiedendo più interazione con lo strumento.
Conclusione
Lo strumento di analisi visiva presentato fornisce una soluzione promettente per analizzare le prestazioni dei microservizi. Semplifica il processo di identificazione e comprensione delle relazioni tra gli attributi delle richieste e i tempi di risposta complessivi, supportando vari tipi di analisi.
Futuri miglioramenti si concentreranno sul miglioramento dell'efficienza dello strumento e sulla convalida con dati reali provenienti da sistemi di microservizi più grandi. L'obiettivo è far diventare questo strumento un'opzione privilegiata per i team che cercano di migliorare le loro capacità di monitoraggio e analisi delle prestazioni dei microservizi.
Titolo: VAMP: Visual Analytics for Microservices Performance
Estratto: Analysis of microservices' performance is a considerably challenging task due to the multifaceted nature of these systems. Each request to a microservices system might raise several Remote Procedure Calls (RPCs) to services deployed on different servers and/or containers. Existing distributed tracing tools leverage swimlane visualizations as the primary means to support performance analysis of microservices. These visualizations are particularly effective when it is needed to investigate individual end-to-end requests' performance behaviors. Still, they are substantially limited when more complex analyses are required, as when understanding the system-wide performance trends is needed. To overcome this limitation, we introduce vamp, an innovative visual analytics tool that enables, at once, the performance analysis of multiple end-to-end requests of a microservices system. Vamp was built around the idea that having a wide set of interactive visualizations facilitates the analyses of the recurrent characteristics of requests and their relation w.r.t. the end-to-end performance behavior. Through an evaluation of 33 datasets from an established open-source microservices system, we demonstrate how vamp aids in identifying RPC execution time deviations with significant impact on end-to-end performance. Additionally, we show that vamp can support in pinpointing meaningful structural patterns in end-to-end requests and their relationship with microservice performance behaviors.
Autori: Luca Traini, Jessica Leone, Giovanni Stilo, Antinisca Di Marco
Ultimo aggiornamento: 2024-04-22 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2404.14273
Fonte PDF: https://arxiv.org/pdf/2404.14273
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.