Interagire con il grafico delle fiamme
Cloud Profiler visualizza i dati di profilazione tramite 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 consumo della metrica analizzata. Il frame superiore, ad esempio, rappresenta l'intero servizio e utilizza il 100% della metrica analizzata. Pertanto, il frame viene mostrato a larghezza intera.
Per impostazione predefinita, il colore del frame corrisponde, dove possibile, al pacchetto della funzione. Se le informazioni sui pacchetti non sono disponibili, come nel caso di Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi funzione. In uno stack di chiamate, la modifica del colore dei blocchi indica una transizione da un pacchetto all'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 su 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. Per ulteriori informazioni, consulta Raccolta profilo.
- Viene calcolata la media di un massimo di 250 profili. Se sono disponibili più di 250 profili, 250 vengono selezionati in modo casuale come insieme campione.
- Il frame superiore, o "root", in un grafico a fiamme rappresenta l'intero servizio. Sotto il frame "principale", si trova un altro frame o insieme di frame che compongono la seconda riga del grafico. Ciascuno di questi frame, codificati per colore, è una chiamata di primo livello effettuata dal servizio. Sotto ognuno di questi frame di funzione colorati c'è un altro insieme di frame di funzione, ognuno dei quali è responsabile di una parte della risorsa del frame precedente. La gerarchia dei frame di funzione nel grafico rappresenta la sequenza di chiamata, mentre la larghezza di un frame rappresenta il contributo della funzione o del metodo al consumo delle risorse.
Ad esempio, il grafico del profiler dell'heap utilizzato per docdemo-service mostra che il servizio chiama frame di primo livello diversi, uno dei quali è la funzione main
del runtime Go. La larghezza di questi frame di primo livello mostra che la maggior parte dell'heap viene consumata dallo stack di chiamate che include main
del runtime di Go, main
, allocOnce
e allocImpl
specifici per l'applicazione:
Il frame principale mostra le informazioni sul consumo delle metriche.
Passare il mouse sopra una cornice
Quando tieni il puntatore su un frame nel grafico a fiamme, si apre una descrizione comando relativa al frame che mostra ulteriori informazioni:
- Nome funzione
- Nome file della funzione
- Utilizzo assoluto e utilizzo percentuale
Nelle informazioni sul consumo delle metriche, il prefisso totale indica che il valore della metrica e la percentuale sono relativi a una funzione e ai relativi figli. Al contrario, il prefisso self indica che il valore della metrica e la percentuale sono relativi alla funzione con il consumo dei relativi elementi secondari escluso.
La finestra di dialogo include anche i pulsanti:
- Stato attivo: imposta lo stato attivo sul grafico sulla funzione del frame corrente.
- Mostra stack: aggiunge un filtro per mostrare solo gli stack che includono la funzione di questo frame.
- Mostra cronologia: apre la visualizzazione della cronologia relativa alla 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 delle metriche mostrano che runtime.main
e i suoi figli consumano 54,73 MiB di memoria, ovvero circa il 98% della memoria totale consumata dal programma:
Selezione di una cornice
Quando selezioni un frame, il grafico a fiamme viene ridisegnato con quel frame mostrato a larghezza intera e i colori più in alto nello stack di chiamate vengono disattivati. La selezione di un frame non cambia nessuna impostazione, cambia solo il modo in cui viene visualizzato il grafico. Per tornare alla visualizzazione originale, seleziona il frame principale (superiore).
Nell'esempio seguente, il puntatore si trova su un frame minuscolo e risulta difficile visualizzare lo stack di chiamate. La descrizione comando identifica (*huffmanBitWriter).write
come funzione frame:
Dopo aver selezionato il frame, il grafico viene ridisegnato, rendendo più visibile lo stack di chiamate:
Passaggi successivi
- Filtra il grafico a fiamme.
- Inquadra il grafico a fiamme su una funzione.
- Visualizza le tendenze storiche.
- Confronta i profili.