1. Introduction

This document describes how to use intdash Edge Agent (hereinafter referred to as Agent).

Important

  • This document is for general informational purposes only. Specifications in this document are subject to change without notice and are not guaranteed.

  • Screenshots used in descriptions are examples. Some displays or procedures might differ depending on your environment and application version.

Note

Company names, service names, and product names mentioned in this document are generally registered trademarks or trademarks of their respective owners. Trademark symbols "™" and "®" are omitted in the text, figures, and tables.

Attention

This document has been translated using machine translation services and may contain inaccuracies and translation errors. Please also refer to the official version in Japanese.

1.1. What is Agent?

Agent is agent software that sends and receives data to and from the intdash server.

The Agent can stream frequently occurring time series data to the intdash server with low latency. Data that could not be sent due to a failure such as a network line disconnection will be automatically retransmitted. This enables the data to be fully recovered to the intdash server.

1.2. Main features

  • Streaming time series data

  • Automatic retransmission of lost data

  • Filtering and sampling of time series data

  • Saving the acquired time series data as a dump file

1.3. System requirements

  • Supported platforms

    • Linux on AMD64 architecture

    • Raspbian on Raspberry Pi

    • NVIDIA L4T on NVIDIA Jetson

  • Minimum hardware requirements

    • Intel Atom processor E3815, 1.46GHz or higher

  • Recommended hardware requirements

    • Multi-core CPU

    • 2 GB or more memory

    • SSD

Important

If the amount of data is large and the CPU load is too high, data may be lost.

The guideline for the amount of data that can be processed without loss is as follows. (The following are approximate values that apply when you are using a device connector with a small processing load. The limit performance will increase or decrease depending on the processing load of the device connector.)

  • When using VTC 1910-S (Intel Atom E3815 1.46GHz)

    • Sending small data frequently: about 8B(bytes) / unit, 24000 units / second

    • Sending large data infrequently: about 0.98MB / unit, 10 units / second

  • When using Raspberry Pi 4 Model B

    • Sending small data frequently: about 8B(bytes) / unit, 100000 units / second

    • Sending large data infrequently: about 0.98MB / unit, 80 units / second

If you anticipate a heavy load on the CPU, we recommend that you perform test measurements in advance. After performing test measurements, execute the following command on the edge to check the messages in syslog.

$ cat /var/log/syslog | grep -e"ring is full" -e "data buffer is overflow" | grep -v PacketSender

If you see a message ring is full or data buffer is overflow in the syslog (except for the PacketSender message), some data has been lost between the device connector and the agent.

1.4. System configuration

The Agent consists of software modules: Device Connectors, a manager, and clients.

  • The Device Connector receives data from the device.

  • The manager performs various processes such as filtering and sampling.

  • The client sends the time series data to the intdash server.

../_images/04_system.png

1.4.1. Device connector

A Device connector is software for connecting various devices and the Agent.

The default Device Connector, the intdash-edge-logger, and 6 settings are installed with the Agent.

  • v4lh264

  • gstreamer_h264

  • mjpeg

  • nmea

  • socketcan

  • canopen

Configuration is required to use the Device Connector. See Settings for using the pre-installed Device Connector for instructions on how to configure the Device Connectors above.

Users can connect devices that are not supported by intdash-edge-logger by providing a new Device Connector. See Add your own Device Connector for information on how to add Device Connectors other than intdash-edge-logger.

Note

The word "logger" is sometimes used in configuration files, but "logger" refers to the Device Connector.

1.4.2. Plugin

A plugin is an internal software module that interfaces the Device Connector with the Agent. There are the following two types.

FIFO plugin

Sends and receives data between the Agent and a Device Connector via a FIFO (named pipe).

Status plugin

This plugin does not connect to a Device Connector, but collects status information.

Note

  • Plugins need to be specified in loggers[].details.plugin in the configuration file. See Device connector settings for more information.

  • The Device Connector intdash-edge-logger provided by Aptpod does not use the FIFO plugin. Therefore, when using intdash-edge-logger, it is not necessary to define plugin in the configuration file.

1.4.3. Manager

The manager is the software module at the center of the Agent. It manages the start and stop of other modules, aggregates the data collected from the Device Connectors, processes filtering and sampling, and exports RAW data.

1.4.4. Client

A client in the Agent is a software module responsible for communication between the Agent and the intdash server. A client is responsible for real-time transmission using intdash's Realtime API, transmission in high-efficiency format using intdash REST API, and retransmission.

Realtime client

Sends data in real time using intdash's Realtime API (WebSocket).

Bulk client

Sends data in bulk at regular intervals of several seconds using intdash's Realtime API (WebSocket).

Resend client

Resends the data at regular intervals that the Realtime and Bulk clients were unable to send. Both Realtime API (WebSocket) and REST API can be used to communicate with the intdash server.

Control client

Receives data in real time using intdash's Realtime API (WebSocket).