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 el filtrado o la agregación a tus datos de series temporales, usa la API de Cloud Monitoring o las herramientas de gráficos y alertas en la consola de Google Cloud. Para ver ejemplos, consulta Políticas de ejemplo de la API y Ejemplos del lenguaje de consultas 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, usa un pequeño de series temporales hipotéticas. Por ejemplo, en la siguiente ilustración se muestran algunas horas de datos sin procesar de tres series temporales:
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 más potentes de análisis es el filtrado, que permite oculta los datos que no le 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):
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 valor de distribución.
Alineación: regularización dentro de la serie
El primer paso para agregar datos de series temporales es el alineamiento. 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:
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.
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 el período varía según el tipo de métrica; ver Retención de datos para obtener más información. 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:
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.
Para obtener más información sobre el funcionamiento de las funciones de 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:
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 admite
un gran conjunto de funciones de alineación,
mucho más que el conjunto ilustrado aquí; consulta Aligner
para ver la lista completa. Para una descripción de los alineadores delta y de tasa,
que transforman datos de series temporales, consulta
[Tipos, tipos y conversiones][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):
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:
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 la aplicación de 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:
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 subconjuntos 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. El agrupamiento genera una serie temporal para cada grupo.
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:
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
Cloud Monitoring realiza dos pasos de agregación.
La agregación principal regulariza los datos medidos y, luego, combina las series temporales regularizadas con un reductor. Cuando usas o agrupamiento, más de una serie temporal puede ser el resultado de la reducción realizar como parte de este paso.
La agregación secundaria, que se aplica a los resultados del paso de agregación principal, te permite combinar las series temporales agrupadas en un resultado mediante un segundo reductor.
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 | 1000 |
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:
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 categorías de métricas para 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
: