Filtragem e agregação: como manipular séries temporais

Esta página descreve as técnicas usadas para manipular dados de série temporal. Esse conteúdo baseia-se nos conceitos e discussões em Métricas, séries temporais e recursos.

Os dados brutos de séries temporais precisam ser manipulados antes de serem analisados, e a análise geralmente envolve filtrar alguns dados e agregá-los. Esta página descreve duas técnicas principais para refinar dados brutos:

  • Filtragem, que remove alguns dos dados da consideração.
  • Agregação, que combina vários dados em um conjunto menor ao longo das dimensões especificadas.

A filtragem e a agregação são ferramentas poderosas para ajudar a identificar padrões interessantes e destacar tendências ou valores atípicos nos dados, entre outras informações.

Esta página descreve os conceitos por trás da filtragem e agregação. Ele não aborda como aplicá-los diretamente. Para aplicar filtragem ou agregação aos dados de série temporal, use a API Cloud Monitoring ou as ferramentas de gráficos e alertas no console do Google Cloud. Para ver exemplos, acesse Políticas de amostra da API e Exemplos da linguagem de consulta do Monitoring.

Dados brutos de séries temporais

A quantidade de dados brutos de métricas em uma única série temporal pode ser enorme, e geralmente há muitas séries temporais associadas a um tipo de métrica. Para analisar todo o conjunto de dados em busca de semelhanças, tendências ou valores atípicos, você precisa fazer algum processamento na série temporal do conjunto. Caso contrário, há muitos dados a serem considerados.

Para introduzir filtragem e agregação, os exemplos nesta página usam um pequeno número de série temporal hipotéticas. Por exemplo, a ilustração a seguir mostra algumas horas de dados brutos de três séries temporais:

Gráfico mostrando três séries temporais brutas: vermelho, azul e verde.
Figura 1: três séries temporais brutas

Cada série temporal é colorida (vermelha, azul ou verde) para refletir o valor de um rótulo color hipotético. Há uma série temporal para cada valor do rótulo. Observe que os valores não se alinham perfeitamente porque foram registrados em momentos diferentes.

Filtragem

Uma das ferramentas mais eficientes de análise é a filtragem, que permite ocultar dados que não são de seu interesse imediato.

É possível filtrar dados de série temporal com base nestas informações:

  • Time.
  • Valor de um ou mais rótulos.

A ilustração a seguir mostra o resultado da filtragem para mostrar apenas a série temporal vermelha do conjunto original de séries temporais brutas (ilustrado na Figura 1):

Gráfico mostrando uma das séries temporais brutas: vermelho.
Figura 2: após a filtragem, uma série temporal bruta

Essa série temporal, selecionada por filtragem, é usada na próxima seção para demonstrar o alinhamento.

Agregação

Outra maneira de reduzir a quantidade de dados que você tem é resumi-los ou agregá-los. Há dois aspectos da agregação:

  • Alinhamento ou regularização de dados em uma única série temporal.
  • Redução ou combinação de várias séries temporais.

Você precisa alinhar as séries temporais antes de reduzi-las. As próximas seções descrevem o alinhamento e a redução usando séries temporais que armazenam valores inteiros. Esses conceitos gerais também se aplicam quando uma série temporal tem um tipo de valor Distribution. No entanto, há algumas restrições adicionais neste caso. Para mais informações, consulte Sobre métricas com valor de distribuição.

Alinhamento: regularização dentro da série

A primeira etapa na agregação de dados de série temporal é o alignment. O alinhamento cria uma nova série temporal em que os dados brutos foram regularizados no tempo para que sejam combinados com outras séries temporais alinhadas. O alinhamento produz séries temporais com dados regularmente espaçados.

O alinhamento envolve duas etapas:

  1. Dividir a série temporal em intervalos de tempo regulares, também chamados de agrupamento por classes dos dados. O intervalo é chamado de período, período de alinhamento ou janela de alinhamento.

  2. Calcular um único valor para os pontos no período de alinhamento. Você escolhe como esse ponto único é calculado. É possível somar todos os valores ou calcular a média deles, ou usar o valor máximo.

Como a nova série temporal criada por alinhamento representa todos os valores da série temporal bruta dentro do período de alinhamento com um único valor, ela também é chamada de redução dentro da série ou agregação dentro da série.

Como regularizar intervalos de tempo

A análise de dados de série temporal exige que os pontos de dados estejam disponíveis em limites de tempo espaçados uniformemente. Alinhamento é o processo para que isso aconteça.

O alinhamento cria uma nova série temporal com um intervalo constante, o período de alinhamento, entre os pontos de dados. O alinhamento geralmente é aplicado a várias séries temporais na preparação para manipulação posterior.

Esta seção ilustra as etapas de alinhamento aplicando-as a uma única série temporal. Neste exemplo, um período de alinhamento de uma hora é aplicado à série temporal de exemplo ilustrada na Figura 2. A série temporal mostra dados capturados ao longo de três horas. Dividir os pontos de dados em períodos de uma hora resulta nos seguintes pontos em cada período:

Period Values
1:01–2:00 400, 350, 300, 200
2:01–3:00 200, 100
3:01–4:00 300, 250, 200

Como escolher períodos de alinhamento

A duração do período de alinhamento depende de dois fatores:

  • A granularidade do que você está tentando encontrar nos dados.
  • O período de amostragem dos dados; ou seja, com que frequência ela é informada.

As seções a seguir discutem esses fatores mais detalhadamente.

Além disso, o Cloud Monitoring mantém os dados de métricas por um período finito. O período varia de acordo com o tipo de métrica. Consulte Retenção de dados para mais detalhes. O período de armazenamento é o período de alinhamento mais longo e significativo.

Granularidade

Se você sabe que algo aconteceu dentro de um período de algumas horas e quer se aprofundar, é recomendável usar um período de uma hora ou alguns minutos para o alinhamento.

Se você estiver interessado em explorar tendências em períodos mais longos, um período de alinhamento maior poderá ser mais apropriado. Períodos de alinhamento grandes normalmente não são úteis para analisar condições anômalas de curto prazo. Se você usar, por exemplo, um período de alinhamento de várias semanas, a existência de uma anomalia nesse período ainda pode ser detectada, mas os dados alinhados podem ser muito granulares para ajudar bastante.

Taxa de amostra

A frequência com que os dados são gravados, a taxa de amostragem, também afeta a escolha do período de alinhamento. Consulte a lista de métricas para ver detalhes sobre as taxas de amostragem das métricas integradas. Considere a figura a seguir, que ilustra uma série temporal com uma taxa de amostragem de um ponto por minuto:

Gráfico de dados brutos com um período de amostragem de um minuto.

Se o período de alinhamento for o mesmo que o período de amostragem, haverá um ponto de dados em cada período de alinhamento. Isso significa que, por exemplo, a aplicação de qualquer um desses alinhadores max, mean ou min resulta na mesma série temporal alinhada. A ilustração a seguir mostra esse resultado, juntamente com a série temporal original como uma linha esmaecida:

Gráfico de uma série temporal alinhada com o período correspondente ao período de amostragem.

Para mais informações sobre como as funções do alinhador funcionam, consulte Alinhadores.

Se o período de alinhamento estiver definido como dois minutos, ou o dobro do período de amostragem, haverá dois pontos de dados em cada período. Se os alinhadores max, mean ou min forem aplicados aos pontos dentro do período de alinhamento de dois minutos, a série temporal resultante será diferente. A ilustração a seguir mostra esses resultados, juntamente com a série temporal original como uma linha esmaecida:

O gráfico de séries temporais alinhadas com o período dobra o período de amostragem.

Ao escolher um período de alinhamento, deixe-o mais longo que o período de amostragem, mas curto o suficiente para mostrar tendências relevantes. Talvez seja necessário fazer experiências para determinar um período de alinhamento útil. Por exemplo, se os dados forem coletados na taxa de um ponto por dia, um período de alinhamento de uma hora será muito curto para ser útil: na maioria das horas, não haverá dados.

Alinhadores

Depois que os dados são divididos em períodos de alinhamento, você seleciona uma função, o alinhador, a ser aplicada aos pontos de dados nesse período. O alinhador produz um único valor colocado no final de cada período de alinhamento.

As opções de alinhamento incluem somar os valores ou encontrar o máximo, o mínimo ou a média dos valores, encontrar um valor percentual escolhido, contar os valores e outros. A API Cloud Monitoring é compatível com um grande conjunto de funções de alinhamento, muito mais do que o conjunto simples ilustrado aqui. Consulte Aligner para ver a lista completa. Para uma descrição dos alinhadores de taxa e delta, que transformam dados de série temporal, consulte [Tipos, tipos e conversões][Kinds-types-conversion].

Por exemplo, usando os dados agrupados da série temporal bruta (ilustrada na Figura 1), escolha um alinhador e aplique-o aos dados em cada intervalo. A tabela a seguir mostra os valores brutos e os resultados de três alinhadores diferentes, max, mean e min:

Period Values Alinhador: max Alinhador: mean Alinhador: 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

A ilustração a seguir mostra os resultados da aplicação dos alinhadores max, mean ou min usando um período de alinhamento de uma hora à série temporal vermelha original (representado pela linha esmaecida na ilustração):

Gráfico mostrando a série temporal vermelha após a aplicação de um dos três alinhadores diferentes.
Figura 3: uma série temporal alinhada de três maneiras

Alguns outros alinhadores

A tabela a seguir mostra os mesmos valores brutos e os resultados de três outros alinhadores:

  • Count conta o número de valores no período de alinhamento.
  • Sum adiciona todos os valores no período de alinhamento.
  • Próximo mais antigo usa o valor mais recente no período como o valor de alinhamento.
Period Values Alinhador: count Alinhador: sum Alinhador: próximo mais antigo
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

Esses resultados não são exibidos em um gráfico.

Redução: combinação de séries temporais

A próxima etapa do processo, a redução, é o processo de combinar várias séries temporais alinhadas em uma nova série temporal. Esta etapa substitui todos os valores no limite do período de alinhamento por um único valor. Como ela funciona em séries temporais separadas, a redução também é chamada de agregação entre séries.

Redutores

Um redutor é uma função aplicada aos valores em um conjunto de séries temporais para produzir um único valor.

As opções do redutor incluem a soma dos valores alinhados ou a localização dos valores máximo, mínimo ou médio dos valores. A API Cloud Monitoring é compatível com um grande conjunto de funções de redução. Consulte Reducer para ver a lista completa. A lista de redutores é paralela à lista de alinhadores.

As séries temporais precisam ser alinhadas antes de serem reduzidas. A ilustração a seguir mostra os resultados que alinham as três séries temporais brutas (da Figura 1) em períodos de 1 hora com o alinhador mean:

Gráfico mostrando três séries temporais alinhadas à média.
Figura 4: três série temporal, alinhado à média

Os valores das três séries temporais alinhadas à mean (ilustrados na Figura 4) são mostrados na tabela a seguir:

Limite de alinhamento Vermelho Azul Verde
2:00 312.5 133.3 400
3:00 150 283.3 433.3
4:00 250 300 350

Usando os dados alinhados na tabela anterior, escolha um redutor e aplique-o aos valores. A tabela a seguir mostra os resultados da aplicação de diferentes redutores aos dados alinhados à média:

Limite de alinhamento Redutor: max Redutor: mean Redutor: min Redutor: sum
2:00 400 281.9 133.3 845.8
3:00 433.3 288.9 150 866.7
4:00 350 300 250 900

Por padrão, a redução é aplicada a todas as séries temporais, resultando em uma única série temporal. A ilustração a seguir mostra o resultado da agregação das três séries temporais alinhadas à mean com o redutor max, que produz os valores médios mais altos na série temporal:

Gráfico mostrando o resultado do uso do redutor máximo em séries temporais alinhadas à média.
Figura 5: redução máxima das três séries temporais alinhadas à média

A redução também pode ser combinada com o agrupamento, em que as séries temporais são organizadas em categorias, e o redutor é aplicado em todas as séries temporais em cada grupo.

Agrupamento

O agrupamento permite aplicar um redutor em subsets da sua série temporal, e não em todo o conjunto de séries temporais. Para agrupar séries temporais, selecione um ou mais rótulos. As séries temporais são agrupadas com base nos valores dos rótulos selecionados.

  • Isso resulta em uma série temporal para cada grupo.
  • Em seguida, é possível aplicar um redutor diferente na série temporal por grupo. Isso é chamado de redução secundária e reduz todas as séries temporais agrupadas em um resultado.

Se um tipo de métrica registra valores para rótulos zone e color, é possível agrupar séries temporais por um ou ambos os rótulos. Quando você aplica o redutor, cada grupo é reduzido para uma única série temporal. Se você agrupar por cor, terá uma série temporal para cada cor representada nos dados. Se você agrupar por zona, receberá uma série temporal para cada zona que aparece nos dados. Se você agrupar por ambos, terá uma série temporal para cada combinação de cores e zonas.

Por exemplo, suponha que você tenha capturado muitas séries temporais com valores "vermelho", "azul" e "verde" para o rótulo color. Depois de alinhar todas as séries temporais, elas podem ser agrupadas por valor color e reduzidas por grupo. Isso resulta em três séries temporais específicas por cor:

Gráfico mostrando séries temporais agrupadas por cor e reduzidas.
Figura 6: séries temporais, agrupadas por cor e reduzida

O exemplo não especifica o alinhador ou redutor usado. O ponto aqui é que o agrupamento permite reduzir um grande conjunto de séries temporais em um conjunto menor, em que cada série temporal representa um grupo que compartilha um atributo comum: neste exemplo, o valor do rótulo color.

Agregação secundária

Quando você usa o agrupamento, é possível que mais de uma série temporal resulte da redução. A agregação secundária permite que você escolha um segundo redutor para aplicar após a redução agrupada.

A tabela a seguir mostra os valores da série temporal agrupada (ilustrada na Figura 6):

Limite de alinhamento Grupo vermelho Grupo azul Grupo verde
2:00 400 150 450
3:00 200 350 450
4:00 300 300 400

Essas três séries temporais já reduzidas podem ser reduzidas posteriormente aplicando a agregação secundária. A tabela a seguir mostra os resultados da aplicação de redutores selecionados:

Limite de alinhamento Redutor: max Redutor: mean Redutor: min Redutor: sum
2:00 450 333.3 150 1000
3:00 450 333.3 200 1000
4:00 400 333.3 300 1000

A ilustração a seguir mostra o resultado da agregação das três séries agrupadas com o redutor mean:

Gráfico mostrando o resultado do redutor mean em séries temporais reduzidas por grupo.
Figura 7: série temporal agrupadas, após a agregação secundária média

Tipos e conversões

Lembre-se de que os pontos de dados em uma série temporal são caracterizados por um tipo de métrica e um tipo de valor. Consulte Tipos de valor e tipos de métrica para uma revisão. Os alinhadores e redutores apropriados para um conjunto de dados talvez não sejam apropriados para outro. Por exemplo, um alinhador ou redutor que conta o número de valores falsos é apropriado para dados booleanos, mas não para dados numéricos. Da mesma forma, um alinhador ou redutor que calcula uma média é aplicável a dados numéricos, mas não a dados booleanos.

Alguns alinhadores e redutores também podem ser usados para alterar explicitamente o tipo de métrica ou o tipo de valor de dados em uma série temporal. Alguns, como ALIGN_COUNT, fazem isso como um efeito colateral.

  • Tipo de métrica: uma métrica cumulativa é aquela em que cada valor representa o total desde o início da coleta de valores. Não é possível usar métricas cumulativas diretamente em gráficos, mas é possível usar métricas delta, em que cada valor representa a alteração desde a medição anterior.

    Também é possível converter métricas cumulativas e delta em métricas do medidor. Por exemplo, considere uma métrica delta cuja série temporal é a seguinte:

    (horário de início, horário de término] (minutos) valor (MiB)
    (0, 2] 8
    (2, 5] 6
    (6, 9] 9

    Suponha que você selecionou um alinhador de ALIGN_DELTA e um período de alinhamento de três minutos. Como o período de alinhamento não corresponde ao (horário de início, horário de término) de cada amostra, uma série temporal é criada com valores interpolados. Para este exemplo, a série temporal interpolada é:

    (horário de início, horário de término] (minutos) valor interpolado (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

    Em seguida, todos os pontos dentro do período de alinhamento de três minutos são somados para gerar os valores alinhados:

    (horário de início, horário de término] (minutos) valor alinhado (MiB)
    (0, 3] 10
    (3, 6] 4
    (6, 9] 9

    Se ALIGN_RATE for selecionado, o processo será o mesmo, exceto que os valores alinhados serão divididos pelo período de alinhamento. Para este exemplo, o período de alinhamento é de três minutos, de modo que a série temporal alinhada tem os seguintes valores:

    (horário de início, horário de término] (minutos) valor alinhado (MiB / segundo)
    (0, 3] 0,056
    (3, 6] 0,022
    (6, 9] 0,050

    Para representar uma métrica cumulativa, ela precisa ser convertida em uma métrica delta ou uma métrica de taxa. O processo para métricas cumulativas é semelhante à discussão anterior. É possível calcular uma série temporal delta de uma série temporal cumulativa, calculando a diferença entre os termos adjacentes.

  • Tipo de valor: alguns alinhadores e redutores não alteram o tipo de valor dos dados de entrada. Por exemplo, dados inteiros ainda são dados inteiros após o alinhamento. Outros alinhadores e redutores convertem dados de um tipo para outro. Isso significa que as informações podem ser analisadas de modos não adequados ao tipo de valor original.

    Por exemplo, o redutor REDUCE_COUNT pode ser aplicado a dados numéricos, booleanos, de string e de distribuição, mas o resultado é um número inteiro de 64 bits que conta o número de valores no período. REDUCE_COUNT pode ser aplicado apenas para medir métricas delta e deixa o tipo de métrica inalterado.

As tabelas de referência para Aligner e Reducer indicam que tipo de dados são apropriados e qualquer conversão resultante. Por exemplo, o exemplo a seguir mostra a entrada de ALIGN_DELTA:

Entrada de referência para o alinhador delta