Interagire con il grafico a fiamme
Cloud Profiler mostra i dati di profilazione utilizzando grafici a fiamme. Per un'introduzione concettuale, consulta la sezione Grafici a fiamme.
Il grafico a fiamme è composto da frame. Ogni frame rappresenta una funzione nel servizio:
La larghezza di un frame corrisponde al suo consumo della metrica analizzata. Il frame principale, ad esempio, rappresenta l'intero servizio e consuma il 100% della metrica analizzata. Pertanto, questo frame viene mostrato a larghezza intera.
Per impostazione predefinita, il colore del frame corrisponde, ove possibile, al pacchetto della funzione. Se le informazioni sul pacchetto non sono disponibili, come con Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi funzione. In uno stack di chiamate, una modifica nel colore del blocco significa una transizione da un pacchetto a un altro. Puoi cambiare il modo in cui i frame vengono colorati. Per ulteriori informazioni, consulta la sezione Modalità colore.
Il grafico a fiamme mostra uno o più stack di chiamate con i valori medi di un insieme di profili:
- Ogni singolo profilo rappresenta i dati raccolti una volta al minuto da una singola istanza del servizio configurato in una singola zona di Compute Engine. Il periodo di raccolta di un profilo varia in base al tipo di profilo. Per scoprire di più, consulta Raccolta di profili.
- Viene calcolata una media di massimo 250 profili. Se sono disponibili più di 250 profili, 250 vengono selezionati in modo casuale come set di esempio.
- Il frame in alto, o "root", in un grafico a fiamme rappresenta l'intero servizio. Sotto il frame "root", si trova un altro frame o set di frame che costituisce la seconda riga del grafico. Ciascuno di questi frame codificati per colore è una chiamata di primo livello effettuata dal servizio. Sotto ciascuno di questi frame di funzioni colorate si trova un altro set di frame di funzioni, ognuno dei quali è responsabile di una parte della risorsa del frame sopra di essi. La gerarchia dei frame di funzioni nel grafico rappresenta la sequenza di chiamata, mentre la larghezza di un frame rappresenta il contributo di quella funzione o metodo al consumo di risorse.
Ad esempio, il grafico del profiler dell'heap utilizzato per docdemo-service mostra che il servizio chiama diversi frame di primo livello, uno dei quali è la funzione main
del runtime Go. La larghezza di questi frame di primo livello mostra la maggior parte dell'heap consumata dallo stack di chiamate che coinvolge main
, specifici dell'applicazione main
, allocOnce
e allocImpl
del runtime Go:
Il frame principale mostra le informazioni sul consumo della metrica.
Passaggio del mouse sopra un frame
Quando tieni il puntatore su un frame nel grafico a fiamme, si apre una descrizione comando del frame che mostra informazioni aggiuntive sul frame:
- Nome funzione
- Nome file della funzione
- Utilizzo assoluto e percentuale di utilizzo
Nelle informazioni sul consumo della metrica, il prefisso totale indica che il valore della metrica e la percentuale riguardano una funzione e le sue figlie. Al contrario, il prefisso self indica che il valore della metrica e la percentuale sono relativi alla funzione con il consumo dei relativi figli secondari escluso.
La finestra di dialogo include anche i pulsanti:
- Messa a fuoco: mette a fuoco il grafico sulla funzione del frame corrente.
- Mostra stack: aggiunge un filtro per visualizzare solo gli stack che includono la funzione di questo frame.
- Mostra cronologia: apre la visualizzazione della cronologia per la funzione del frame.
In questo esempio, la descrizione comando mostra che la funzione runtime.main
si trova nel file /usr/local/go/src/runtime/proc.go
. Le informazioni sul consumo della metrica mostrano che runtime.main
e le relative unità secondarie consumano 54,73 MiB di memoria, ovvero circa il 98% della memoria totale consumata dal programma:
Selezionare un frame
Quando selezioni un frame, il grafico a fiamme viene ridisegnato con il frame mostrato a larghezza intera e i colori più alti nello stack di chiamate sono disattivati. La selezione di un frame non cambia alcuna impostazione, ma solo il modo in cui il grafico viene visualizzato. Per tornare alla visualizzazione originale, seleziona il frame principale (in alto).
Nel seguente esempio, il puntatore è su un piccolo frame ed è difficile visualizzare lo stack di chiamate. La descrizione comando identifica (*huffmanBitWriter).write
come funzione di frame:
Dopo aver selezionato il frame, il grafico viene ridisegnato, rendendo più visibile lo stack di chiamate:
Passaggi successivi
- Filtra il grafico a fiamme.
- Concentrare il grafico a fiamme su una funzione.
- Visualizza tendenze storiche.
- Confronta i profili.