Filtri e aggregazione: manipolazione delle serie temporali

Questa pagina descrive le tecniche utilizzate per manipolare i dati delle serie temporali. Questi contenuti si basano sui concetti e sulla discussione riportati in Metriche, serie temporali e risorse.

I dati non elaborati delle serie temporali devono essere manipolati prima di poter essere analizzati e spesso l'analisi comporta il filtraggio di alcuni dati e l'aggregazione di altri. Questa pagina descrive due tecniche principali per perfezionare i dati non elaborati:

  • Filtro, che rimuove alcuni dati.
  • Aggregazione, che combina più elementi di dati in un insieme più piccolo in base alle dimensioni specificate.

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

Questa pagina descrive i concetti alla base del filtro e dell'aggregazione. Non illustra come applicarli direttamente. Per applicare filtri o aggregazioni ai dati delle serie temporali, utilizza l'API Cloud Monitoring o gli strumenti di creazione di grafici e invio di avvisi nella console Google Cloud. Per esempi, consulta Norme di esempio per le API e Esempi di linguaggio di query di monitoraggio.

Dati non elaborati delle serie temporali

La quantità di dati metrici non elaborati in una singola serie temporale può essere enorme e solitamente esistono molte serie temporali associate a un tipo di metrica. Per analizzare l'intero insieme di dati alla ricerca di elementi comuni, tendenze o valori anomali, devi eseguire un'elaborazione sulle serie temporali nel set. 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, l'illustrazione seguente 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 in rosso, blu o verde per riflettere il valore di un'etichetta color ipotetica. 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.

Filtri

Uno degli strumenti più efficaci per l'analisi è l'applicazione di filtri, che consente di nascondere i dati che non sono di tuo immediato interesse.

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

  • Tempo.
  • Valore di una o più etichette.

L'illustrazione seguente mostra il risultato del filtro che mostra solo la serie temporale rossa dall'insieme originale di serie temporali non elaborate (illustrato nella Figura 1):

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

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

Aggregazione

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

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

Devi allineare le serie temporali prima di poterle ridurre. Le sezioni seguenti descrivono l'allineamento e la riduzione utilizzando serie temporali che memorizzano 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 ulteriori informazioni, consulta Informazioni sulle metriche con valori di distribuzione.

Allineamento: regolarizzazione all'interno della serie

Il primo passaggio per aggregare i dati delle serie temporali è l'allineamento. 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 produce serie temporali con dati a intervalli regolari.

L'allineamento prevede due passaggi:

  1. Suddivisione della serie temporale in intervalli di tempo regolari, chiamata anche bucketing 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. Puoi scegliere come viene calcolato il singolo punto: puoi sommare tutti i valori, calcolarne la media o utilizzare il valore massimo.

Poiché la nuova serie temporale creata dall'allineamento rappresenta tutti i valori della serie temporale non elaborata che rientrano nel periodo di allineamento con un singolo valore, viene chiamata anche riduzione all'interno della serie o aggregazione all'interno della serie.

Regolare gli intervalli di tempo

L'analisi dei dati delle serie temporali richiede che i punti dati siano disponibili su confini di tempo equidistanti. L'allineamento è il processo per realizzare questo obiettivo.

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, viene applicato un periodo di allineamento di un'ora alla serie temporale di esempio illustrata nella Figura 2. La serie temporale mostra i dati acquisiti in 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

Scegliere i periodi di allineamento

La durata del periodo di allineamento dipende da due fattori:

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

Le sezioni seguenti illustrano questi fattori in maggiore dettaglio.

Inoltre, Cloud Monitoring conserva i dati delle metriche per un periodo di tempo limitato. Il periodo varia in base al tipo di metrica. Per informazioni dettagliate, consulta Conservazione dei dati. Il periodo di conservazione è il periodo di allineamento significativo più lungo.

Granularità

Se sai che è successo qualcosa nell'arco di un paio di ore e vuoi approfondire, probabilmente ti conviene utilizzare un periodo di un'ora o un numero di minuti per l'allineamento.

Se ti interessa esplorare le tendenze su periodi di tempo più lunghi, potrebbe essere più appropriato un periodo di allineamento più ampio. In genere, i periodi di allineamento lunghi non sono utili per esaminare le 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 ancora 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, la frequenza di campionamento, può influire sulla scelta del periodo di allineamento. Consulta l'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 dei dati non elaborati con un periodo di campionamento di 1 minuto.

Se il periodo di allineamento corrisponde al periodo di campionamento, in ogni periodo di allineamento è presente un punto dati. Ciò significa che, ad esempio, l'applicazione di uno degli allineatori max, mean o min genera la stessa serie temporale allineata. L'illustrazione seguente mostra questo risultato, insieme alla serie temporale originale sotto forma di 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, consulta Allineamenti.

Se il periodo di allineamento è impostato su due minuti o sul doppio del periodo di campionatura, in ogni periodo sono presenti due punti dati. Se gli allineatori max, mean o min vengono applicati ai punti all'interno del periodo di allineamento di due minuti, le serie temporali risultanti sono diverse. L'illustrazione seguente mostra questi risultati, insieme alla serie temporale originale sotto forma di linea sbiadita:

Grafico delle serie temporali allineate con un periodo doppio rispetto al periodo di campionamento.

Quando scegli un periodo di allineamento, scegline uno più lungo del periodo di campionamento, ma sufficientemente breve da mostrare tendenze pertinenti. Potresti dover fare esperimenti per determinare un periodo di allineamento utile. Ad esempio, se i dati vengono raccolti con una 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 aver suddiviso i dati 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, la ricerca del valore massimo, minimo o medio dei valori, la ricerca di un valore percentile scelto, il conteggio dei valori e altro ancora. L'API Cloud Monitoring supporta un ampio insieme di funzioni di allineamento, molto più di quelle illustrate qui. Consulta Aligner per l'elenco completo. Per una descrizione degli allineatori di tariffe e delta, che trasformano i dati delle serie temporali, consulta Tipi, tipi e conversioni.

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

Periodo Valori Aligner: max Aligner: mean 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

La seguente illustrazione 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 la serie temporale rossa dopo l'applicazione di uno dei tre diversi allineatori.
Figura 3: una serie temporale, allineata in tre modi

Altri allineatori

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

  • Conteggio conteggia il numero di valori nel periodo di allineamento.
  • Somma somma tutti i valori nel periodo di allineamento.
  • Più vecchio successivo utilizza il valore più recente del periodo come valore di allineamento.
Periodo Valori Aligner: count Aligner: sum Aligner: next older
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 del processo, la riduzione, consiste nel combinare più serie temporali allineate in una nuova serie temporale. Questo passaggio sostituisce tutti i valori al confine del periodo di allineamento con un unico valore. Poiché funziona su serie temporali separate, la riduzione è chiamata anche aggregazione tra serie.

Riduttori

Un riduttore è una funzione applicata ai valori di un insieme di serie temporali per produrre un singolo valore.

Le opzioni di riduzione includono la somma dei valori allineati o la ricerca del valore massimo, minimo o medio dei valori. L'API Cloud Monitoring supporta un ampio insieme 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. L'illustrazione seguente mostra i risultati dell'allineamento di tutte e tre le serie temporali non elaborate (della Figura 1) in periodi di un'ora con l'allineatore della 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 riportati nella tabella seguente:

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 precedente, scegli un riduttore e applicalo ai valori. La tabella seguente mostra i risultati dell'applicazione di diversi metodi di riduzione ai dati allineati alla 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 si applica a tutte le serie temporali, generando una singola serie temporale. L'immagine seguente mostra il risultato dell'aggregazione delle tre serie temporali allineate alla media con il riduttore max, che genera i valori medi più elevati nelle serie temporali:

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

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

Raggruppamento

Il raggruppamento ti consente di applicare un riduttore a sottoinsiemi delle serie temporali anziché all'intero insieme di serie temporali. Per raggruppare le serie temporali, seleziona una o più etichette. Le serie temporali vengono poi raggruppate in base ai relativi valori per le etichette selezionate. Il raggruppamento genera una serie temporale per ogni gruppo.

Se un tipo di metrica registra valori per le etichette zone e color, puoi raggruppare le serie temporali in base a una o entrambe le etichette. Quando applichi il riduttore, ogni gruppo viene ridotto a una singola serie temporale. Se raggruppi per colore, ottieni una serie temporale per ogni colore rappresentato nei dati. Se raggruppi 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, supponiamo di aver acquisito molte serie temporali con valori "rosso", "blu" e "verde" per l'etichetta color. Dopo aver alinhato tutte le serie temporali, è possibile raggrupparle in base al valore color e poi ridurre il numero di gruppi. 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 ampio insieme 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

Cloud Monitoring esegue due passaggi di aggregazione.

  • L'aggregazione principale regolarizza i dati misurati e poi combina le serie temporali regolarizzate utilizzando un riduttore. Quando utilizzi il raggruppamento, dalla riduzione eseguita nell'ambito di questo passaggio potrebbe risultare più di una serie temporale.

  • L'aggregazione secondaria, che si applica ai risultati del passaggio di aggregazione principale, consente di combinare le serie temporali raggruppate in un risultato utilizzando un secondo riduttore.

La tabella seguente mostra i valori della serie temporale raggruppata (illustrata 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 un'aggregazione secondaria. La seguente tabella 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 media:

Grafico che mostra il risultato del riduttore medio sulle serie temporali ridotte per gruppo.
Figura 7: serie temporali raggruppate dopo l'aggregazione secondaria della media

Tipi, tipi e conversioni

Ricorda che i punti dati di una serie temporale sono caratterizzati da un tipo di metrica e da un tipo di valore. Per una panoramica, consulta Tipi di valore e tipi di metriche. Gli allineatori e i riduttori appropriati per un set di dati potrebbero non essere adatti per un altro. Ad esempio, un allineatore o un riduttore che conta il numero di valori falsi è appropriato per i dati booleani, ma non per i dati numerici. Analogamente, un allineatore o un riduttore che calcola una media è applicabile ai dati numerici, ma non a quelli 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 le metriche cumulative direttamente nei grafici, ma puoi utilizzare le metriche delta, in cui ogni valore rappresenta la variazione rispetto alla misurazione precedente.

    Puoi anche convertire le metriche cumulative e delta in metriche di misura. Ad esempio, considera una metrica delta la cui serie temporale è la seguente:

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

    Supponiamo che tu abbia selezionato un allineatore di ALIGN_DELTA e un periodo di allineamento di tre minuti. Poiché il periodo di allineamento non corrisponde a [ora di inizio, ora di fine] per 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 all'interno del 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 è selezionato ALIGN_RATE, la procedura è la stessa, tranne per il fatto che i valori allineati vengono divisi per il periodo di allineamento. Per questo esempio, il periodo di allineamento è di tre minuti, quindi la serie temporale allineata ha 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 rappresentare una metrica cumulativa in un grafico, è necessario convertirla in una metrica delta o in una metrica di frequenza. La procedura per le metriche cumulative è simile a quella discussa in precedenza. Puoi calcolare una serie temporale delta da una serie temporale cumulativa calcolando la differenza dei termini adiacenti.

  • Tipo di valore: alcuni allineatori e riduttori lasciano invariato il tipo di valore dei dati di input. Ad esempio, i dati interi rimangono interi anche 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, di stringa e di distribuzione, ma il risultato prodotto è un numero intero a 64 bit che conteggia il numero di valori nel periodo. REDUCE_COUNT può essere applicato solo alle metriche di misura e delta e lascia invariato il tipo di metrica.

Le tabelle di riferimento per Aligner e Reducer indicano il tipo di dati per i quali è appropriato ciascun valore e le eventuali conversioni che ne risultano. Ad esempio, di seguito è riportata la voce per ALIGN_DELTA:

Voce di riferimento per l'allineatore delta