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 filtros 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 conferir exemplos, consulte Políticas de exemplo 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 a filtragem e a agregação, os exemplos nesta página usam um pequeno número de séries temporais hipotéticas. Por exemplo, a ilustração a seguir mostra algumas horas de dados brutos de três séries temporais:
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 poderosas para análise é a filtragem, que permite ocultar dados que não são do seu interesse no momento.
É 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):
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 as métricas de valor de distribuição.
Alinhamento: regularização dentro da série
A primeira etapa na agregação de dados de série temporal é o alinhamento. 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:
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.
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 varia com o tipo de métrica. ver Consulte o artigo Retenção de dados para ver 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:
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:
Para mais informações sobre as funções do alinhador, 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:
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 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):
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 múltiplas 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:
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 para os dados alinhados com 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:
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 subconjuntos 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. O agrupamento resulta em uma série temporal para cada grupo.
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:
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
O Cloud Monitoring executa duas etapas de agregação.
A agregação primária regulariza os dados medidos e, em seguida, combina as séries temporais regularizadas usando um redutor. Quando você usa o agrupamento, é possível que mais de uma série temporal resulte da redução realizada como parte desta etapa.
A agregação secundária, que se aplica aos resultados da etapa de agregação principal, permite combinar a série temporal agrupada em um resultado usando um segundo redutor.
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:
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
: