Control del Proceso Estadístico
Los sistemas de monitoreo clásicos guardan valores históricos de métricas en la base de datos relacionales. Funciona perfecto si el período de votación es relativamente largo, los eventos antiguos se purgan periódicamente y la cantidad total de dispositivos no es demasiado grande.
Pero, ¿qué pasa si sondeamos diez métricas de mil dispositivos por minuto y conservamos los datos durante diez años? ¡Tendremos que almacenar 50 mil millones de muestras en nuestra base de datos! Sin embargo, realmente no estamos interesados en estadísticas minuciosas que tengan cinco años. Para datos tan antiguos, sólo nos gustaría saber los promedios anuales. Y la plataforma AggreGate IoT tiene una solución para este caso.
AggreGate puede almacenar datos de series de tiempo a largo plazo en una base de datos Round-Robin (RRD). El módulo responsable de recopilar, almacenar y procesar los datos de series de tiempo se llama módulo de Control Estadístico de Procesos (SPC) , o simplemente estadísticas.
La base de datos Round-robin tiene como objetivo manejar datos de series de tiempo, como ancho de banda de red, temperaturas, carga de CPU, etc. Los datos se almacenan en un buffer circular, por lo tanto, la huella de almacenamiento del sistema permanece constante en el tiempo.
La base de datos RRD tiene dos beneficios importantes para el almacenamiento de datos estadísticos a largo plazo:
- Tamaño de base de datos pequeñas y constantes
- Acceso extremadamente rápido a los datos históricos para cualquier período de tiempo
Otras características del módulo SPC incluyen:
- Cálculo automático de tasas (por ejemplo, caudal o tráfico)
- Trabajar con valores tipo gauge y contador
- Rastreando minuciosamente, promedios por hora, diarios, semanales, mensuales y anuales, mínimos y máximos
- Degradación configurable de precisión para valores antiguos
- Uso concurrente con almacenamiento de valores históricos no agregados basados en RDBMS "clásicos"
Granulación
El módulo de granulación está diseñado para dividir el tiempo continuo en secciones (gránulos) para calcular y almacenar diversos valores agregados en cada gránulo. Es similar a las estadísticas basadas en RRD, pero en lugar de conjuntos de intervalos de longitud fija puede usar cualquier división avanzada del eje de tiempo:
Días reales en un determinado huso horario, incluida la consideración del horario de verano | Mañana, día, noche y horas de noche de cada día |
Meses reales con respecto a años bisiestos | Turnos de trabajo flexibles de una empresa |
Días laborables, fines de semana y días festivos | Cualquier corte de tiempo más complicado |
La mayor flexibilidad de la granulación en comparación con la base de datos round-robin compensa con un menor rendimiento de actualización / recuperación de datos y un mayor consumo de espacio en disco.
Granule utiliza una facilidad de almacenamiento regular para guardar los datos definidos por el usuario para cada segmento de tiempo. Aquí hay algunas muestras:
- Valor promedio, mínimo y máximo
- Suma de valores de cualquier otro resultado basado en ecuaciones
- Primer y último valor en el segmento de tiempo, así como sus marcas de tiempo
- Conteos de muestras con diferente calidad (buena, mala, poco confiable, etc.)
- Marcas de gránulos, como "datos no disponibles"
- Y cualquier información numérica, textual o binaria personalizada