Complemento Telegraf para Connext DDS:cree un sistema de monitoreo de series temporales con DDS e InfluxDB
Hace unos meses, escribí un blog sobre el monitoreo de sus sistemas IIoT. El blog cubrió principalmente la descripción general de una arquitectura de monitoreo con Connext DDS y una base de datos de series de tiempo. Este blog es una continuación de esa discusión, con nuevos detalles de un elemento clave de la arquitectura.
Para demostrar la arquitectura de monitoreo, se utilizó InfluxDB de InfluxData como una base de datos de series de tiempo para el monitoreo. Al hacer este trabajo, descubrí que un complemento de entrada de Telegraf para Connext DDS es un elemento crítico que falta en la realización de la arquitectura. Así que desarrollé un prototipo del complemento de entrada para Connext DDS. Hoy, me complace compartirlo con ustedes como el último proyecto de RTI Labs, un programa gratuito que brinda a los clientes acceso temprano a la nueva tecnología RTI, incluidos proyectos de software, descargas y herramientas.
En este blog, compartiré los aspectos internos y los ejemplos del complemento Telegraf. Pero primero, repasemos los conceptos básicos de Telegraf.
¿Qué es Telegraf?
Telegraf, parte de la plataforma de series de tiempo de InfluxData, es un agente para recopilar, procesar, agregar y escribir métricas. Es compatible con un sistema de complementos para que los desarrolladores puedan agregar fácilmente un complemento para las métricas. Incluye cuatro tipos de complementos distintos:
- Complementos de entrada recopilar métricas del sistema, los servicios o las API de terceros.
- Complementos de procesador transformar, enriquecer y / o filtrar métricas.
- Complementos de agregación crear métricas agregadas (por ejemplo, media, mínima, máxima, cuantiles, etc.).
- Complementos de salida escribir métricas para varios destinos.
¿Cuáles son los componentes principales de Telegraf?
Telegraf utiliza el modelo de datos de InfluxDB para métricas como una representación interna. El modelo de datos contiene cuatro componentes principales:
- Nombre de la medida es un espacio de nombres para métricas.
- Etiquetas son pares clave / valor para identificar métricas.
- Campos son pares clave / valor para datos métricos.
- Marca de tiempo es la fecha y la hora asociadas con los campos.
Telegraf admite varios formatos de datos de entrada para analizar métricas en diferentes formatos para su representación interna. Después de analizar las métricas, existen en la memoria y se convertirán en una representación concreta que se transmitirá a través de un complemento de salida. Para eso, también admite varios formatos de serialización. Actualmente, el complemento de entrada para Connext DDS solo funciona con el formato de datos de entrada JSON.
El archivo de configuración de Telegraf está escrito usando TOML e incluye configuraciones de agentes (por ejemplo, intervalo de recolección de datos e intervalo de descarga) y complementos. Las descripciones detalladas se pueden encontrar aquí. Para el complemento de Connext DDS, se requiere un archivo de configuración adicional para la creación de aplicaciones XML. Incluye configuraciones de tipos, temas y entidades DDS utilizadas por el complemento de entrada de Telegraf.
¿Cómo se desarrolló el complemento de entrada Telegraf para Connext DDS?
Como se mencionó anteriormente, Telegraf proporciona un sistema de complementos que puede permitir a los desarrolladores agregar complementos para métricas. Para desarrollar un complemento de entrada, es necesario implementar las siguientes funciones definidas en la interfaz para el complemento de entrada.
Si un complemento de entrada es un complemento de servicio, es necesario implementar las siguientes funciones definidas en la interfaz para el complemento de servicio de entrada. Un complemento de servicio se diferencia de un complemento normal en que opera un servicio en segundo plano mientras Telegraf se está ejecutando.
El complemento de entrada para Connext DDS es un complemento de servicio porque envía métricas a Telegraf cuando recibe datos DDS en lugar de extraer métricas en un intervalo configurado. Por lo tanto, ejecuta un subproceso en segundo plano que verifica la llegada de datos DDS a través de WaitSets. Si está interesado en cómo se implementó, consulte esto aquí.
Demostraciones con configuraciones de ejemplo
El mayor beneficio de trabajar con Telegaf es que proporciona un montón de complementos listos para usar. Una vez que tenga el complemento de entrada para Connext DDS, puede elegir fácilmente los complementos existentes para aplicarlos a los datos DDS entrantes. Revisaré comandos y configuraciones de ejemplo para el complemento de entrada para Connext DDS y otros complementos. Puede encontrar los archivos de configuración de ejemplo que utilicé aquí en GitHub.
Telegraf puede generar un archivo de configuración predeterminado.
$ telegraf config> telegraf.conf
Para generar un archivo con entradas y salidas específicas, puede usar el “--input-filter”
y "--output-filter"
banderas. El siguiente comando generará un archivo de configuración predeterminado con el complemento de entrada para Connext DDS y el complemento de salida para el archivo.
$ telegraf --input-filter dds_consumer --output-filter archivo config> dds_to_file.conf
Después de eso, puede ejecutar Telegraf con el archivo de configuración generado.
$ telegraf -config dds_to_file.conf
La configuración predeterminada del complemento de entrada para Connext DDS es como la siguiente:
[[inputs.dds_consumer]]
## Ruta del archivo de configuración XML
config_path ="example_configs / ShapeExample.xml"
## Nombre de configuración para el participante DDS a partir de una descripción en XML
participant_config ="MyParticipantLibrary ::Zero"
## Nombre de configuración para DDS DataReader a partir de una descripción en XML
reader_config ="MySubscriber ::MySquareReader"
## La clave de etiqueta es una matriz de claves que deben agregarse como etiquetas.
tag_keys =["color"]
## Anula el nombre base de la medición
name_override ="formas"
## Formato de datos a consumir.
data_format ="json"
La configuración predeterminada utilizará un archivo de configuración XML para Connext DDS ubicado en “example_configs / ShapeExample.xml”
y cree un participante ( MyParticipantLibrary ::Zero
) y un lector ( MySubscriber ::MySquareReader
) definido en el archivo de configuración. Actualmente, solo funciona con formato JSON, por lo que el “data_format”
config debe establecerse en "json"
.
El lector definido en XML se suscribe a un tema llamado “Square”
y usa el tipo para la demostración de RTI Shapes. Debido a que el tipo de demostración de Shapes usa el atributo de color como clave, el atributo de color se agrega como una etiqueta. De forma predeterminada, el nombre de la medición se convierte en el nombre de un nombre de entrada de servicio ( dds_consumer
para el complemento). Si desea utilizar un nombre de medición diferente, puede configurarlo con el “name_override”
config.
Para probar esta configuración, puede ejecutar la demostración de RTI Shapes y publicar un Square
datos del tema. Después de publicar un Square
datos del tema, puede ver las métricas DDS recibidas en “/tmp/metrics.out”
, que es la ruta predeterminada para el complemento de salida para el archivo.
Si desea enviar los mismos datos DDS a un complemento de salida diferente como InfluxDB, simplemente puede ejecutar el siguiente comando para generar un archivo de configuración para InfluxDB:
$ telegraf --input-filter dds_consumer --output-filter archivo config> dds_to_influx.conf
$ telegraf -config dds_to_influx.conf
Hay varios complementos de agregación y procesamiento proporcionados por Telegraf. Puede agregar las siguientes líneas en su archivo de configuración de Telegraf para agregar sus métricas con estadísticas básicas (por ejemplo, min, max, mean, stdev). Agregará métricas con estadísticas básicas cada 10 segundos.
[[aggregators.basicstats]]
## El período en el que limpiar y limpiar el agregador.
period ="10s"
## Si es verdadero, el agregador eliminará la métrica original y no se enviará a los complementos de salida.
drop_original =false
Puede cambiar el nombre de sus campos utilizando un complemento de procesador. Este ejemplo intercambia "x"
y "y"
coordenadas de formas.
[[processors.rename]]
[[processors.rename.replace]]
campo ="x"
dest ="y_trans"
[[processors.rename.replace]]
campo ="y"
dest ="x_trans"
Estas son algunas de las características y elementos internos interesantes de Telegraf y el complemento para Connext DDS. Espero que los encuentre útiles para construir un sistema de monitoreo de series de tiempo con DDS e InfluxDB.
Lea el anu
Tecnología de Internet de las cosas
- Connext DDS y el IoT industrial:las cinco cosas principales que debe saber
- Anuncio de la última prueba de rendimiento de RTI para Connext DDS
- Bricolaje:Regulación y monitoreo de temperatura para HomeBrew
- ¿Es un sistema de monitoreo continuo adecuado para usted?
- Cisco presenta soluciones de monitoreo remoto de IoT para TI y OT
- ¿Cómo es beneficioso para la industria de la salud un sistema de monitoreo ambiental basado en IoT?
- Industria 4.0 para el monitoreo de la condición de los activos:importancia y beneficios
- Satisfaciendo las necesidades industriales con la solución de monitoreo de gas impulsada por IoT
- Mejore el almacenamiento de leche con una pizca de IoT:sistema de control del nivel de leche
- Solución de monitoreo de nivel para líquidos corrosivos y explosivos
- Optimización de la eficiencia energética con controladores centrales y monitoreo remoto