Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Technologie de l'Internet des objets

Plugin Telegraf pour Connext DDS :créez un système de surveillance de séries temporelles avec DDS et InfluxDB

Il y a quelques mois, j'ai écrit un blog sur la surveillance de vos systèmes IIoT. Le blog couvrait principalement la présentation d'une architecture de surveillance avec Connext DDS et une base de données de séries chronologiques. Ce blog est une continuation de cette discussion, avec de nouveaux détails sur un élément clé de l'architecture.

Pour démontrer l'architecture de surveillance, InfluxDB d'InfluxData a été utilisé comme base de données de séries chronologiques pour la surveillance. En faisant ce travail, j'ai découvert qu'un plugin d'entrée Telegraf pour Connext DDS est un élément manquant critique dans la réalisation de l'architecture. J'ai donc développé un prototype du plugin d'entrée pour Connext DDS. Aujourd'hui, je suis heureux de le partager avec vous en tant que dernier projet de RTI Labs - un programme gratuit qui offre aux clients un accès rapide à la nouvelle technologie RTI, y compris des projets logiciels, des téléchargements et des outils.

Dans ce blog, je partagerai les éléments internes et des exemples du plugin Telegraf. Mais d'abord, passons en revue les bases de Telegraf.

Qu'est-ce que Telegraf ?

Telegraf, qui fait partie de la plateforme de séries chronologiques d'InfluxData, est un agent de collecte, de traitement, d'agrégation et d'écriture de métriques. Il prend en charge un système de plug-in afin que les développeurs puissent facilement ajouter un plug-in pour les métriques. Il comprend quatre types de plugins distincts :

Quels sont les principaux composants de Telegraf ?

Telegraf utilise le modèle de données d'InfluxDB pour les métriques en tant que représentation interne. Le modèle de données contient quatre composants principaux :

Telegraf prend en charge plusieurs formats de données d'entrée pour analyser les métriques dans différents formats jusqu'à sa représentation interne. Une fois les métriques analysées, elles existent en mémoire et seront converties en une représentation concrète à transmettre via un plugin de sortie. Pour cela, il prend également en charge plusieurs formats de sérialisation. Actuellement, le plug-in d'entrée pour Connext DDS ne fonctionne qu'avec le format de données d'entrée JSON.

Le fichier de configuration de Telegraf est écrit à l'aide de TOML et comprend des configurations d'agents (par exemple, intervalle de collecte de données et intervalle de vidage) et de plug-ins. Des descriptions détaillées peuvent être trouvées ici. Pour le plugin pour Connext DDS, il nécessite un fichier de configuration supplémentaire pour la création d'application XML. Il inclut des configurations de types, de sujets et d'entités DDS utilisées par le plugin d'entrée Telegraf.

Comment a été développé le plugin d'entrée Telegraf pour Connext DDS ?

Comme mentionné ci-dessus, Telegraf fournit un système de plugins qui peut permettre aux développeurs d'ajouter des plugins pour les métriques. Pour développer un plugin d'entrée, il faut implémenter les fonctions suivantes définies dans l'interface du plugin d'entrée.

Si un plug-in d'entrée est un plug-in de service, il nécessite la mise en œuvre des fonctions suivantes définies dans l'interface du plug-in de service d'entrée. Un plug-in de service diffère d'un plug-in classique en ce qu'il exploite un service en arrière-plan pendant l'exécution de Telegraf.

Le plug-in d'entrée pour Connext DDS est un plug-in de service car il envoie des métriques à Telegraf lorsqu'il reçoit des données DDS au lieu d'extraire des métriques à un intervalle configuré. Par conséquent, il exécute un thread d'arrière-plan qui vérifie l'arrivée des données DDS via WaitSets. Si vous êtes intéressé par la façon dont il a été mis en œuvre, veuillez consulter ceci ici.

Démonstrations avec des exemples de configurations

Le plus bel avantage de travailler avec Telegaf est qu'il fournit un tas de plugins prêts à l'emploi. Une fois que vous avez le plug-in d'entrée pour Connext DDS, vous pouvez facilement récupérer les plug-ins existants pour les appliquer aux données DDS entrantes. Je vais passer en revue des exemples de commandes et de configurations pour le plug-in d'entrée pour Connext DDS et d'autres plug-ins. Vous pouvez trouver les exemples de fichiers de configuration que j'ai utilisés ici sur GitHub.

Un fichier de configuration par défaut peut être généré par telegraf.

$ telegraf config> telegraf.conf

Pour générer un fichier avec des entrées et des sorties spécifiques, vous pouvez utiliser le "--input-filter" et "--output-filter" drapeaux. La commande suivante va générer un fichier de configuration par défaut avec le plugin d'entrée pour Connext DDS et le plugin de sortie pour le fichier.

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

Après cela, vous pouvez exécuter Telegraf avec le fichier de configuration généré.

$ telegraf -config dds_to_file.conf

La configuration par défaut du plug-in d'entrée pour Connext DDS est la suivante :

[[inputs.dds_consumer]] 
## Chemin du fichier de configuration XML
config_path ="example_configs/ShapeExample.xml"

## Nom de configuration pour le participant DDS à partir d'une description en XML
participant_config ="MyParticipantLibrary::Zero"

## Nom de configuration pour DDS DataReader à partir d'une description en XML
reader_config ="MySubscriber::MySquareReader"

## La clé de balise est un tableau de clés qui doivent être ajoutées en tant que balises.
tag_keys =["couleur"]

## Remplacer le nom de base de la mesure
name_override ="formes"

## Format de données à consommer.
data_format ="json"

La configuration par défaut utilisera un fichier de configuration XML pour Connext DDS situé dans "example_configs/ShapeExample.xml" et créez un participant (MyParticipantLibrary::Zero ) et un lecteur (MySubscriber::MySquareReader ) défini dans le fichier de configuration. Actuellement, il ne fonctionne qu'avec le format JSON donc le « data_format » config doit être défini sur "json" .

Le lecteur défini en XML s'abonne à un sujet nommé « Carré » et utilise le type pour la démo RTI Shapes. Étant donné que le type de démo Shapes utilise l'attribut color comme clé, l'attribut color est ajouté en tant que balise. Par défaut, le nom de la mesure devient le nom d'un nom d'entrée de service (dds_consumer pour le plugin). Si vous souhaitez utiliser un nom de mesure différent, vous pouvez le définir avec le « name_override » config.

Pour tester cette configuration, vous pouvez exécuter la démo RTI Shapes et publier un Square données du sujet. Après avoir publié un Carré les données du sujet, vous pouvez voir les métriques DDS reçues sur "/tmp/metrics.out" , qui est le chemin par défaut du plug-in de sortie pour le fichier.

Si vous souhaitez envoyer les mêmes données DDS à un plugin de sortie différent comme InfluxDB, vous pouvez simplement exécuter la commande suivante pour générer un fichier de configuration pour InfluxDB :

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

$ telegraf -config dds_to_influx.conf

Il existe plusieurs plugins d'agrégation et de traitement fournis par Telegraf. Vous pouvez ajouter les lignes suivantes dans votre fichier de configuration Telegraf pour agréger vos métriques avec des statistiques de base (par exemple, min, max, moyenne, stdev). Il regroupera les métriques avec les statistiques de base toutes les 10 secondes.

[[aggregators.basicstats]] 
## La période pendant laquelle vider et effacer l'agrégateur.
période ="10s"
## Si vrai, la métrique d'origine sera supprimée par l'agrégateur et ne sera pas envoyée aux plugins de sortie.
drop_original =false

Vous pouvez renommer vos champs en utilisant un plugin de processeur. Cet exemple permute « x » et « y » coordonnées des formes.

[[processeurs.renommer]] 
[[processeurs.renommer.remplacer]]
champ ="x"
dest ="y_trans"
[[processeurs.renommer.remplacer]]
champ ="y"
dest ="x_trans"

Ce sont quelques-unes des fonctionnalités et des composants internes intéressants de Telegraf et du plugin pour Connext DDS. J'espère que vous les trouverez utiles pour créer un système de surveillance des séries chronologiques avec DDS et I

[1] [2] 下一页

Technologie de l'Internet des objets

  1. DIY :surveillance et régulation de la température pour HomeBrew
  2. Un système de surveillance continue vous convient-il ?
  3. Cisco présente les solutions de surveillance à distance IoT pour l'informatique et l'OT
  4. En quoi un système de surveillance de l'ambiance basé sur l'IoT est-il bénéfique pour l'industrie de la santé ?
  5. Industrie 4.0 pour la surveillance de l'état des actifs :importance et avantages
  6. Répondre aux besoins industriels avec une solution de surveillance des gaz alimentée par l'IoT
  7. Améliorez le stockage du lait avec une pincée d'IoT :système de surveillance du niveau de lait
  8. Solution de surveillance de niveau pour liquides corrosifs et explosifs
  9. Optimiser l'efficacité énergétique avec des contrôleurs centraux et une surveillance à distance