Filtri e aggregazione: manipolazione di 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 di alcuni dati 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ù dati in un insieme più piccolo in base alle dimensioni specificate.

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

In questa pagina vengono descritti i concetti alla base dei filtri e dell'aggregazione. Non spiega come applicarli direttamente. Per applicare filtri o aggregazione ai dati delle serie temporali, utilizza l'API Cloud Monitoring o gli strumenti per grafici e avvisi della console Google Cloud. Ad esempio, 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 a un tipo di metrica sono associate molte serie temporali. Per analizzare l'intero set di dati per individuare elementi comuni, tendenze o valori anomali, devi elaborare le serie temporali dell'insieme. In caso contrario, ci sono troppi dati da prendere in considerazione.

Per introdurre filtri e 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: rosso, blu e verde.
Figura 1: tre serie temporali non elaborate

Ogni serie temporale è di colore, rosso, 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 perfettamente allineati perché sono stati registrati in momenti diversi.

Applicazione dei filtri

Uno degli strumenti più potenti per l'analisi è il filtro, che consente di nascondere i dati che non ti interessano immediatamente.

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

  • volte,
  • Valore di una o più etichette.

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

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

Questa serie temporale, selezionata tramite filtri, 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. Ci sono due aspetti da considerare per l'aggregazione:

  • Allineamento o regolarizzazione dei dati in 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 memorizzati 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 scoprire 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 produce serie temporali con dati regolarmente distanziati.

L'allineamento prevede due passaggi:

  1. Divisione delle serie temporali in intervalli di tempo regolari, nota anche come bucket dei dati. L'intervallo è chiamato punto, 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 calcolare il singolo punto; potresti sommare tutti i valori, calcolare la loro media o utilizzare il valore massimo.

Poiché la nuova serie temporale creata dall'allineamento rappresenta 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.

Regolare gli intervalli di tempo

L'analisi dei dati delle serie temporali richiede che i punti dati siano disponibili in limiti di tempo con intervalli regolari. L'allineamento è la procedura necessaria per farlo.

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 per ulteriori manipolazioni.

Questa sezione illustra i passaggi di allineamento applicandoli a una singola serie temporale. In questo esempio, alla serie temporale di esempio mostrata 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 comporta i seguenti punti in ogni periodo:

Periodo Valori
1:01-2:00 400, 350, 300, 200
2:01-3:00 200, 100
03:01-04: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 trattano questi fattori in modo più dettagliato.

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

Granularità

Se sai che è successo qualcosa nel giro di un paio d'ore e vuoi approfondirle, probabilmente conviene utilizzare un periodo di un'ora o qualche minuto per l'allineamento.

Se ti interessa esplorare le tendenze per periodi di tempo più lunghi, un periodo di allineamento più ampio potrebbe essere più appropriato. Periodi di allineamento di grandi dimensioni in genere non sono utili per esaminare condizioni anomale a breve termine. Se utilizzi, ad esempio, un periodo di allineamento di più settimane, potrebbe ancora essere rilevabile l'esistenza di un'anomalia in quel periodo, ma i dati allineati potrebbero essere troppo granulari per essere di 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 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 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. Ciò significa che, ad esempio, l'applicazione di uno degli allineatori max, mean o min genera le stesse serie temporali allineate. La seguente illustrazione 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 Allineatori.

Se il periodo di allineamento è impostato su due minuti o sul doppio del periodo di campionamento, ci saranno due punti dati in ogni periodo. Se gli allineatori max, mean o min vengono applicati ai punti nel periodo di allineamento di due minuti, le serie temporali risultanti saranno diverse. La seguente illustrazione mostra i risultati, insieme alle serie temporali originali sotto forma di linea sbiadita:

Grafico di serie temporali allineate con il periodo che raddoppia il periodo di campionamento.

Quando scegli un periodo di allineamento, assicurati 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, puoi selezionare una funzione, l'allineatore, da applicare ai punti dati in quel periodo. L'allineatore produce un singolo valore da posizionare alla fine di ogni periodo di allineamento.

Le opzioni di allineamento includono la somma dei valori, la ricerca del valore massimo, minimo o della media dei valori, il rilevamento 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 qui illustrato. Per l'elenco completo, consulta Aligner. Per una descrizione degli allineatori tariffari e delta, che trasformano i dati delle serie temporali, consulta [Tipi, tipi e conversioni][kinds-types-conversion].

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

Periodo Valori Allineatore: numero 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
03:01-04: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 rosse dopo l'applicazione di uno dei tre diversi allineatori.
Figura 3: una serie temporale, tre modi allineati

Altri allineatori

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

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

Questi risultati non vengono visualizzati 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 separate, la riduzione è chiamata anche aggregazione tra serie.

Riduttori

Un riduttore è 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 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 è in linea con l'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 (della Figura 1) in periodi di 1 ora con l'allineatore media:

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

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

Confine allineamento Rosso Blu Verde
2:00 312,5 133,3 400
3:00 150 115,1 433,3
4:00 250 300 350

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

Confine allineamento Riduttore: max Riduttore: media Riduttore: min Riduttore: somma
2:00 400 118,4 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, creando così un'unica 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 su serie temporali allineate alla media.
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 alle serie temporali di ogni gruppo.

Raggruppamento

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

  • In questo modo viene creata una serie temporale per ogni gruppo.
  • Puoi quindi applicare un riduttore diverso 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 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 i dati 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 averle allineate tutte le serie temporali, possono essere raggruppate per valore color e poi ridotte per gruppo. Ne risultano 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 grande 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

Quando utilizzi il raggruppamento, la riduzione potrebbe derivare 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 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 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 medio:

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

Tipi, tipi e conversioni

Ricorda che i punti dati in una serie temporale sono caratterizzati da un tipo di metrica e un tipo di valore; consulta Tipi di valore 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 un 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. Alcune, 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 usare le 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 la cui serie temporale è la seguente:

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

    Supponi di aver selezionato un allineatore ALIGN_DELTA e un periodo di allineamento di tre minuti. Poiché il periodo di allineamento non corrisponde a (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 viene selezionato ALIGN_RATE, il processo è lo stesso, ma 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 tracciare una metrica cumulativa, devi convertirla in una metrica delta o di una metrica. Il processo per le metriche cumulative è simile a quello 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 che produce è un numero intero a 64 bit che conteggia il numero di valori nel periodo. REDUCE_COUNT può essere applicata 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 sono appropriati e le eventuali conversioni risultanti. Ad esempio, quanto riportato di seguito mostra la voce per ALIGN_DELTA:

Voce di riferimento per allineatore delta