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 )を使ってこれらを操作します。

../_images/intdash-edge-agent.svg

図 1 intdash Edge Agent 2と外部デバイス、intdashサーバー

ストリーマー、デーモン、コマンドの機能はそれぞれ以下のとおりです。

ストリーマー(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 ディレクトリにインストールされます。