intdash Edge Agent 2とは¶
intdash Edge Agent 2は、intdashサーバーとの間で時系列データの送受信を行うエージェントソフトウェアです。 エッジデバイス(Linux PC)にインストールして使用します。
intdash Edge Agent 2を使って時系列データをintdashサーバーに送ることで、intdashサーバーにそのデータを「計測(measurement)」として保存することができます。
intdash Edge Agent 2でできること¶
intdash Edge Agent 2は以下を行います。
iSCP (intdash Stream Control Protocol)を使って、時系列データをサーバーにストリーミング送信する、およびサーバーからストリーミング受信する(intdashサーバーのリアルタイムAPIを使った送受信)
サーバーにデータをストリーミング送信する前に、データをフィルタリングまたはサンプリングする
ネットワークの切断により送信できなかった時系列データを、自動的に後から送信する(intdashサーバーのREST APIを使った遅延アップロード)
重要
intdash Edge Agent 2は、従来提供していた旧intdash Edge Agentを使いやすくリニューアルした新しいプロダクトです。 旧intdash Edge Agentとは操作や設定の方法が異なり、設定ファイルのフォーマットに互換性がない点にご注意ください。
intdash Edge Agent 2の構成¶
intdash Edge Agent 2の本体は、ストリーミング送受信を行うストリーマー(intdash-agent-streamer)と、遅延アップロードやローカルでの時系列データの管理を行うデーモン(intdash-agentd)です。
ユーザーは専用コマンド( intdash-agentctl
)を使ってこれらを操作します。
ストリーマー、デーモン、コマンドの機能はそれぞれ以下のとおりです。
ストリーマー(intdash-agent-streamer)¶
ストリーマー(intdash-agent-streamer)は、intdashサーバーとの間でリアルタイムAPI(iSCP)によるリアルタイムストリーミング送信または受信を行うプログラムです。 ストリーマーの起動から終了までの時系列データが、intdashの1つの計測として扱われます。 リアルタイムに送信できなかった時系列データはintdash-agentdに渡され、遅延アップロードされます。
また、ストリーマーでは、時系列データに対するフィルタリング/サンプリング処理も行うことができます。
ストリーマーの起動はintdash-agentctlコマンドを使って行います。
注釈
intdashにおいて、リアルタイムAPIを使ってエッジからサーバーにデータを送信する経路を「アップストリーム」と呼び、逆に、サーバーからエッジにデータを送信する経路を「ダウンストリーム」と呼びます。 単に「ストリーム」と呼んだ場合は、アップストリームまたはダウンストリーム双方のことを指します。
デーモン(intdash-agentd)¶
intdash-agentdは、遅延アップロード、設定の管理、ローカルでの時系列データの管理を行います。
ネットワークの切断や帯域不足によりストリーマーがサーバーに送信できなかった時系列データは、後からintdash-agentdによりアップロードされます(遅延アップロード)。
ユーザーがintdash-agentctlコマンドを使ってintdash Edge Agent 2の設定を変更すると、その設定はintdash-agentdによりファイルシステム上に保存されます。
intdash Edge Agent 2における時系列データの管理は、intdsah-agentdによって行われます。
インストールされた直後の設定では、エッジデバイスが起動するとintdash-agentdは自動的に起動されます。
コマンド(intdash-agentctl)¶
intdash-agentctlは、前述のストリーマーやデーモンを操作するためのコマンドです。
以下の構文で使用します。
intdash-agentctl <command> [<command_options>] [<arguments>...]
例えば、 intdash-agentctl config connection --get
を実行すると、intdash-agentdが管理しているconnectionの設定値が返されます。
また、 intdash-agentctl run
を実行すると、現在の設定に従ってストリーマーが起動されます。
詳細については、 intdash-agentctlコマンド を参照してください。
デバイスコネクター¶
外部デバイス(データを生成するセンサー、または、制御信号を受けて動作するアクチューエーターなど)との間でデータをやり取りするには、外部デバイスとintdash Edge Agent 2の間を仲介するソフトウェアが必要です。 このソフトウェアを「デバイスコネクター」と呼びます。
デバイスコネクターの機能¶
デバイスコネクターは、intdash Edge Agent 2と同じエッジデバイスにインストールして使用します。以下のような機能を担います。
データをサーバーに送信する場合(アップストリーム): 外部デバイスからデータを受け取りintdash Edge Agent 2に渡す。
逆に、データをサーバーから受信する場合(ダウンストリーム): intdash Edge Agent 2からデータを受け取り、外部デバイスに渡す。
デバイスコネクターとintdash Edge Agent 2の間のデータの受け渡しには、Agentにより作成されるFIFO(名前付きパイプ)を使います。
付属デバイスコネクターと独自デバイスコネクター¶
intdash Edge Agent 2パッケージをインストールすると、依存パッケージとして、アプトポッド製デバイスコネクターdevice-connector-intdashがインストールされます。
注釈
本ドキュメント内で、「付属デバイスコネクター」は、device-connector-intdashを指します。
付属デバイスコネクターを使用すると、アプトポッド製ペリフェラル製品(CAN-USB Interface、ANALOG-USB Interface等)からのデータ取得、カメラからのH.264やJPEG形式での動画取得、GPSデバイスからのNMEAメッセージの取得などを行うことができます。
付属デバイスコネクターを使用する場合は、取得するデータに応じて適切な設定を行う必要があります。 付属デバイスコネクターの設定方法については 付属デバイスコネクターの使用 を参照してください。
付属デバイスコネクターが対応していないデータやデバイスを扱いたい場合は、独自のデバイスコネクターを開発することで対応できます。デバイスコネクターの開発には、デバイスコネクター開発用フレームワーク「Device Connector Framework」を使用することができます。 詳細については、「intdash Edge Agent用Device Connectorデベロッパーガイド」を参照してください。
注釈
device-connector-intdashパッケージには、パイプライン設定ファイルのサンプルも含まれます。
パイプライン設定ファイルのサンプルは、 /etc/dc_conf
ディレクトリにインストールされます。