Filtro e aggregazione: manipolazione delle 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 comporta spesso il filtraggio di alcuni dati e l'aggregazione in sinergia. Questa pagina descrive due tecniche principali per perfezionare i dati non elaborati:

  • Applicazione di 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 modelli 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. it non spiega come applicarli direttamente. Per applicare filtri o aggregazioni ai dati delle serie temporali, usa l'API Cloud Monitoring o la creazione di grafici di avviso nella console Google Cloud. Per alcuni esempi, vedi Criteri di esempio delle API e Monitoraggio degli esempi di Query Language.

Dati di serie temporali non elaborati

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. A analizzare l'intero set di dati alla ricerca di punti in comune, tendenze o outlier, è necessario eseguire delle elaborazioni sulle serie temporali del 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, la seguente illustrazione mostra alcune ore di dati non elaborati provenienti da 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:

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

L'illustrazione seguente mostra il risultato dell'applicazione di filtri in modo da mostrare solo il rosso serie temporali dell'insieme originale di serie temporali non elaborate (illustrate in 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 include due aspetti:

  • 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. I prossimi che descrivono allineamento e riduzione utilizzando serie temporali che archiviano valori interi. Questi concetti generali si applicano anche quando una serie temporale ha un tipo di valore Distribution; tuttavia, ci sono alcune vincoli aggiuntivi in questo caso. Per ulteriori informazioni, vedi Informazioni sulle metriche basate sul valore di distribuzione.

Allineamento: regolarizzazione all'interno della serie

Il primo passaggio per l'aggregazione dei dati delle serie temporali è l'allineamento. Allineamento crea una nuova serie temporale in cui i dati non elaborati sono stati regolarizzati nel tempo in modo che possa essere combinato 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 le serie temporali non elaborate che si trovano all'interno del periodo allineamento con singolo valore, viene anche chiamata riduzione all'interno della serie 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 istanza Google Cloud. In questo esempio, viene applicato un periodo di allineamento di un'ora alla serie temporale di esempio illustrata nella Figura 2. L'ora 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
02:01-03: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 di trovare nei dati.
  • il periodo di campionamento dei dati; cioè la frequenza con cui viene segnalata.

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

Inoltre, Cloud Monitoring conserva i dati delle metriche per un periodo di tempo finito. La varia in base al tipo di metrica; vedi Conservazione dei dati per maggiori dettagli. 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 per periodi di tempo più lunghi, potrebbe essere più appropriato. 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 i dati vengono scritti, la frequenza di campionamento, influisce 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 applicando uno degli allineatori max, mean o min genera le stesse serie temporali allineate. L'illustrazione seguente mostra questo risultato, insieme alla serie temporale originale come linea sbiadita:

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

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

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 max, mean, o min vengono applicati ai punti all'interno dell'allineamento di due minuti periodo, le serie temporali risultanti differiscono. L'illustrazione seguente mostra questi risultati, insieme alla serie temporale originale in linea sbiadita:

Grafico delle serie temporali allineate con il periodo raddoppiato rispetto al periodo di campionamento.

Quando scegli un periodo di allineamento, assicurati che sia più lungo del periodo di campionamento, ma abbastanza breve da mostrare le 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

Quando i dati sono suddivisi in periodi di allineamento, selezioni una funzione, 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 altre ancora. L'API Cloud Monitoring supporta un ampio set di funzioni di allineamento, molte di più rispetto a quelle illustrate qui; vedi Aligner per vedere l'elenco completo. Per una descrizione della frequenza e degli allineatori delta, che trasformano i dati delle serie temporali, vedi [Tipi, tipi e conversioni][kinds-types-conversion].

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 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

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 le serie temporali rosse dopo aver applicato 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 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 Aligner: count Aligner: sum Allineatore: successivo meno recente
01:01-02: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 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 distinte, la riduzione è anche chiamata aggregazione tra serie.

Riduttori

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

Le opzioni del riduttore includono la somma dei valori allineati o l'individuazione dei valori massimo, minimo o la media dei valori. L'API Cloud Monitoring supporta un ampio set di le 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 sulla media

I valori delle tre serie temporali allineate alla media (illustrate in Figura 4) sono mostrate 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 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'illustrazione seguente mostra il risultato dell'aggregazione le 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 Max dei tre modelli allineati alla media serie temporali

La riduzione può anche essere combinata con il raggruppamento, in cui le serie temporali vengono organizzate in categorie e il riduttore viene applicato a tutte le serie temporali in ciascun 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 quindi raggruppate i relativi valori per le etichette selezionate. 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 i dati per zona, ottieni una serie temporale per ogni zona visualizzata nei dati. Se raggruppi i dati in base a entrambi, ottieni una serie temporale per ogni combinazione di colori e zone.

Ad esempio, supponiamo di aver acquisito molte serie temporali con il carattere "rosso", i valori "blu" e "verde" per l'etichetta color. Dopo aver alinhato tutte le serie temporali, è possibile raggrupparle in base al valore color e poi ridurle per gruppo. Ciò porta alla creazione di 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.

  • Aggregazione secondaria, che si applica ai risultati della passaggio di aggregazione principale, consente di combinare le serie temporali raggruppate in un'unica usando un secondo riduttore.

La seguente tabella mostra i valori delle serie temporali raggruppate (illustrate in 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 la media secondaria aggregazione

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. Per un set di dati, è possibile utilizzare allineatori e riduttori appropriati non sono appropriati per altri. 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. Analogamente, un allineatore o un 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 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 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 di ALIGN_DELTA e un 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

    Quindi, tutti i punti compresi 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, tranne per il fatto che i valori allineati vengono divisi per il periodo 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 su grafico una metrica cumulativa, è necessario convertirla in una metrica delta oppure una metrica relativa alle tariffe. La procedura per le metriche cumulative è simile alla nella discussione precedente. 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 applicata a dati numerici, booleani, stringa e di distribuzione, ma il risultato che produce è un numero intero a 64 bit che conta il numero di valori nel periodo in esame. 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 cui sono appropriati e qualsiasi conversione che consentono di analizzare i dati e visualizzare i risultati. Ad esempio, quanto segue mostra la voce per ALIGN_DELTA:

Voce di riferimento per l'allineatore delta