Connext DDS用のTelegrafプラグイン:DDSとInfluxDBを使用して時系列監視システムを構築する
数ヶ月前、私はあなたのIIoTシステムの監視についてブログを書きました。このブログでは、主にConnextDDSと時系列データベースを使用した監視アーキテクチャの概要について説明しました。このブログはその議論の続きであり、アーキテクチャの重要な要素の新しい詳細が含まれています。
監視アーキテクチャを示すために、InfluxDataのInfluxDBを監視用の時系列データベースとして使用しました。この作業を行う中で、Connext DDS用のTelegraf入力プラグインが、アーキテクチャを実現する上で重要な欠落要素であることがわかりました。そこで、ConnextDDSの入力プラグインのプロトタイプを開発しました。本日は、RTI Labsの最新プロジェクトとしてご紹介できることをうれしく思います。これは、ソフトウェアプロジェクト、ダウンロード、ツールなどの新しいRTIテクノロジーへの早期アクセスをお客様に提供する無料のプログラムです。
このブログでは、Telegrafプラグインの内部と例を共有します。ただし、最初に、Telegrafの基本を確認しましょう。
Telegrafとは何ですか?
InfluxDataの時系列プラットフォームの一部であるTelegrafは、メトリックを収集、処理、集約、および書き込むためのエージェントです。プラグインシステムをサポートしているため、開発者はメトリック用のプラグインを簡単に追加できます。 4つの異なるプラグインタイプが含まれています:
- 入力プラグイン システム、サービス、またはサードパーティのAPIから指標を収集します。
- プロセッサプラグイン メトリックを変換、強化、および/またはフィルタリングします。
- アグリゲータープラグイン 集計メトリック(平均、最小、最大、分位数など)を作成します。
- 出力プラグイン さまざまな宛先にメトリックを書き込みます。
Telegrafの主なコンポーネントは何ですか?
Telegrafは、内部表現としてメトリックのInfluxDBのデータモデルを使用します。データモデルには、次の4つの主要コンポーネントが含まれています。
- 測定名 メトリックの名前空間です。
- タグ メトリックを識別するためのキーと値のペアです。
- フィールド メトリックデータのキーと値のペアです。
- タイムスタンプ フィールドに関連付けられた日付と時刻です。
Telegrafは、内部表現に対してさまざまな形式のメトリックを解析するために、いくつかの入力データ形式をサポートしています。メトリックが解析された後、それらはメモリに存在し、出力プラグインを介して送信される具体的な表現に変換されます。そのため、いくつかのシリアル化形式もサポートしています。現在、Connext DDSの入力プラグインは、JSON入力データ形式でのみ機能します。
Telegrafの構成ファイルはTOMLを使用して記述されており、エージェント(データ収集間隔やフラッシュ間隔など)とプラグインの構成が含まれています。詳細な説明はここにあります。 Connext DDSのプラグインの場合、XMLアプリ作成用の追加の構成ファイルが必要です。 Telegraf入力プラグインで使用されるタイプ、トピック、およびDDSエンティティの構成が含まれています。
Connext DDS用のTelegraf入力プラグインはどのように開発されましたか?
上記のように、Telegrafは、開発者がメトリック用のプラグインを追加できるプラグインシステムを提供します。入力プラグインを開発するには、入力プラグインのインターフェースで定義されている次の関数を実装する必要があります。
入力プラグインがサービスプラグインの場合、入力サービスプラグインのインターフェイスで定義されている次の関数を実装する必要があります。サービスプラグインは、Telegrafの実行中にバックグラウンドサービスを操作するという点で通常のプラグインとは異なります。
Connext DDSの入力プラグインは、構成された間隔でメトリックをプルするのではなく、DDSデータを受信したときにメトリックをTelegrafにプッシュするため、サービスプラグインです。したがって、WaitSetsを介してDDSデータの到着をチェックするバックグラウンドスレッドを実行します。実装方法に興味がある場合は、こちらをご覧ください。
構成例を使用したデモンストレーション
Telegafを使用する最大の利点は、すぐに使用できるプラグインが多数提供されることです。 Connext DDSの入力プラグインを入手したら、既存のプラグインを簡単に取得して、受信するDDSデータに適用できます。 ConnextDDSおよびその他のプラグインの入力プラグインのコマンドと構成の例を見ていきます。ここで使用した構成ファイルの例は、GitHubにあります。
デフォルトの設定ファイルはtelegrafで生成できます。
$ telegraf config> telegraf.conf
特定の入力と出力を含むファイルを生成するには、「-input-filter」
を使用できます。 および“-output-filter”
フラグ。次のコマンドは、ConnextDDSの入力プラグインとファイルの出力プラグインを含むデフォルトの構成ファイルを生成します。
$ telegraf --input-filter dds_consumer --output-filter file config> dds_to_file.conf
その後、生成された構成ファイルを使用してTelegrafを実行できます。
$ telegraf -config dds_to_file.conf
ConnextDDSの入力プラグインのデフォルト構成は次のようになります。
[[inputs.dds_consumer]]
## XML構成ファイルのパス
config_path ="example_configs / ShapeExample.xml"
## XMLの説明からのDDS参加者の構成名
参加者_config ="MyParticipantLibrary ::Zero"
## XMLの説明からのDDSDataReaderの構成名
reader_config ="MySubscriber ::MySquareReader"
##タグキーは、タグとして追加する必要のあるキーの配列です。
tag_keys =["color"]
##測定のベース名を上書きします
name_override ="shapes"
##使用するデータ形式。
data_format ="json"
デフォルトの構成では、“ example_configs / ShapeExample.xml”
にあるConnextDDSのXML構成ファイルが使用されます。 参加者を作成します( MyParticipantLibrary ::Zero
)とリーダー( MySubscriber ::MySquareReader
)構成ファイルで定義されています。現在、JSON形式でのみ機能するため、“ data_format”
configは“ json”
に設定する必要があります 。
XMLで定義されたリーダーは、“ Square”
という名前のトピックをサブスクライブします。 RTIShapesデモのタイプを使用します。 Shapesデモのタイプは、色属性をキーとして使用するため、色属性はタグとして追加されます。デフォルトでは、測定名はサービス入力名の名前になります( dds_consumer
プラグインの場合)。別の測定名を使用する場合は、“ name_override”
で設定できます。 構成。
この構成をテストするには、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]]
フィールド="x"
dest ="y_trans"
[[processors.rename.replace]]
フィールド="y"
dest ="x_trans"
これらは、TelegrafとConnextDDSのプラグインの興味深い機能と内部の一部です。 DDSとInfluxDBを使用して時系列監視システムを構築するのに役立つことを願っています。
Telegrafエージェント用の最初のDDSプラグインに関する公式発表をここで読んでください。
例としていくつかの特定のプラグインを紹介しましたが、DDSシステムで動作するプラグインは他にもたくさんあります。 Connext DDSのプラグインを試すには、次のGitHubを確認してください。 https://github.com/rticommunity/telegraf
RTIラボからの最新の成果物がどのように気に入っているか教えてください。コメント、質問、または問題がある場合は、RTIコミュニティフォーラムにアクセスするか、GitHubで直接問題を作成してください。
モノのインターネットテクノロジー
- Connext DDSと産業用IoT:知っておくべき5つのこと
- ConnextDDSの最新のRTIパフォーマンスを発表
- DIY:HomeBrewの温度監視と規制
- 継続的な監視システムはあなたに適していますか?
- ITおよびOT向けのCiscoIntrosIoTリモートモニタリングソリューション
- IoTベースの環境監視システムはヘルスケア業界にとってどのように有益ですか?
- 資産状態監視のためのインダストリー4.0:重要性と利点
- IoTを活用したガス監視ソリューションで産業ニーズに対応
- IoTのピンチでミルク貯蔵を改善する:ミルクレベル監視システム
- 腐食性および爆発性液体のレベル監視ソリューション
- 中央コントローラーとリモート モニタリングによるエネルギー効率の最適化