Filtri e aggregazione: manipolazione delle serie temporali

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina vengono descritte le tecniche utilizzate per manipolare i dati delle serie temporali. Si tratta di contenuti basati sui concetti e sulle discussioni di Metriche, serie temporali e risorse.

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

  • Filtraggio, che rimuove alcuni dati dalla considerazione.
  • Aggregazione, che combina più dati in un set più piccolo insieme alle dimensioni specificate.

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

In questa pagina vengono descritti i concetti alla base dell'applicazione di filtri e aggregazione. e non illustra come applicarli direttamente. Per applicare filtri o aggregazione ai dati delle serie temporali, utilizza l'API Cloud Monitoring o gli strumenti di generazione di grafici e avvisi di Google Cloud Console. Ad esempio, consulta i criteri di esempio delle API e gli esempi di Monitoring Query Query.

Dati delle serie temporali non elaborati

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

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

Grafico che mostra tre serie di dati non elaborati: rosso, blu e verde.
Figura 1. Tre serie di dati non elaborati

Ogni serie temporale è di colore rosso, blu, verde o verde per riflettere il valore di un'ipotetica etichetta color. Esiste una serie temporale per ogni valore dell'etichetta. Nota che i valori non sono in linea, dato che sono stati registrati in momenti diversi.

Filtro in corso

Uno degli strumenti di analisi più efficaci è il filtro, che ti consente di nascondere i dati che non ti interessano.

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

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

L'illustrazione seguente mostra il risultato del filtro per mostrare solo la serie temporale rossa dell'insieme 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 di un filtro, una serie di dati non elaborati

Questa serie temporale, selezionata utilizzando i filtri, viene utilizzata nella sezione successiva per mostrare l'allineamento.

Aggregazione

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

  • Allineamento o regolarizzazione dei dati in un'unica 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 mediante serie temporali che memorizzano valori interi. Questi concetti generali si applicano anche quando una serie temporale ha un tipo di valore Distribution, tuttavia ci sono alcuni vincoli aggiuntivi in questo caso. Per ulteriori informazioni, consulta le metriche di distribuzione.

Allineamento: normalizzazione all'interno della serie

Il primo passaggio nell'aggregazione dei 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 poterli combinare con altre serie temporali allineate. L'allineamento produce serie temporali con dati regolarmente distanziati.

L'allineamento prevede due passaggi:

  1. Divide la serie temporale in intervalli di tempo regolari, chiamata anche raggruppamento dei dati. L'intervallo è chiamato periodo, periodo di allineamento o finestra di allineamento.

  2. Computing di un singolo valore per i punti nel periodo di allineamento. Scegli come viene calcolato il singolo punto; puoi sommare tutti i valori o calcolare la media oppure utilizzare il valore massimo.

Poiché la nuova serie temporale creata dall'allineamento rappresenta tutti i valori della serie temporale non elaborata all'interno del 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

Per analizzare i dati delle serie temporali è necessario che i punti dati siano disponibili in intervalli di tempo uniforme. L'allineamento è il processo che consente di ottenere questo risultato.

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 un'ulteriore manipolazione.

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 in tre ore. Suddividere i punti dati in periodi di un'ora comporta i seguenti punti in ogni periodo:

Periodo Valori
1:01-2:00 400, 350, 300, 200
02:01-03: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 i dati.

Le seguenti sezioni esaminano 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; per ulteriori informazioni, consulta la sezione Conservazione dei dati. Il periodo di conservazione è il periodo di allineamento significativo più lungo.

Granularità

Se sai che si è verificato un problema in un paio d'ore e vuoi scavare più a fondo, probabilmente ti conviene utilizzare un periodo di un'ora o un numero di minuti per allinearlo.

Se vuoi esplorare le tendenze su periodi di tempo più lunghi, un periodo di allineamento più ampio potrebbe essere più appropriato. In genere, i periodi di allineamento di grandi dimensioni non sono utili per esaminare condizioni anomale a breve termine. Se utilizzi, ad esempio, un periodo di allineamento per più settimane, l'esistenza di un'anomalia in quel periodo potrebbe essere comunque rilevabile, ma i dati allineati potrebbero essere troppo approssimativi per poter 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 la sezione Elenco delle metriche per conoscere le tariffe di campionamento delle metriche integrate. 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 coincide con il periodo di campionamento, è presente un punto dati per ogni periodo di allineamento. Ciò significa che, ad esempio, l'applicazione di uno dei risultati degli allineatori max, mean o min nella stessa serie temporale allineata. L'illustrazione seguente mostra questo risultato, insieme alla serie temporale originale come una linea sbiadita:

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

Per ulteriori informazioni sul funzionamento degli allineatori, consulta la sezione Allineatori.

Se il periodo di allineamento è impostato su 2 minuti o raddoppia il periodo di campionamento, ogni periodo contiene due punti dati. Se gli allineatori max, mean o min vengono applicati ai punti entro il periodo di allineamento di due minuti, la serie temporale risultante differisce. L'illustrazione seguente mostra questi risultati, insieme alle serie temporali originali come linea sbiadita:

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

Scegli un periodo di allineamento più lungo rispetto al periodo di campionamento, ma abbastanza breve da mostrare le tendenze pertinenti. Potrebbe essere necessario sperimentare 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, devi selezionare 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 dei valori massimo, minimo o medio, la ricerca di un valore di percentile scelto, il conteggio dei valori e altro ancora. L'API Cloud Monitoring supporta un elevato insieme di funzioni di allineamento, molte in più rispetto al semplice insieme illustrato qui; consulta la sezione 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, recuperando i bucket di dati dalla serie temporale non elaborata (illustrati nella Figura 1), scegli un allineatore e applicalo ai dati in ciascun bucket. La tabella riportata di seguito mostra i valori non elaborati e i risultati di tre allineatori diversi, max, mean e min:

Periodo Valori Allineatore: massimo Allineatore: media Allineatore: min
1:01-2:00 400, 350, 300, 200 400 312,5 200
02:01-03: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 allineatori diversi.
Figura 3: serie temporale allineata in tre modi

Alcuni altri allineatori

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

  • Conteggio conta il numero di valori nel periodo di allineamento.
  • Somma somma tutti i valori del periodo di allineamento.
  • Periodo precedente utilizza come valore di allineamento il valore più recente nel periodo.
Periodo Valori Allineatore: conteggio Allineatore: somma Allineatore: successivo
1:01-2:00 400, 350, 300, 200 4 1250 200
02:01-03: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 della procedura, la riduzione, consiste nel combinare più serie temporali allineate in una nuova serie temporale. Questo passaggio sostituisce tutti i valori relativi al confine del periodo di allineamento con un singolo valore. Poiché funziona su serie temporali separate, la riduzione è anche chiamata aggregazione di più serie.

Riduttori

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

Le opzioni di riduzione includono la somma dei valori allineati o l'individuazione dei valori massimo, minimo o media dei valori. L'API Cloud Monitoring supporta un vasto insieme di funzioni di riduzione. Per l'elenco completo, consulta Reducer. 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'allineatore mean:

Grafico che mostra tre serie temporali allineate nella media.
Figura 4: tre serie temporali in media allineate

Nella tabella seguente sono riportati i valori delle tre serie temporali mean allineate (illustrate nella Figura 4):

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

Utilizzando i dati allineati nella tabella riportata sopra, scegli un riduttore e applicalo ai valori. La tabella seguente mostra i risultati dell'applicazione di diverse riduzioni ai meandati allineati::

Limite di allineamento Riduttore: max Riduttore: media Riduttore: min Riduttore: somma
2:00 400 118,4 133,3 845,8
3:00 433,3 118,4 150 866,7
4:00 350 300 250 900

Per impostazione predefinita, la riduzione si applica a tutte le serie temporali, determinando una singola serie temporale. La seguente illustrazione mostra il risultato dell'aggregazione delle tre serie temporali media allineate con il riduttore max, che genera i valori medi più alti nella serie temporale:

Grafico che mostra il risultato dell'utilizzo del riduttore max su serie temporali allineate in 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 dispositivo di riduzione viene applicato a tutte le serie temporali in ciascun gruppo.

Raggruppamento

Il raggruppamento consente di applicare un riduzione ai sottoinsiemi della serie temporale anziché all'intero set di serie temporali. Per raggruppare le serie temporali, seleziona una o più etichette. Le serie temporali vengono quindi raggruppate in base ai rispettivi valori per le etichette selezionate.

  • In questo modo, viene creata una serie temporale per ogni gruppo.
  • Puoi quindi applicare un altro strumento di riduzione 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 valori per le etichette zone e color, puoi raggruppare le serie temporali in base a una o entrambe le etichette. Quando applichi il riduzione, 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, viene visualizzata una serie temporale per ogni zona che compare nei dati. Se raggruppi i dati, avrai una serie temporale per ogni combinazione di colori e zone.

Ad esempio, supponi di aver acquisito molte serie temporali con i valori "rosso", "blu" e "verde" per l'etichetta color. Dopo aver allineato tutte le serie temporali, è possibile raggrupparle in base al valore color e poi ridurle per gruppo. Questo comporta tre serie temporali specifiche per colori:

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 qui è che il raggruppamento consente di ridurre un insieme elevato di serie temporali in un insieme più ridotto, 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ù serie temporali. L'aggregazione secondaria ti consente di scegliere un secondo riduttore da applicare dopo la riduzione raggruppata.

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

Limite 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 quindi essere ulteriormente ridotte applicando l'aggregazione secondaria. La tabella seguente mostra i risultati dell'applicazione dei riduttori selezionati:

Limite 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 di una riduzione media delle serie temporali ridotte del gruppo.
Figura 7: serie temporali raggruppate, dopo l'aggregazione secondaria media

Tipi, conversioni e tipi

Ricorda che i punti dati di una serie temporale sono caratterizzati da un tipo di metrica e un tipo di valore; consulta la sezione Tipi di metriche e tipi per una recensione. Gli allineatori e i riduttori appropriati per un set di dati potrebbero non essere appropriati per un altro. Ad esempio, un allineatore o un elemento di riduzione che conteggia il numero di valori falsi è appropriato per i dati booleani, ma non per quelli numerici. Allo stesso modo, un allineatore o uno strumento di riduzione 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, hanno l'effetto collaterale.

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

    Per misurare le metriche, puoi anche convertire sia le metriche cumulative che quelle delta. 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 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) per ogni campione, viene creata una serie temporale con valori interpolati. Per questo esempio, le serie temporali interpolate sono le seguenti:

    (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

    In seguito, vengono sommati tutti i punti nell'arco di tre minuti 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 di allineamento. Per questo esempio, il periodo di allineamento è di tre minuti, per cui 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 registrare una metrica cumulativa, è necessario convertirla in una metrica delta o in una metrica tariffa. La procedura per le metriche cumulative è simile alla 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 per il 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 che genera è un numero intero a 64 bit che conteggia il numero di valori inseriti nel periodo. REDUCE_COUNT può essere applicato solo a metriche e metriche delta, mentre non lascia il tipo di metrica.

Le tabelle di riferimento per Aligner e Reducer indicano per quale tipo di dati è appropriato e qual è la conversione che si verifica. Ad esempio, ecco la voce per ALIGN_DELTA:

Voce di riferimento per il allineatore delta