Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Плагин Telegraf для Connext DDS:создание системы мониторинга временных рядов с помощью DDS и InfluxDB

Несколько месяцев назад я написал блог о мониторинге ваших систем IIoT. В блоге в основном освещался обзор архитектуры мониторинга с Connext DDS и базы данных временных рядов. Этот блог является продолжением этого обсуждения с новыми подробностями о ключевом элементе архитектуры.

Чтобы продемонстрировать архитектуру мониторинга, InfluxDB из InfluxData использовался в качестве базы данных временных рядов для мониторинга. Выполняя эту работу, я обнаружил, что подключаемый модуль ввода Telegraf для Connext DDS является критически важным недостающим элементом в реализации архитектуры. Поэтому я разработал прототип плагина ввода для Connext DDS. Сегодня я рад поделиться с вами этим как последним проектом RTI Labs - бесплатной программы, которая предоставляет клиентам ранний доступ к новым технологиям RTI, включая проекты программного обеспечения, загрузки и инструменты.

В этом блоге я поделюсь внутренним устройством и примерами плагина Telegraf. Но сначала давайте рассмотрим основы Telegraf.

Что такое Telegraf?

Telegraf, часть платформы временных рядов InfluxData, представляет собой агент для сбора, обработки, агрегирования и записи метрик. Он поддерживает систему плагинов, поэтому разработчики могут легко добавить плагин для показателей. Он включает четыре различных типа плагинов:

Каковы основные компоненты Telegraf?

Telegraf использует модель данных InfluxDB для показателей в качестве внутреннего представления. Модель данных состоит из четырех основных компонентов:

Telegraf поддерживает несколько форматов входных данных для синтаксического анализа показателей в разных форматах для внутреннего представления. После анализа метрики они существуют в памяти и будут преобразованы в конкретное представление для передачи через модуль вывода. Для этого он также поддерживает несколько форматов сериализации. В настоящее время подключаемый модуль ввода для Connext DDS работает только с форматом входных данных JSON.

Файл конфигурации Telegraf написан с использованием TOML и включает конфигурации агентов (например, интервал сбора данных и интервал очистки) и подключаемых модулей. Подробные описания можно найти здесь. Для подключаемого модуля Connext DDS требуется дополнительный файл конфигурации для создания приложения XML. Он действительно включает конфигурации типов, тем и объектов DDS, используемых модулем ввода Telegraf.

Как был разработан плагин ввода Telegraf для Connext DDS?

Как упоминалось выше, Telegraf предоставляет систему плагинов, которая позволяет разработчикам добавлять плагины для показателей. Для разработки подключаемого модуля ввода необходимо реализовать следующие функции, определенные в интерфейсе подключаемого модуля ввода.

Если подключаемый модуль ввода является подключаемым модулем службы, он требует реализации следующих функций, определенных в интерфейсе для подключаемого модуля службы ввода. Плагин службы отличается от обычного плагина тем, что он работает в фоновом режиме во время работы Telegraf.

Плагин ввода для Connext DDS - это служебный плагин, потому что он отправляет метрики в Telegraf, когда получает данные DDS, вместо того, чтобы извлекать метрики с заданным интервалом. Следовательно, он запускает фоновый поток, который проверяет поступление данных DDS через WaitSets. Если вам интересно, как это было реализовано, посмотрите здесь.

Демонстрации с примерами конфигураций

Самым приятным преимуществом работы с Telegaf является то, что он предоставляет множество готовых плагинов. Если у вас есть входной плагин для Connext DDS, вы можете легко выбрать существующие плагины, чтобы применить их к входящим любым данным DDS. Я рассмотрю примеры команд и конфигураций для плагина ввода для Connext DDS и других плагинов. Вы можете найти примеры файлов конфигурации, которые я использовал здесь, на GitHub.

Файл конфигурации по умолчанию может быть сгенерирован телеграфом.

 $ telegraf config> telegraf.conf 

Чтобы создать файл с определенными входами и выходами, вы можете использовать «--input-filter» и «--output-filter» флаги. Следующая команда сгенерирует файл конфигурации по умолчанию с подключаемым модулем ввода для Connext DDS и подключаемым модулем вывода для файла.

 $ telegraf --input-filter dds_consumer --output-filter file config> dds_to_file.conf 

После этого вы можете запустить Telegraf со сгенерированным файлом конфигурации.

 $ telegraf -config dds_to_file.conf 

Конфигурация плагина ввода для Connext DDS по умолчанию выглядит следующим образом:

 [[inputs.dds_consumer]] 
## Путь к файлу конфигурации XML
config_path ="example_configs / ShapeExample.xml"

## Имя конфигурации для Участника DDS из описания в XML
участник_config ="MyParticipantLibrary ::Zero"

## Имя конфигурации для DDS DataReader из описания в XML
reader_config ="MySubscriber ::MySquareReader"

## Ключ тега - это массив ключей, которые следует добавить как теги.
tag_keys =["цвет"]

## Заменить базовое имя измерения
name_override ="формы"

## Формат данных для использования.
data_format ="json"

В конфигурации по умолчанию будет использоваться файл конфигурации XML для Connext DDS, расположенный по адресу «example_configs / ShapeExample.xml» и создайте участника ( MyParticipantLibrary ::Zero ) и ридер ( MySubscriber ::MySquareReader ), определенный в файле конфигурации. В настоящее время он работает только с форматом JSON, поэтому «data_format» config должен быть установлен на «json» .

Средство чтения, определенное в XML, подписывается на тему с названием «Квадрат» и использует тип для демонстрации RTI Shapes. Поскольку тип демонстрации Shapes использует атрибут цвета в качестве ключа, атрибут цвета добавляется как тег. По умолчанию имя измерения становится именем имени входа службы ( dds_consumer для плагина). Если вы хотите использовать другое имя измерения, вы можете установить его с помощью «name_override» config.

Чтобы проверить эту конфигурацию, вы можете запустить демонстрацию RTI Shapes и опубликовать Square данные темы. После публикации Square данные темы, вы можете увидеть полученные метрики DDS в «/tmp/metrics.out» , который является путем по умолчанию для подключаемого модуля вывода для файла.

Если вы хотите отправить те же данные DDS в другой плагин вывода, например InfluxDB, вы можете просто запустить следующую команду, чтобы сгенерировать файл конфигурации для InfluxDB:

 $ telegraf --input-filter dds_consumer --output-filter file config> dds_to_influx.conf 

$ telegraf -config dds_to_influx.conf

Telegraf предоставляет несколько плагинов для агрегирования и обработки. Вы можете добавить следующие строки в свой файл конфигурации Telegraf, чтобы агрегировать ваши метрики с базовой статистикой (например, min, max, mean, stdev). Он будет агрегировать показатели с базовой статистикой каждые 10 секунд.

 [[aggregators.basicstats]] 
## Период, в который нужно очистить агрегатор.
период ="10 с"
## Если true, исходная метрика будет отброшена агрегатором и не будет отправлена ​​в выходные плагины.
drop_original =false

Вы можете переименовать свои поля с помощью плагина процессора. В этом примере заменяется «x» и «y» координаты фигур.

 [[processors.rename]] 
[[processors.rename.replace]]
field ="x"
dest ="y_trans"
[[processors.rename.replace]]
field ="y"
dest ="x_trans"

Это некоторые из интересных функций и внутреннего устройства Telegraf и плагина для Connext DDS. Я надеюсь, вы найдете их полезными для создания системы мониторинга временных рядов с помощью DDS и InfluxDB.

Читайте официальное объявление о первом плагине DDS для агента Telegraf здесь.

Хотя я представил некоторые конкретные плагины в качестве примеров, есть много других плагинов, которые могут работать с вашими системами DDS. Чтобы поиграть с плагином для Connext DDS, посетите следующий GitHub. https://github.com/rticommunity/telegraf

Пожалуйста, дайте мне знать, как вам последний результат работы RTI Labs. Посетите форум сообщества RTI или создайте проблему прямо на GitHub, если у вас есть какие-либо комментарии, вопросы или проблемы.


Интернет вещей

  1. Connext DDS и промышленный Интернет вещей:5 главных вещей, которые нужно знать
  2. Сделай сам:мониторинг и регулирование температуры для домашнего пивоварения
  3. Подходит ли вам система непрерывного мониторинга?
  4. Cisco представляет решения удаленного мониторинга IoT для ИТ и ОТ
  5. Чем система мониторинга окружающей среды на основе IoT полезна для отрасли здравоохранения?
  6. Индустрия 4.0 для мониторинга состояния активов:значение и преимущества
  7. Удовлетворение промышленных потребностей с помощью решения для мониторинга газа на основе Интернета вещей
  8. Улучшите хранение молока с помощью Интернета вещей:система мониторинга уровня молока
  9. Решение для контроля уровня агрессивных и взрывоопасных жидкостей
  10. Оптимизация энергоэффективности с помощью центральных контроллеров и удаленного мониторинга