Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de su primer panel
Creación de un panel
Siga estos pasos para crear un panel en la consola de Grafana.
Creación de su primer panel
-
Seleccione el icono + en el panel izquierdo, seleccione Crear panel y, a continuación, seleccione Agregar nuevo panel.
-
En la vista Nuevo panel/Editar panel, seleccione la pestaña Consulta.
-
Para configurar la consulta, seleccione el origen de datos que desea consultar. Por ejemplo, si ha agregado TestDB como origen de datos, se generará un panel de ejemplo denominado panel “Random Walk”.
Introducción a las series temporales
Imagine que quiere saber cómo cambia la temperatura exterior a lo largo del día. Una vez cada hora, tendría que revisar el termómetro y anotar la hora junto con la temperatura actual. Después de un tiempo, tendría algo parecido a los siguientes datos.
Tiempo | Valor |
---|---|
09:00 | 24 °C |
10:00 | 26 °C |
11:00 | 27 °C |
Los datos de temperatura como estos son un ejemplo de una serie temporal: una secuencia de mediciones ordenadas en el tiempo. Cada fila de la tabla representa una medición individual en un momento específico.
Las tablas son útiles cuando se quiere identificar mediciones individuales, pero pueden dificultar la visión general. Una visualización más común para las series temporales es el gráfico, que en su lugar coloca cada medición a lo largo de un eje temporal. Las representaciones visuales, como el gráfico, facilitan el descubrimiento de patrones y características de los datos que, de otro modo, serían difíciles de ver.
Otros ejemplos de series temporales son los siguientes:
-
Uso de CPU y memoria
-
Datos del sensor
-
Índice bursátil
Si bien cada uno de estos ejemplos es una secuencia de mediciones ordenadas cronológicamente, también comparten otros atributos:
-
Los datos nuevos se agregan al final, a intervalos regulares; por ejemplo, cada hora a las 09:00, 10:00, 11:00, etc.
-
Las mediciones rara vez se actualizan una vez agregadas. Por ejemplo, la temperatura de ayer no cambia.
Las series temporales son útiles. Ayudan a entender el pasado al permitirle analizar el estado del sistema en cualquier momento. Las series temporales podrían indicarle que el servidor se bloqueó momentos después de que el espacio libre en el disco se redujera a cero.
Las series temporales también pueden ayudarlo a predecir el futuro al descubrir tendencias en sus datos. Por ejemplo, si el número de usuarios registrados ha aumentado un 4 por ciento cada mes durante los últimos meses, puede predecir el tamaño de su base de usuarios al final del año.
Algunas series temporales tienen patrones que se repiten a lo largo de un periodo conocido. Por ejemplo, la temperatura suele ser más alta durante el día, antes de bajar por la noche. Al identificar estas series temporales periódicas o estacionales, puede hacer predicciones fiables sobre el próximo periodo. Si sabe que la carga del sistema alcanza su punto máximo todos los días alrededor de las 18:00, puede agregar más máquinas justo antes.
Cómo agregar series temporales
Según lo que esté midiendo, los datos pueden variar considerablemente. ¿Y si quisiera comparar periodos más largos que el intervalo entre las mediciones? Si midiera la temperatura una vez cada hora, obtendría 24 puntos de datos por día. Para comparar la temperatura de agosto a lo largo de los años, tendría que combinar los 24 puntos de datos multiplicados por 31 en uno solo.
La combinación de una colección de mediciones se denomina agregación. Hay varias formas de agregar datos de serie temporal. Estas son algunas de las más comunes:
-
Average devuelve la suma de todos los valores dividida por el número total de valores.
-
Min y Max devuelven el valor más bajo y el más alto de la colección.
-
Sum devuelve la suma de todos los valores de la colección.
-
Count devuelve el número de valores de la colección.
Por ejemplo, al agregar los datos en un mes, puede determinar que agosto de 2017 fue, en promedio, más cálido que el año anterior. Si quisiera ver qué mes tuvo la temperatura más alta, compararía la temperatura máxima de cada mes.
La forma en que se agregan los datos de serie temporal es una decisión importante y depende de la historia que se quiera contar con los datos. Es habitual utilizar distintas agregaciones para visualizar los mismos datos de serie temporal de distintas maneras.
Series temporales y supervisión
En el sector de TI, los datos de serie temporal suelen recopilarse para supervisar aspectos como la infraestructura, el hardware o los eventos de las aplicaciones. Los datos de serie temporal generados por máquinas suelen recopilarse en intervalos cortos, de modo que pueda reaccionar ante cualquier cambio inesperado momentos después de que se produzca. Los datos se acumulan a un ritmo rápido, por lo que es fundamental disponer de una forma eficaz de almacenar y consultar los datos. Como resultado, las bases de datos optimizadas para datos de serie temporal han ganado popularidad en los últimos años.
Bases de datos de serie temporal
Una base de datos de serie temporal (TSDB) es una base de datos diseñada explícitamente para datos de serie temporal. Si bien es posible utilizar cualquier base de datos normal para almacenar las mediciones, una TSDB incluye algunas optimizaciones útiles.
Las TSDB modernas aprovechan el hecho de que las mediciones solo se agregan y rara vez se actualizan o eliminan. Por ejemplo, las marcas de tiempo de cada medición cambian poco con el tiempo, lo que hace que se almacenen datos redundantes.
En el siguiente ejemplo se muestra una secuencia de marcas de tiempo Unix.
1572524345, 1572524375, 1572524404, 1572524434, 1572524464
Al observar estas marcas de tiempo, todas comienzan por 1572524
, lo que lleva a un uso deficiente del espacio en disco. En su lugar, puede almacenar cada marca de tiempo posterior como la diferencia, o delta, de la primera, como se muestra en el siguiente ejemplo.
1572524345, +30, +29, +30, +30
Incluso podría ir un paso más allá calculando los deltas de estos deltas, como se muestra en el siguiente ejemplo.
1572524345, +30, -1, +1, +0
Si las mediciones se toman a intervalos regulares, la mayoría de los deltas de deltas será 0. Gracias a optimizaciones como estas, las TSDB utilizan mucho menos espacio que otras bases de datos.
Otra característica de una TSDB es la capacidad de filtrar las mediciones mediante etiquetas. Cada punto de datos está etiquetado con una etiqueta que agrega información de contexto, como el lugar donde se tomó la medición.
Grafana admite las siguientes TSDB:
-
weather,location=us-midwest temperature=82 1465839830100400200 | -------------------- -------------- | | | | | | | | | +-----------+--------+-+---------+-+---------+ |measurement|,tag_set| |field_set| |timestamp| +-----------+--------+-+---------+-+---------+
Recopilación de datos de serie temporal
Ahora que tiene un lugar para almacenar sus series temporales, ¿cómo recopila realmente las mediciones? Para recopilar datos de serie temporal, normalmente instalaría un recopilador en el dispositivo, la máquina o la instancia que desee supervisar. Algunos recopiladores se crean pensando en una base de datos específica y otros admiten diferentes destinos de salida.
A continuación, se muestran algunos ejemplos de recopiladores:
Un recopilador inserta los datos en una base de datos o permite que la base de datos extraiga los datos del recopilador. Cada enfoque tiene sus propias ventajas y desventajas.
Ventajas | Desventajas | |
---|---|---|
Push (Insertar) | Es más fácil replicar los datos en varios destinos. | La TSDB no tiene control sobre la cantidad de datos que se envían. |
Extraer | Más control sobre la cantidad de datos ingeridos y su autenticidad. | Los firewalls, las VPN o los equilibradores de carga pueden dificultar el acceso a los agentes. |
Como resulta ineficiente escribir todas las mediciones en la base de datos, los recopiladores agregan previamente los datos y los escriben en la TSDB a intervalos regulares.
Dimensiones de series temporales
En el caso de los datos de serie temporal, los datos suelen ser un conjunto de varias series temporales. Muchos orígenes de datos de Grafana admiten este tipo de datos.
Lo habitual es emitir una única consulta para una medición con una o más propiedades adicionales como dimensiones. Por ejemplo, puede consultar una medición de temperatura junto con una propiedad de ubicación. En este caso, se devuelven varias series de esa única consulta y cada serie tiene una ubicación única como dimensión.
Para identificar series únicas dentro de un conjunto de series temporales, Grafana almacena las dimensiones en etiquetas.
Etiquetas
Cada serie temporal de Grafana tiene opcionalmente etiquetas. Las etiquetas son un conjunto de pares de clave-valor para identificar las dimensiones. Los ejemplos de etiquetas son {location=us}
o {country=us,state=ma,city=boston}
. Dentro de un conjunto de series temporales, la combinación de su nombre y etiquetas identifica cada serie. Por ejemplo, temperature {country=us,state=ma,city=boston}
.
Los distintos orígenes de datos de serie temporal tienen dimensiones almacenadas de forma nativa o patrones de almacenamiento comunes que permiten extraer los datos en dimensiones.
Por lo general, las TSDB admiten la dimensionalidad de forma nativa. Prometheus almacena las dimensiones en etiquetas. En las TSDB, como Graphite u OpenTSDB, se utilizan también etiquetas.
En las bases de datos de tablas, como SQL, estas dimensiones suelen ser los parámetros GROUP
BY
de una consulta.
Varias dimensiones en formato de tabla
En las bases de datos SQL o similares a SQL que devuelven respuestas de tablas, las dimensiones adicionales suelen ser columnas en la tabla de respuestas a la consulta.
Dimensión única
Por ejemplo, considere una consulta como la del siguiente ejemplo.
SELECT BUCKET(StartTime, 1h), AVG(Temperature) AS Temp, Location FROM T GROUP BY BUCKET(StartTime, 1h), Location ORDER BY time asc
La consulta puede devolver una tabla con tres columnas.
StartTime | Temp | Ubicación |
---|---|---|
09:00 | 24 | LGA |
09:00 | 20 | BOS |
10:00 | 26 | LGA |
10:00 | 22 | BOS |
El formato de tabla es una serie temporal con formato largo, también denominada alta. Tiene marcas de tiempo y valores repetidos en Location. En este caso, dos series temporales del conjunto se identificarían como Temp {Location=LGA}
y Temp
{Location=BOS}
.
Las series temporales individuales del conjunto se extraen utilizando las siguientes dimensiones:
-
La columna de tipo temporal
StartTime
como índice temporal de la serie temporal -
La columna de tipo numérico
Temp
como nombre de la serie -
El nombre y los valores de la columna de tipo cadena
Location
para crear las etiquetas, como Location=LGA
Dimensiones múltiples
Si la consulta se actualiza para seleccionar y agrupar en más de una columna de cadena (por ejemplo, GROUP BY BUCKET(StartTime, 1h), Location,
Sensor
), se agrega una dimensión adicional.
StartTime | Temp | Ubicación | Sensor |
---|---|---|---|
09:00 | 24 | LGA | A |
09:00 | 24,1 | LGA | B |
09:00 | 20 | BOS | A |
09:00 | 20,2 | BOS | B |
10:00 | 26 | LGA | A |
10:00 | 26,1 | LGA | B |
10:00 | 22 | BOS | A |
10:00 | 22,2 | BOS | B |
En este caso, las etiquetas que representan las dimensiones tienen dos claves basadas en las dos columnas de tipo cadena, Location
y Sensor
. Los datos dan como resultado cuatro series:
-
Temp {Location=LGA,Sensor=A}
-
Temp {Location=LGA,Sensor=B}
-
Temp {Location=BOS,Sensor=A}
-
Temp {Location=BOS,Sensor=B}
nota
Nota: No se admiten varias dimensiones de forma que se asignen a varias alertas en Grafana. En cambio, se tratan como múltiples condiciones para una sola alerta.
Múltiples valores
En el caso de los orígenes de datos de tipo SQL, se puede seleccionar más de una columna numérica, con o sin columnas de cadena adicionales para utilizarlas como dimensiones; por ejemplo, AVG(Temperature) AS AvgTemp, MAX(Temperature)
AS MaxTemp
. Esto, si se combina con varias dimensiones, puede dar como resultado numerosas series. Actualmente, la selección de varios valores está diseñada para usarse solo con la visualización.
Introducción a los histogramas y los mapas térmicos
Un histograma es una representación gráfica de la distribución de los datos numéricos. Agrupa los valores en buckets (a veces también denominados contenedores). A continuación, cuenta cuántos valores hay en cada bucket.
En lugar de representar gráficamente los valores reales, los histogramas crean gráficos a partir de los buckets. Cada barra representa un bucket y la altura de la barra representa la frecuencia (por ejemplo, el recuento) de los valores que se encuentran dentro del intervalo de ese bucket.
Los histogramas solo analizan las distribuciones de valores en un intervalo de tiempo específico. El problema de los histogramas es que no se pueden ver tendencias ni cambios en la distribución a lo largo del tiempo. Aquí es donde los mapas térmicos se vuelven útiles.
Mapas térmicos
Un mapa térmico es como un histograma a lo largo del tiempo, en el que cada intervalo de tiempo representa su propio histograma. En lugar de utilizar la altura de la barra como representación de la frecuencia, utiliza celdas y colorea una celda de forma proporcional al número de valores del bucket.
Datos agrupados previamente en buckets
Varios orígenes de datos admiten el histograma a lo largo del tiempo, incluidos las siguientes:
-
Amazon OpenSearch Service (mediante una agregación de buckets de histogramas)
-
Prometheus (con el tipo de métrica de histograma
y la opción Formatear como configurada en Mapa térmico)
Por lo general, puede utilizar cualquier origen de datos que devuelva series cuyos nombres representen el límite del bucket o devuelva series ordenadas por el límite en orden ascendente.
Datos sin procesar frente a datos agregados
Si utiliza el mapa térmico con datos de serie temporal normales (no agrupados previamente en buckets), es importante recordar que los datos suelen estar ya agregados por el backend de series temporales. La mayoría de las consultas de series temporales no devuelven datos de muestra sin procesar. En su lugar, incluyen un grupo por intervalo de tiempo o límite maxDataPoints, junto con una función de agregación (normalmente el promedio).
Depende del intervalo de tiempo de la consulta. Lo importante es saber que la agrupación de histogramas en buckets que lleva a cabo Grafana puede hacerse con datos ya agregados y cuyo promedio ya se ha calculado. Para obtener mapas térmicos más precisos, es mejor agrupar los datos en buckets durante la recopilación de métricas o almacenar los datos en OpenSearch u otro origen de datos que permita agrupar los histogramas en buckets con los datos sin procesar.
Si elimina o reduce el grupo por tiempo (o aumenta maxDataPoints) en la consulta para obtener más puntos de datos, el mapa térmico será más preciso. Sin embargo, esto también puede suponer una gran carga para la CPU y la memoria. Si el número de puntos de datos se vuelve excesivamente grande, es posible que se produzcan demoras y fallos.