Filtrado y agregación: manipula series temporales

En esta página, se describen las técnicas que se usan para manipular los datos de series temporales. Este contenido se basa en los conceptos y se debate en Métricas, series temporales y recursos.

Los datos de series temporales sin procesar deben manipularse antes de que se puedan analizar y el análisis a menudo implica filtrar algunos datos y agruparlos. En esta página, se describen dos técnicas principales para definir mejor los datos sin procesar:

  • Filtros, que quitan algunos datos
  • Agregación, que combina múltiples fragmentos de datos en un conjunto más pequeño junto con las dimensiones que especifiques

El filtrado y la agregación son herramientas potentes para identificar patrones interesantes y destacar tendencias o valores atípicos en los datos, entre otras cosas.

En esta página, se describen los conceptos detrás del filtrado y la agregación. No se explica cómo aplicarlas directamente. Para aplicar filtros o agregación a tus datos de series temporales, usa la API de Cloud Monitoring o las herramientas de gráficos y alertas de la consola de Google Cloud. Para ver ejemplos, consulta Políticas de muestra de la API y Ejemplos de Lenguaje de consulta de Monitoring.

Datos de series temporales sin procesar

La cantidad de datos sin procesar de una métrica temporal puede ser enorme y, por lo general, hay muchas series temporales asociadas con un tipo de métrica. Para analizar todo el conjunto de datos en busca de comunes, tendencias o valores atípicos, debes realizar un procesamiento sobre las series temporales del conjunto. De lo contrario, hay demasiados datos para considerar.

Para introducir el filtrado y la agregación, en los ejemplos de esta página se usa una pequeña cantidad de series temporales hipotéticas. Por ejemplo, en la siguiente ilustración se muestran algunas horas de datos sin procesar de tres series temporales:

Gráfico que muestra tres series temporales sin procesar: rojo, azul y verde.
Figura 1: Tres series temporales sin procesar

Cada serie temporal es de color, rojo, azul o verde, para reflejar el valor de una etiqueta color hipotética. Hay una serie temporal para cada valor de la etiqueta. Observa que los valores no se alinean bien, ya que se registraron en diferentes momentos.

Filtros

Una de las herramientas de análisis más potentes es el filtrado, que te permite ocultar datos que no te interesan de inmediato.

Puedes filtrar los datos de series temporales según las siguientes opciones:

  • Tiempo.
  • Valor de una o más etiquetas.

En la siguiente ilustración, se muestra el resultado del filtrado solo de las series temporales rojas del conjunto original de series temporales sin procesar (que se ilustra en la Figura 1):

Gráfico que muestra una de las series temporales sin procesar: rojo.
Figura 2: Después del filtrado, una serie temporal sin procesar

En esta serie temporal, seleccionada mediante el filtrado, se usa en la siguiente sección para demostrar la alineación.

Agregación

Otra forma de reducir la cantidad de datos que tienes es resumirlos o agregarlos. Hay dos aspectos de la agregación:

  • Alineación o regularización de los datos dentro de una sola serie temporal.
  • Reducción, o combinación de varias series temporales.

Debes alinear las series temporales antes de poder reducirlas. En las siguientes secciones, se describe la alineación y la reducción mediante el uso de series temporales que almacenan valores de números enteros. Estos conceptos generales también se aplican cuando una serie temporal tiene un tipo de valor Distribution. Sin embargo, este caso tiene algunas restricciones adicionales. Para obtener más información, consulta Acerca de las métricas con valores de distribución.

Alineación: regularización dentro de la serie

El primer paso para agregar datos de series temporales es el alignment. La alineación crea una nueva serie temporal en la que se normalizan los datos sin procesar a fin de que se puedan combinar con otras series temporales alineadas. La alineación produce series temporales con datos espaciados con regularidad.

La alineación implica dos pasos:

  1. Dividir las series temporales en intervalos de tiempo regulares, también llamado agrupamiento de datos. El intervalo se denomina período, período de alineación o ventana de alineación.

  2. Calcular un solo valor para los puntos en el período de alineación. Tú eliges cómo se calcula ese punto único, puedes sumar todos los valores, calcular su promedio, o usar la máxima.

Debido a que la nueva serie temporal creada por la alineación representa todos los valores de la serie temporal sin procesar dentro de un período de alineación, también se denomina reducción dentro de la serie o agregación dentro de la serie.

Regulariza intervalos de tiempo

El análisis de los datos de series temporales requiere que los datos estén disponibles en límites de tiempo dispersos de manera uniforme. La alineación es el proceso para hacer esto.

La alineación crea una nueva serie temporal con un intervalo constante, el período de alineación, entre datos. Por lo general, la alineación se aplica a varias series temporales a fin de prepararte para una mayor manipulación.

En esta sección, se ilustran los pasos de alineación y se aplican a una sola serie temporal. En este ejemplo, se aplica un período de alineación de una hora a la serie temporal de ejemplo que se ilustra en la Figura 2. Las series temporales muestran datos capturados durante tres horas. Dividir los datos en períodos de una hora da como resultado los siguientes puntos en 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

Elige períodos de alineación

La duración del período de alineación depende de dos factores:

  • El nivel de detalle de lo que intentas encontrar en los datos
  • El período de muestreo de los datos, es decir, con qué frecuencia se informa

Estos factores se analizan en más detalle en las siguientes secciones.

Además, Cloud Monitoring conserva los datos de métricas durante un período limitado. El período varía según el tipo de métrica. Consulta Retención de datos para obtener más detalles. El período de retención es el período de alineación significativo más largo.

Nivel de detalle

Si sabes que algo sucedió en un lapso de un par de horas y deseas obtener más información, probablemente quieras usar un período de una hora o una cantidad de minutos para la alineación.

Si te interesa explorar las tendencias durante períodos más largos, un período de alineación mayor puede ser más apropiado. Por lo general, los períodos de alineación prolongados no son útiles para ver condiciones anómalas a corto plazo. Si usas, por ejemplo, un período de alineación de varias semanas, la existencia de una anomalía en ese período aún puede ser detectable, pero los datos alineados pueden ser demasiado precisos para ser de gran ayuda.

Tasa de muestreo

La frecuencia con la que se escriben los datos, la tasa de muestreo, también puede afectar la elección del período de alineación. Consulta la lista de métricas para ver las tasas de muestreo de las métricas integradas. Considera la siguiente figura, que ilustra una serie temporal con una tasa de muestreo de un punto por minuto:

Grafo de datos sin procesar con un período de muestreo de 1 minuto.

Si el período de alineación es el mismo que el período de muestreo, hay un dato en cada período de alineación. Esto significa que, por ejemplo, aplicar cualquiera de los alineadores max, mean o min da como resultado la misma serie temporal alineada. En la siguiente ilustración, se muestra este resultado, junto con las series temporales originales como una línea atenuada.

Gráfico de una serie temporal alineada con el período que coincide con el período de muestreo.

Para obtener más información sobre cómo funcionan las funciones del alineador, consulta Alineadores.

Si el período de alineación se establece en dos minutos o el doble del período de muestreo, hay dos datos en cada período. Si los alineadores max, mean o min se aplican a los puntos dentro del período de alineación de dos minutos, las series temporales resultantes son diferentes. En la siguiente ilustración, se muestran estos resultados, junto con las series temporales originales como una línea atenuada:

Gráfico de series temporales alineadas con un período del doble del período de muestreo.

Cuando elijas un período de alineación, haz que sea más largo que el período de muestreo, pero lo bastante corto para mostrar tendencias relevantes. Es posible que debas experimentar para determinar un período de alineación útil. Por ejemplo, si los datos se recopilan a una velocidad de un punto por día, un período de alineación de una hora es demasiado corto para ser útil: por la mayoría de las horas, no habrá datos.

Alineadores

Después de dividir los datos en períodos de alineación, selecciona una función, el alineador, que se aplicará a los datos de ese período. El alineador produce un solo valor ubicado al final de cada período de alineación.

Las opciones de alineación incluyen la suma de los valores o la búsqueda del valor máximo, mínimo o promedio de los valores, la búsqueda de un valor de percentil de elección, el recuento de valores, etc. La API de Cloud Monitoring es compatible con un gran conjunto de funciones de alineación, mucho más que el simple conjunto ilustrado aquí. Consulta Aligner para ver la lista completa. Para obtener una descripción de los alineadores de frecuencia y delta, que transforman los datos de series temporales, consulta [Kinds, types, and conversions][kinds-types-conversion].

Por ejemplo, si tomas los datos agrupados de las series temporales sin procesar (que se ilustran en la Figura 1), elige un alineador y aplícalo a los datos en cada bucket. En la siguiente tabla, se muestran los valores sin procesar y los resultados de tres alineadores diferentes, max, mean y min:

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

En la ilustración siguiente, se muestran los resultados de los alineadores max, mean o min con un período de alineación de 1 hora con las series temporales originales en rojo (representadas por la línea atenuada en la ilustración):

Gráfico que muestra la serie temporal roja después de aplicar uno de los tres alineadores diferentes.
Figura 3: Una serie temporal, alineada de tres maneras

Otros alineadores

En la siguiente tabla, se muestran los mismos valores sin procesar y los resultados de tres otros alineadores:

  • Recuento recuenta la cantidad de valores en el período de alineación.
  • Suma suma todos los valores del período de alineación.
  • Siguiente más antiguo usa el valor más reciente del período como valor de alineación.
Period Values Alineador: recuento Aligner (Alineador): SUM Alineador: siguiente más antiguo
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

Estos resultados no se muestran en un gráfico.

Reducción: combinación de series temporales

El siguiente paso del proceso, reducción, es el proceso de componer varias series temporales alineadas en una nueva serie temporal. En este paso, se reemplazan todos los valores en el límite del período de alineación por un solo valor. Debido a que funciona en series temporales separadas, la reducción también se denomina agregación de series cruzadas.

Reductores

Un reductor es una función que se aplica a los valores de un conjunto de series temporales para producir un valor único.

Las opciones del reductor incluyen la suma de los valores alineados o la búsqueda de los valores máximos, mínimos o medios de los valores. La API de Cloud Monitoring es compatible con un gran conjunto de funciones de reducción. consulta Reducer para ver la lista completa. La lista de reductores paralelo a la lista de alineadores.

Las series temporales deben alinearse antes de que se puedan reducir. En la siguiente ilustración, se muestran los resultados que alinean las tres series temporales sin procesar (de la Figura 1) en períodos de 1 hora con el alineador medio:

Gráfico que muestra tres series temporales alineadas.
Figura 4: Tres series temporales, media alineadas

Los valores de las tres series temporales alineadas por promedio (que se ilustran en la figura 4) se muestran en la siguiente tabla:

Límite de alineación Rojo Blue Verde
2:00 312.5 133.3 400
3:00 150 283.3 433.3
4:00 250 300 350

Con los datos alineados de la tabla anterior, elige un reductor y aplícalo a los valores. En la siguiente tabla, se muestran los resultados de aplicar diferentes reductores a los datos alineados con la media:

Límite de alineación Reductor: max Reductor: mean (promedio) Reductor: min Reductor: 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

De forma predeterminada, la reducción se aplica a todas tus series temporales, lo que genera una sola serie temporal. En la siguiente ilustración, se muestra el resultado de agregar las tres series temporales alineadas media con el reductor max, que genera los valores más altos de las series temporales:

Gráfico que muestra el resultado de usar el reductor max en las series temporales alineadas por promedio.
Figura 5: Reducción máxima de las tres series temporales alineadas con la media

La reducción también se puede combinar con la agrupación, en la que las series temporales se organizan en categorías, y el reductor se aplica en las series temporales de cada grupo.

Agrupación

La agrupación te permite aplicar un reductor en subsets de tus series temporales, en lugar de hacerlo en todo el conjunto de series temporales. Para agrupar series temporales, selecciona una o más etiquetas. Luego, las series temporales se agrupan según sus valores para las etiquetas seleccionadas.

  • Esto da como resultado una serie temporal para cada grupo.
  • Luego, puedes aplicar un reductor diferente en la serie temporal por grupo. Esto se denomina reducción secundaria y reduce todas las series temporales agrupadas en un resultado.

Si un tipo de métrica registra valores para las etiquetas zone y color, puedes agrupar series temporales por una o ambas etiquetas. Cuando aplicas el reductor, cada grupo se reduce a una sola serie temporal. Si agrupas por color, obtendrás una serie temporal para cada color representado en los datos. Si agrupas por zona, obtendrás una serie temporal para cada zona que aparezca en los datos. Si agrupas por ambas, obtendrás una serie temporal para cada combinación de colores y zonas.

Por ejemplo, supón que has capturado varias series temporales con valores “rojo”, “azul” y “verde” para la etiqueta color. Después de alinear todas las series temporales, se pueden agrupar por valor color y, luego, reducirse por grupo. Esto da como resultado tres series temporales para colores específicos:

Gráfico que muestra series temporales agrupadas por color y reducidas.
Figura 6: Series temporales agrupadas por color y reducidas

En el ejemplo no se especifica el alineador ni el reductor que se usaron. El punto aquí es que la agrupación te permite reducir un conjunto grande de series temporales en un conjunto más pequeño, en el que cada serie temporal representa un grupo que comparte un atributo común: en este ejemplo, el valor de la etiqueta color.

Agregación secundaria

Cuando usas la agrupación, más de una serie temporal puede resultar en la reducción. La agregación secundaria te permite elegir un segundo reductor para aplicar después de la reducción agrupada.

En la siguiente tabla, se muestran los valores de las series temporales agrupadas (que se ilustran en la Figura 6):

Límite de alineación Grupo rojo Grupo azul Grupo verde
2:00 400 150 450
3:00 200 350 450
4:00 300 300 400

Estas tres series temporales ya se pueden reducir aún más mediante la aplicación de agregación secundaria. En la siguiente tabla, se muestran los resultados de la aplicación de reductores seleccionados:

Límite de alineación Reductor: max Reductor: mean (promedio) Reductor: min Reductor: sum
2:00 450 333.3 150 1000
3:00 450 333.3 200 1,000
4:00 400 333.3 300 1000

En la siguiente ilustración, se muestra el resultado de agregar las tres series agrupadas con el reductor media:

Gráfico que muestra el resultado del reductor promedio en series temporales reducidas por grupo.
Figura 7: Series temporales agrupadas, después de la media de agregación secundaria

Similares, tipos y conversiones

Recuerda que los datos de una serie temporal se caracterizan por una categoría de métrica y un tipo de valor; consulta Tipos de valores y tipos de métricas para obtener una revisión. Los alineadores y los reductores adecuados para un conjunto de datos pueden no ser adecuados para otro. Por ejemplo, un alineador o reductor que cuenta el número de valores falsos es apropiado para datos booleanos, pero no para datos numéricos. Del mismo modo, un alineador o reductor que calcula una media se aplica a datos numéricos, pero no a datos booleanos.

Algunos alineadores y reductores también se pueden usar para cambiar de forma explícita el tipo de métrica o el tipo de valor de una serie temporal. Algunos lo hacen como efecto secundario, como ALIGN_COUNT.

  • Categoría de la métrica: Una métrica acumulativa es aquella en la que cada valor representa el total desde que comenzó la recopilación de valores. No puedes usar métricas acumulativas directamente en los gráficos, pero puedes usar métricas delta, en las que cada valor representa el cambio desde la medición anterior.

    También puedes convertir métricas acumulativas y delta métricas de Gauge. Por ejemplo, considera una métrica delta cuyas series temporales son las siguientes:

    (hora de inicio, hora de finalización) (minutos) Valor (MiB)
    (0, 2] 8
    (2, 5] 6
    (6, 9] 9

    Supongamos que seleccionaste un alineador de ALIGN_DELTA y un período de alineación de tres minutos. Dado que el período de alineación no coincide con la hora de inicio (hora de inicio y hora de finalización) de cada muestra, se crea una serie temporal con valores interpolado. Para este ejemplo, las series temporales interpoladas son las siguientes:

    (hora de inicio, hora de finalización) (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

    A continuación, se resumen todos los puntos dentro del período de alineación de tres minutos para generar los valores alineados:

    (hora de inicio, hora de finalización) (minutos) valor alineado (MiB)
    (0, 3] 10
    (3, 6] 4
    (6, 9] 9

    Si se selecciona ALIGN_RATE, el proceso es el mismo, excepto que los valores alineados se dividen por el período de alineación. En este ejemplo, el período de alineación es de tres minutos, por lo que la serie temporal alineada tiene los siguientes valores:

    (hora de inicio, hora de finalización) (minutos) valor alineado (MiB/segundo)
    (0, 3] 0.056
    (3, 6] 0.022
    (6, 9] 0.050

    Para graficar una métrica acumulativa, se debe convertir en una métrica delta o a una métrica de frecuencia. El proceso para las métricas acumulativas es similar al debate anterior. Puedes calcular una serie temporal delta desde una serie temporal acumulativa mediante el cálculo de la diferencia de términos adyacentes.

  • Tipo de valor: algunos alineadores y reductores dejan el tipo de valor de los datos de entrada sin modificar. Por ejemplo, los datos de números enteros aún son datos de números enteros después de la alineación. Otros alineadores y reductores convierten los datos de un tipo a otro, por lo que la información se puede analizar de formas no apropiadas para el tipo de valor original.

    Por ejemplo, el reductor REDUCE_COUNT puede aplicarse a datos numéricos, booleanos, de string y de distribución, pero el resultado que produce es un número entero de 64 bits que cuenta la cantidad de valores en el período. REDUCE_COUNT solo se puede aplicar a las métricas delta y gauge, y se deja el tipo de métrica sin cambios.

Las tablas de referencia para Aligner y Reducer indican qué tipo de datos es adecuado para todas las conversiones que generan resultados. Por ejemplo, a continuación se muestra la entrada para ALIGN_DELTA:

Entrada de referencia para el alineador delta