InfluxDB: BigData con series temporales

InfluxDB, o mejor dicho, InfluxData es una plataforma muy completa para el tratamiento de grandes cantidades de datos, desde su recolección hasta su análisis final. Actualmente ya es una alternativa muy interesante para trabajar en escenarios de BigData pudiendo conseguir una gran optimización en su almacenamiento y en el acceso.

El Stack Stack de InfluxData se construye alrededor de InfluxDB para manejar grandes cantidades de información con series temporales. Esta base de datos de series de tiempo proporciona soporte para nuestras necesidades de análisis de métricas (DevOps Monitoring, sensores IoT, análisis en tiempo real,…). El stack de InfluxData está divido en 4 piezas principales: Telegraf, InfluxDB, Chronograf y Kapacitor.

Chronograf Dashboard

Telegraf

Telegraf es un agente que se encarga de recopilar y reportar métricas y/o eventos desde cualquiera de las fuentes posibles. Cuenta con más de 100 plugins o integraciones para diferentes origenes de datos y nos permite fácilmente añadir nuevos orígenes de datos ya sean con los plugins existentes para orígenes de datos muy conocidos, o hechos a medida.

Telegraf tiene integraciones para obtener una variedad de métricas, eventos y registros directamente de los contenedores y sistemas en los que se está ejecutando, obtener métricas de APIs de terceros o incluso escuchar las métricas a través de los servicios de consumo de StatsD y Kafka. También tiene plugins de salida para enviar métricas a una variedad de otros almacenes de datos, servicios y colas de mensajes, incluyendo InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ, y muchos otros.

InfluxDB

InfluxDB es la base de datos encargada de la persistencia, indexación y búsqueda de datos; está especializada en tratamiento de datos de series temporales, puede manejar gran cantidad de inserciones y búsquedas y está pensada para tratar datos de métricas, monitoreo, sensores IoT como el análisis en tiempo real.

Está escrito enteramente en Go y compila en un solo binario sin dependencias externas. Proporciona capacidades de escritura y consulta con la interfaz de línea de comandos, la API HTTP incorporada, un conjunto de bibliotecas de cliente (como Go, Java y Javascript, por nombrar algunas) y con plugins para formatos de datos comunes como Telegraf, Graphite, Collectd y OpenTSDB.

Chronograf

Chronograf es la parte del stack de InfluxData para visualizar y monitorizar datos fácilmente. Permite ver rápidamente los datos que almacenados en InfluxDB para poder construir consultas y alertas robustas. Es fácil de usar e incluye plantillas y bibliotecas que permiten crear rápidamente cuadros de mando con visualizaciones en tiempo real de sus datos.

Ofrece una interfaz gráfica para configurar alertas, ejecutar «jobs» y detectar anomalías en los datos utilizando las funcionalidades de Kapacitor.

Kapacitor

Kapacitor es la pieza que facilita la configuración de alertas, ejecución de «jobs» y detección de anomalías en los datos. Es un motor de procesamiento de datos nativo basa su núcleo de código abierto, proporcionando integraciones a través del plugin de Telegraf a una variedad de bases de datos, servicios, aplicaciones para sus necesidades de métricas.

A través de su interfaz, los usuarios pueden crear lógica personalizada o funciones definidas para crear consultas. Los usuarios pueden procesar alertas con umbrales dinámicos, hacer coincidir las métricas de los patrones, calcular anomalías estadísticas y realizar acciones específicas basadas en estas alertas como el reequilibrio dinámico de la carga.

Review

Puedes construirte una Sandbox muy rápidamente mediante su docker-compose que encontraremos en su GitHub.