Filtri e aggregazione: manipolare le serie temporali

In questa pagina vengono descritte le tecniche utilizzate per manipolare i dati delle serie temporali. Questi contenuti si basano sui concetti e sulla discussione in Metriche, serie temporali e risorse.

I dati non elaborati delle serie temporali devono essere manipolati prima di poter essere analizzati e l'analisi spesso comporta il filtraggio e l'aggregazione di alcuni dati. In questa pagina vengono descritte due tecniche principali per il perfezionamento dei dati non elaborati:

  • Filtri, che rimuove alcuni dati dalla considerazione.
  • Aggregazione, che combina più parti di dati in un insieme più piccolo in base alle dimensioni specificate.

I filtri e l'aggregazione sono strumenti efficaci per identificare pattern interessanti ed evidenziare, tra le altre cose, tendenze o anomalie nei dati.

In questa pagina vengono descritti i concetti alla base dei filtri e dell'aggregazione. Non spiega come applicarle direttamente. Per applicare filtri o aggregazione ai dati delle serie temporali, utilizza l'API Cloud Monitoring o gli strumenti di creazione di grafici e avvisi nella console Google Cloud. Per alcuni esempi, consulta i criteri di esempio per le API e gli esempi di Monitoring Query Language.

Dati non elaborati delle serie temporali

La quantità di dati non elaborati delle metriche in una singola serie temporale può essere enorme e di solito ci sono molte serie temporali associate a un tipo di metrica. Per analizzare l'intero set di dati per individuare elementi comuni, tendenze o valori anomali, devi elaborare alcune serie temporali dell'insieme. In caso contrario, ci sono troppi dati da considerare.

Per introdurre i filtri e l'aggregazione, gli esempi in questa pagina utilizzano un numero ridotto di serie temporali ipotetiche. Ad esempio, la seguente illustrazione mostra alcune ore di dati non elaborati di tre serie temporali:

Grafico che mostra tre serie temporali non elaborate: rossa, blu e verde.
Figura 1: tre serie temporali non elaborate

Ogni serie temporale è colorata, rossa, blu o verde, per riflettere il valore di un'ipotetica etichetta color. Esiste una serie temporale per ogni valore dell'etichetta. Tieni presente che i valori non sono allineati in modo ordinato, poiché sono stati registrati in momenti diversi.

Applicazione dei filtri

Uno degli strumenti più potenti per l'analisi è l'applicazione di filtri, che consente di nascondere i dati che non ti interessano al momento.

Puoi filtrare i dati delle serie temporali in base a quanto segue:

  • l'ora.
  • Valore di una o più etichette.

L'illustrazione seguente mostra il risultato dell'applicazione di filtri in modo da mostrare solo le serie temporali in rosso dell'insieme originale di serie temporali non elaborate (illustrate nella Figura 1):

Grafico che mostra una delle serie temporali non elaborate: il rosso.
Figura 2: dopo l'applicazione dei filtri, una serie temporale non elaborata

Questa serie temporale, selezionata tramite applicazione di filtri, viene utilizzata nella sezione successiva per dimostrare l'allineamento.

Aggregazione

Un altro modo per ridurre la quantità di dati a disposizione è riassumerli o aggregarli. Esistono due aspetti dell'aggregazione:

  • Allineamento o regolarizzazione dei dati all'interno di una singola serie temporale.
  • Riduzione o combinazione di più serie temporali.

Devi allineare le serie temporali prima di poterle ridurre. Le prossime sezioni descrivono l'allineamento e la riduzione utilizzando serie temporali in cui sono archiviati valori interi. Questi concetti generali si applicano anche quando una serie temporale ha un tipo di valore Distribution; tuttavia, in questo caso esistono alcuni vincoli aggiuntivi. Per saperne di più, consulta Informazioni sulle metriche con valori di distribuzione.

Allineamento: regolarizzazione all'interno della serie

Il primo passaggio per l'aggregazione dei dati delle serie temporali è l'alignment. L'allineamento crea una nuova serie temporale in cui i dati non elaborati sono stati regolarizzati nel tempo in modo da poter essere combinati con altre serie temporali allineate. L'allineamento genera serie temporali con dati a intervalli regolari.

L'allineamento prevede due passaggi:

  1. Divisione delle serie temporali in intervalli di tempo regolari, chiamata anche bucket dei dati. L'intervallo è chiamato periodo, periodo di allineamento o finestra di allineamento.

  2. Calcolo di un singolo valore per i punti nel periodo di allineamento. Sei tu a scegliere come viene calcolato quel singolo punto; puoi sommare tutti i valori, calcolare la loro media o utilizzare il valore massimo.

Poiché le nuove serie temporali create dall'allineamento rappresentano tutti i valori delle serie temporali non elaborate che si trovano nel periodo di allineamento con un singolo valore, viene anche chiamata riduzione all'interno della serie o aggregazione all'interno della serie.

Regolarizzazione degli intervalli di tempo

L'analisi dei dati delle serie temporali richiede che i punti dati siano disponibili su limiti di tempo con spaziatura uniforme. L'allineamento è la procedura necessaria per eseguire questa operazione.

L'allineamento crea una nuova serie temporale con un intervallo costante, il periodo di allineamento, tra i punti dati. L'allineamento viene in genere applicato a più serie temporali in preparazione di ulteriori manipolazioni.

Questa sezione illustra i passaggi di allineamento applicandoli a una singola serie temporale. In questo esempio, alla serie temporale di esempio illustrata nella Figura 2 viene applicato un periodo di allineamento di un'ora. La serie temporale mostra i dati acquisiti nell'arco di tre ore. La suddivisione dei punti dati in periodi di un'ora genera i seguenti punti in ogni periodo:

Periodo Valori
1:01–2:00 400, 350, 300, 200
2:01–3:00 200, 100
3:01–4:00 300, 250, 200

Scelta dei periodi di allineamento

La durata del periodo di allineamento dipende da due fattori:

  • La granularità di ciò che stai cercando di trovare nei dati.
  • Il periodo di campionamento dei dati, ovvero la frequenza con cui vengono registrati.

Le sezioni seguenti illustrano questi fattori in modo più dettagliato.

Inoltre, Cloud Monitoring conserva i dati delle metriche per un periodo di tempo limitato. Il periodo varia a seconda del tipo di metrica. Per maggiori dettagli, consulta Conservazione dei dati. Il periodo di conservazione è il periodo di allineamento significativo più lungo.

Granularità

Se sei consapevole che qualcosa è successo nel giro di un paio d'ore e vuoi approfondire l'analisi, probabilmente ti consigliamo di dedicare un periodo di un'ora o di un numero di minuti per l'allineamento.

Se vuoi esplorare le tendenze per periodi di tempo più lunghi, un periodo di allineamento più ampio potrebbe essere più appropriato. Periodi di allineamento estesi in genere non sono utili per esaminare condizioni anomale a breve termine. Se utilizzi, ad esempio, un periodo di allineamento di più settimane, l'esistenza di un'anomalia in quel periodo potrebbe essere comunque rilevabile, ma i dati allineati potrebbero essere troppo granulari per essere di grande aiuto.

Frequenza di campionamento

Anche la frequenza con cui vengono scritti i dati, ovvero la frequenza di campionamento, può influire sulla scelta del periodo di allineamento. Consulta Elenco delle metriche per le frequenze di campionamento delle metriche integrate. Considera la figura seguente, che illustra una serie temporale con una frequenza di campionamento di un punto al minuto:

Grafico di dati non elaborati con un periodo di campionamento di 1 minuto.

Se il periodo di allineamento è uguale al periodo di campionamento, sarà presente un punto dati in ogni periodo di allineamento. Ciò significa che, ad esempio, l'applicazione di uno qualsiasi degli allineatori max, mean o min genera la stessa serie temporale allineata. La seguente illustrazione mostra questo risultato, insieme alla serie temporale originale come una linea sbiadita:

Grafico di una serie temporale allineata con il periodo corrispondente al periodo di campionamento.

Per ulteriori informazioni sul funzionamento delle funzioni di allineamento, vedi Allineatori.

Se il periodo di allineamento è impostato su due minuti o il doppio del periodo di campionamento, ci sono due punti dati in ogni periodo. Se gli allineatori max, mean o min vengono applicati ai punti entro il periodo di allineamento di due minuti, le serie temporali risultanti sono diverse. La seguente illustrazione mostra questi risultati, insieme alla serie temporale originale come una linea sbiadita:

Grafico di serie temporali allineate al periodo che rappresenta il doppio del periodo di campionamento.

Quando scegli un periodo di allineamento, fai in modo che sia più lungo del periodo di campionamento, ma abbastanza breve da mostrare tendenze pertinenti. Potresti dover fare delle prove per determinare un periodo di allineamento utile. Ad esempio, se i dati vengono raccolti alla frequenza di un punto al giorno, un periodo di allineamento di un'ora è troppo breve per essere utile: per la maggior parte delle ore, non ci saranno dati.

Allineatori

Dopo che i dati sono stati suddivisi in periodi di allineamento, seleziona una funzione, l'allineatore, da applicare ai punti dati in quel periodo. L'allineatore produce un singolo valore posizionato alla fine di ogni periodo di allineamento.

Le opzioni di allineamento includono la somma dei valori, l'individuazione del valore massimo, minimo o della media dei valori, l'individuazione di un valore percentile scelto, il conteggio dei valori e altro ancora. L'API Cloud Monitoring supporta un ampio insieme di funzioni di allineamento, molte di più rispetto al semplice set illustrato qui; consulta Aligner per l'elenco completo. Per una descrizione degli allineatori tariffari e delta, che trasformano i dati delle serie temporali, consulta Tipi, tipi e conversioni.

Ad esempio, prendendo i dati inclusi in bucket dalle serie temporali non elaborate (illustrate nella Figura 1), scegli un allineatore e applicalo ai dati in ciascun bucket. La seguente tabella mostra i valori non elaborati e i risultati di tre diversi allineatori, max, mean e min:

Periodo Valori Allineatore: massimo Allineatore: media Allineatore: min
1:01–2:00 400, 350, 300, 200 400 312.5 200
2:01–3:00 200, 100 200 150 100
3:01–4:00 300, 250, 200 300 250 200

L'illustrazione seguente mostra i risultati dell'applicazione degli allineatori max, mean o min utilizzando un periodo di allineamento di 1 ora alla serie temporale rossa originale (rappresentata dalla linea sbiadita nell'illustrazione):

Grafico che mostra le serie temporali in rosso dopo l'applicazione di uno dei tre diversi allineatori.
Figura 3: una serie temporale, allineata in tre modi

Alcuni altri allineatori

La seguente tabella mostra gli stessi valori non elaborati e i risultati di altri tre allineanti:

  • Conteggio conteggia il numero di valori nel periodo di allineamento.
  • Somma somma tutti i valori nel periodo di allineamento.
  • Successivamente precedente utilizza il valore più recente nel periodo come valore di allineamento.
Periodo Valori Allineatore: numero Allineatore: somma Allineatore: avanti
1:01–2:00 400, 350, 300, 200 4 1250 200
2:01–3:00 200, 100 2 300 100
3:01–4:00 300, 250, 200 3 750 200

Questi risultati non vengono mostrati in un grafico.

Riduzione: combinazione di serie temporali

Il passaggio successivo, la riduzione, è il processo di combinazione di più serie temporali allineate in una nuova serie temporale. Questo passaggio sostituisce tutti i valori al limite del periodo di allineamento con un singolo valore. Poiché funziona su serie temporali diverse, la riduzione è chiamata anche aggregazione tra serie.

Riduttori

Un ridotto è una funzione che viene applicata ai valori in un insieme di serie temporali per produrre un singolo valore.

Le opzioni del riduttore includono la somma dei valori allineati o il rilevamento del valore massimo, minimo o medio dei valori. L'API Cloud Monitoring supporta un insieme ampio di funzioni di riduzione; consulta Reducer per l'elenco completo. L'elenco dei riduttori è parallelo all'elenco degli allineatori.

Le serie temporali devono essere allineate prima di poter essere ridotte. La seguente illustrazione mostra i risultati che allineano tutte e tre le serie temporali non elaborate (dalla Figura 1) a periodi di 1 ora con l'allineamento media:

Grafico che mostra tre serie temporali allineate alla media.
Figura 4: tre serie temporali, allineate alla media

I valori delle tre serie temporali allineate alla media (illustrate nella Figura 4) sono mostrati nella seguente tabella:

Confine di allineamento Rosso Blu Verde
2:00 312.5 133.3 400
3:00 150 283.3 433.3
4:00 250 300 350

Utilizzando i dati allineati nella tabella sopra, scegli un riduttore e applicalo ai valori. La seguente tabella mostra i risultati dell'applicazione di diversi riduttori ai dati allineati sulla media:

Confine di allineamento Riduttore: max Riduttore: media Riduttore: min Riduttore: somma
2:00 400 281.9 133.3 845.8
3:00 433.3 288.9 150 866.7
4:00 350 300 250 900

Per impostazione predefinita, la riduzione viene applicata a tutte le serie temporali, il che genera una sola serie temporale. L'illustrazione seguente mostra il risultato dell'aggregazione delle tre serie temporali allineate alla media con il riduttore max, che restituisce i valori medi più elevati nella serie temporale:

Grafico che mostra il risultato dell'utilizzo del riduttore massimo sulle serie temporali della media allineate.
Figura 5: riduzione massima delle tre serie temporali allineate alla media

La riduzione può anche essere combinata con il raggruppamento, in cui le serie temporali sono organizzate in categorie e il riduttore viene applicato nelle serie temporali in ogni gruppo.

Raggruppamento

Il raggruppamento consente di applicare un riduttore a più subsets delle serie temporali, anziché all'intero insieme di serie temporali. Per raggruppare le serie temporali, devi selezionare una o più etichette. Le serie temporali vengono quindi raggruppate in base ai valori per le etichette selezionate.

  • Questo determina la creazione di una serie temporale per ogni gruppo.
  • Puoi quindi applicare un diverso riduttore alle serie temporali per gruppo. Questa operazione è chiamata riduzione secondaria e riduce tutte le serie temporali raggruppate in un unico risultato.

Se un tipo di metrica registra i valori per le etichette zone e color, puoi raggruppare le serie temporali per una o entrambe le etichette. Quando applichi il riduttore, ogni gruppo viene ridotto a una singola serie temporale. Se raggruppi i dati per colore, ottieni una serie temporale per ogni colore rappresentato nei dati. Se raggruppi i dati per zona, ottieni una serie temporale per ogni zona visualizzata nei dati. Se raggruppi per entrambi, ottieni una serie temporale per ogni combinazione di colori e zone.

Ad esempio, supponi di aver acquisito molte serie temporali con valori "rosso", "blu" e "verde" per l'etichetta color. Dopo aver allineato tutte le serie temporali, è possibile raggrupparle per valore color e quindi ridotte per gruppo. Il risultato è tre serie temporali specifiche per colore:

Grafico che mostra le serie temporali raggruppate per colore e ridotte.
Figura 6: serie temporali, raggruppate per colore e ridotte

L'esempio non specifica l'allineatore o il riduttore utilizzato; il punto è che il raggruppamento consente di ridurre un'ampia serie di serie temporali in un insieme più piccolo, dove ogni serie temporale rappresenta un gruppo che condivide un attributo comune: in questo esempio, il valore dell'etichetta color.

Aggregazione secondaria

Quando utilizzi il raggruppamento, la riduzione potrebbe comportare più di una serie temporale. L'aggregazione secondaria consente di scegliere un secondo riduttore da applicare dopo la riduzione raggruppata.

La seguente tabella mostra i valori delle serie temporali raggruppate (illustrate nella Figura 6):

Confine di allineamento Gruppo rosso Gruppo blu Gruppo verde
2:00 400 150 450
3:00 200 350 450
4:00 300 300 400

Queste tre serie temporali già ridotte possono essere ulteriormente ridotte applicando l'aggregazione secondaria. La tabella seguente mostra i risultati dell'applicazione dei riduttori selezionati:

Confine di allineamento Riduttore: max Riduttore: media Riduttore: min Riduttore: somma
2:00 450 333.3 150 1000
3:00 450 333.3 200 1000
4:00 400 333.3 300 1000

L'illustrazione seguente mostra il risultato dell'aggregazione delle tre serie raggruppate con il riduttore mean:

Grafico che mostra il risultato del riduttore medio in serie temporali ridotte in base al gruppo.
Figura 7: serie temporali raggruppate, dopo l'aggregazione secondaria media

Tipi, tipi e conversioni

Ricorda che i punti dati in una serie temporale sono caratterizzati da un tipo di metrica e da un tipo di valore. Consulta Tipi e tipi di metriche per una revisione. Gli allineatori e i riduttori appropriati per un set di dati potrebbero non essere appropriati per un altro. Ad esempio, un allineatore o riduttore che conteggia il numero di valori falsi è appropriato per i dati booleani, ma non per i dati numerici. Allo stesso modo, un allineatore o riduttore che calcola una media è applicabile ai dati numerici ma non ai dati booleani.

Alcuni allineatori e riduttori possono essere utilizzati anche per modificare esplicitamente il tipo di metrica o il tipo di valore dei dati in una serie temporale. Alcuni, come ALIGN_COUNT, lo fanno come effetto collaterale.

  • Tipo di metrica: una metrica cumulativa è una metrica in cui ogni valore rappresenta il totale dall'inizio della raccolta dei valori. Non puoi utilizzare metriche cumulative direttamente nei grafici, ma puoi utilizzare metriche delta, in cui ogni valore rappresenta la variazione rispetto alla misurazione precedente.

    Puoi anche convertire le metriche cumulative e delta per misurare le metriche. Ad esempio, considera una metrica delta le cui serie temporali sono le seguenti:

    (ora di inizio, ora di fine] (minuti) valore (MiB)
    (0, 2] 8
    (2, 5] 6
    (6, 9] 9

    Supponiamo di aver selezionato un allineatore ALIGN_DELTA e un periodo di allineamento di tre minuti. Poiché il periodo di allineamento non corrisponde all'ora di inizio, ora di fine di ogni campione, viene creata una serie temporale con valori interpolati. Per questo esempio, la serie temporale interpolata è:

    (ora di inizio, ora di fine] (minuti) valore interpolato (MiB)
    (0, 1] 4
    (1, 2] 4
    (2, 3] 2
    (3, 4] 2
    (4, 5] 2
    (5, 6] 0
    (6, 7] 3
    (7, 8] 3
    (8, 9] 3

    Successivamente, tutti i punti nel periodo di allineamento di tre minuti vengono sommati per generare i valori allineati:

    (ora di inizio, ora di fine] (minuti) valore allineato (MiB)
    (0, 3] 10
    (3, 6] 4
    (6, 9] 9

    Se selezioni ALIGN_RATE, la procedura è la stessa, ma i valori allineati vengono divisi per il periodo di allineamento. Per questo esempio, il periodo di allineamento è di tre minuti, quindi le serie temporali allineate contengono i seguenti valori:

    (ora di inizio, ora di fine] (minuti) valore allineato (MiB / secondo)
    (0, 3] 0,056
    (3, 6] 0,022
    (6, 9] 0,050

    Per tracciare una metrica cumulativa, devi convertirla in una metrica delta o in una metrica relativa alla percentuale. La procedura per le metriche cumulative è simile a quella della discussione precedente. Puoi calcolare una serie temporale delta da una serie temporale cumulativa calcolando la differenza di termini adiacenti.

  • Tipo di valore: alcuni allineatori e riduttori lasciano invariato il tipo di valore dei dati di input. Ad esempio, i dati interi sono ancora dati interi dopo l'allineamento. Altri allineatori e riduttori convertono i dati da un tipo all'altro, il che significa che le informazioni possono essere analizzate in modi non appropriati al tipo di valore originale.

    Ad esempio, il riduttore REDUCE_COUNT può essere applicato a dati numerici, booleani, stringhe e di distribuzione, ma il risultato generato è un numero intero a 64 bit che conta il numero di valori nel periodo. REDUCE_COUNT può essere applicato solo alle metriche di misurazione e delta e lascia invariato il tipo di metrica.

Le tabelle di riferimento per Aligner e Reducer indicano il tipo di dati per cui ognuna è appropriata e le eventuali conversioni generate. Ad esempio, ecco la voce per ALIGN_DELTA:

Voce di riferimento per allineatore delta