Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Telegraf-Plugin für Connext DDS:Erstellen Sie ein Zeitreihen-Überwachungssystem mit DDS und InfluxDB

Vor einigen Monaten habe ich einen Blog über die Überwachung Ihrer IIoT-Systeme geschrieben. Der Blog behandelte hauptsächlich den Überblick über eine Monitoring-Architektur mit Connext DDS und einer Zeitreihendatenbank. Dieser Blog ist eine Fortsetzung dieser Diskussion mit neuen Details zu einem Schlüsselelement der Architektur.

Um die Überwachungsarchitektur zu demonstrieren, wurde InfluxDB von InfluxData als Zeitreihendatenbank für die Überwachung verwendet. Bei dieser Arbeit stellte ich fest, dass ein Telegraf-Eingabe-Plugin für Connext DDS ein entscheidendes fehlendes Element bei der Realisierung der Architektur ist. Also habe ich einen Prototyp des Input-Plugins für Connext DDS entwickelt. Heute freue ich mich, es als neuestes Projekt von RTI Labs mit Ihnen zu teilen – ein kostenloses Programm, das Kunden einen frühen Zugang zu neuer RTI-Technologie einschließlich Softwareprojekten, Downloads und Tools bietet.

In diesem Blog werde ich die Interna und Beispiele des Telegraf-Plugins teilen. Aber lassen Sie uns zuerst die Grundlagen von Telegraf besprechen.

Was ist Telegraf?

Telegraf, Teil der Zeitreihenplattform von InfluxData, ist ein Agent zum Sammeln, Verarbeiten, Aggregieren und Schreiben von Metriken. Es unterstützt ein Plugin-System, sodass Entwickler problemlos ein Plugin für Metriken hinzufügen können. Es enthält vier verschiedene Plugin-Typen:

Was sind die Hauptkomponenten von Telegraf?

Telegraf verwendet das Datenmodell der InfluxDB für Metriken als interne Darstellung. Das Datenmodell enthält vier Hauptkomponenten:

Telegraf unterstützt mehrere Eingabedatenformate, um Metriken in verschiedenen Formaten zu ihrer internen Darstellung zu analysieren. Nachdem Metriken geparst wurden, existieren sie im Speicher und werden in eine konkrete Darstellung umgewandelt, die über ein Ausgabe-Plugin übertragen wird. Dafür unterstützt es auch mehrere Serialisierungsformate. Derzeit funktioniert das Eingabe-Plugin für Connext DDS nur mit dem JSON-Eingabedatenformat.

Die Konfigurationsdatei von Telegraf wird mit TOML geschrieben und enthält Konfigurationen von Agenten (z. B. Datenerfassungsintervall und Spülintervall) und Plugins. Ausführliche Beschreibungen finden Sie hier. Für das Plugin für Connext DDS ist eine zusätzliche Konfigurationsdatei für die XML-App-Erstellung erforderlich. Es enthält Konfigurationen von Typen, Themen und DDS-Entitäten, die vom Telegraf-Eingabe-Plugin verwendet werden.

Wie wurde das Telegraf-Eingabe-Plugin für Connext DDS entwickelt?

Wie oben erwähnt, bietet Telegraf ein Plugin-System, mit dem Entwickler Plugins für Metriken hinzufügen können. Um ein Eingabe-Plugin zu entwickeln, müssen die folgenden Funktionen implementiert werden, die in der Schnittstelle für das Eingabe-Plugin definiert sind.

Wenn ein Eingabe-Plugin ein Service-Plugin ist, müssen die folgenden Funktionen implementiert werden, die in der Schnittstelle für das Eingabe-Service-Plugin definiert sind. Ein Service-Plugin unterscheidet sich von einem normalen Plugin dadurch, dass es einen Hintergrunddienst betreibt, während Telegraf läuft.

Das Eingabe-Plug-in für Connext DDS ist ein Dienst-Plug-in, da es Metriken an Telegraf überträgt, wenn es DDS-Daten empfängt, anstatt Metriken in einem konfigurierten Intervall abzurufen. Daher führt es einen Hintergrundthread aus, der die Ankunft von DDS-Daten über WaitSets überprüft. Wenn Sie daran interessiert sind, wie es implementiert wurde, sehen Sie sich das hier an.

Demonstrationen mit Beispielkonfigurationen

Der schönste Vorteil der Zusammenarbeit mit Telegaf besteht darin, dass es eine Reihe von sofort einsatzbereiten Plugins bietet. Sobald Sie das Eingabe-Plug-in für Connext DDS haben, können Sie ganz einfach vorhandene Plug-Ins übernehmen, um sie auf eingehende DDS-Daten anzuwenden. Ich werde Beispielbefehle und Konfigurationen für das Eingabe-Plugin für Connext DDS und andere Plugins durchgehen. Sie finden die Beispielkonfigurationsdateien, die ich hier bei GitHub verwendet habe.

Eine Standard-Konfigurationsdatei kann von Telegraf generiert werden.

$ telegraf config> telegraf.conf

Um eine Datei mit bestimmten Ein- und Ausgaben zu generieren, können Sie den “--input-filter” . verwenden und "--output-filter" Flaggen. Der folgende Befehl generiert eine Standard-Konfigurationsdatei mit dem Eingabe-Plugin für Connext DDS und dem Ausgabe-Plugin für die Datei.

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

Danach können Sie Telegraf mit der generierten Konfigurationsdatei ausführen.

$ telegraf -config dds_to_file.conf

Die Standardkonfiguration des Eingabe-Plugins für Connext DDS sieht wie folgt aus:

[[inputs.dds_consumer]] 
## Pfad der XML-Konfigurationsdatei
config_path ="example_configs/ShapeExample.xml"

## Konfigurationsname für DDS-Teilnehmer aus einer Beschreibung in XML
participant_config ="MyParticipantLibrary::Zero"

## Konfigurationsname für DDS DataReader aus einer Beschreibung in XML
reader_config ="MySubscriber::MySquareReader"

## Tag-Schlüssel ist ein Array von Schlüsseln, die als Tags hinzugefügt werden sollten.
tag_keys =["Farbe"]

## Überschreibe den Basisnamen der Messung
name_override ="Formen"

## Zu verwendendes Datenformat.
data_format ="json"

Die Standardkonfiguration verwendet eine XML-Konfigurationsdatei für Connext DDS unter “example_configs/ShapeExample.xml” und erstellen Sie einen Teilnehmer (MyParticipantLibrary::Zero ) und ein Lesegerät (MySubscriber::MySquareReader ) in der Konfigurationsdatei definiert. Derzeit funktioniert es nur mit dem JSON-Format, also dem „data_format“ config sollte auf „json“ gesetzt werden .

Der in XML definierte Reader abonniert ein Thema namens „Quadrat“ und verwendet den Typ für die RTI-Shapes-Demo. Da der Demotyp Shapes das Farbattribut als Schlüssel verwendet, wird das Farbattribut als Tag hinzugefügt. Standardmäßig wird der Messname zum Namen eines Service-Eingabenamens (dds_consumer für das Plugin). Wenn Sie einen anderen Messnamen verwenden möchten, können Sie diesen mit dem “name_override” . festlegen Konfig.

Um diese Konfiguration zu testen, können Sie eine RTI Shapes-Demo ausführen und ein Square publish veröffentlichen Themendaten. Nach der Veröffentlichung eines Quadrats Themendaten können Sie empfangene DDS-Metriken unter “/tmp/metrics.out” . einsehen , das ist der Standardpfad für das Ausgabe-Plugin für Datei.

Wenn Sie dieselben DDS-Daten an ein anderes Ausgabe-Plugin wie InfluxDB senden möchten, können Sie einfach den folgenden Befehl ausführen, um eine Konfigurationsdatei für InfluxDB zu generieren:

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

$ telegraf -config dds_to_influx.conf

Es gibt mehrere Aggregations- und Verarbeitungs-Plugins von Telegraf. Sie können Ihrer Telegraf-Konfigurationsdatei die folgenden Zeilen hinzufügen, um Ihre Metriken mit grundlegenden Statistiken (z. B. min, max, mean, stdev) zusammenzufassen. Es aggregiert alle 10 Sekunden Metriken mit grundlegenden Statistiken.

[[aggregators.basicstats]] 
## Der Zeitraum, in dem der Aggregator geleert und gelöscht werden soll.
Periode ="10s"
## Wenn wahr, wird die ursprüngliche Metrik vom Aggregator verworfen und nicht an die Ausgabe-Plugins gesendet.
drop_original =false

Sie können Ihre Felder umbenennen, indem Sie ein Prozessor-Plugin verwenden. Dieses Beispiel tauscht „x“ und „y“ Koordinaten der Formen.

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

Dies sind einige der interessanten Funktionen und Interna von Telegraf und dem Plugin für Connext DDS. Ich hoffe, Sie werden sie nützlich finden, um ein Zeitreihen-Überwachungssystem mit DDS und InfluxDB zu erstellen.

Lesen Sie hier die offizielle Ankündigung zum ersten DDS-Plugin für den Telegraf-Agenten.

Obwohl ich einige spezifische Plugins als Beispiele vorgestellt habe, gibt es viele andere Plugins, die mit Ihren DDS-Systemen arbeiten können. Um mit dem Plugin für Connext DDS zu spielen, besuchen Sie bitte den folgenden GitHub. https://github.com/rticommunity/teleg

[1] [2] 下一页

Internet der Dinge-Technologie

  1. Connext DDS und das industrielle IoT:Die 5 wichtigsten Dinge, die Sie wissen sollten
  2. DIY:Temperaturüberwachung und -regulierung für HomeBrew
  3. Ist ein kontinuierliches Überwachungssystem das Richtige für Sie?
  4. Cisco stellt IoT-Fernüberwachungslösungen für IT und OT vor
  5. Wie ist ein IoT-basiertes Umgebungsüberwachungssystem für die Gesundheitsbranche von Vorteil?
  6. Industrie 4.0 für Asset Condition Monitoring:Bedeutung und Nutzen
  7. Erfüllung der industriellen Anforderungen mit IoT-gestützter Gasüberwachungslösung
  8. Verbessern Sie die Milchlagerung mit einer Prise IoT:Milk Level Monitoring System
  9. Füllstandüberwachungslösung für korrosive und explosive Flüssigkeiten
  10. Optimierung der Energieeffizienz mit zentralen Steuerungen und Fernüberwachung