# Features

This section briefly describes currently implemented features. For details on a certain feature, follow detailed corresponding description page.

Features planned to be implemented in future releases are listed in section Roadmap.

## Deploy

There are multiple options to install and run Industrial Data Collector:

- using Docker image

- portable: using distribution package (zip file) for Windows or Linux

- installer for Windows

- Kafka Source Connector packaged as fat JAR file (for use cases when the destination is Apache Kafka / Confluent / Redpanda).

For details please refer the section Deploy.

## Activate

Starting from version 0.7.0, Industrial Data Collector requires activation using software license key (free for Community and Academic Editions). For instructions on how easily this can be done, please refer to section Activate.

## Configure

- Web GUI

  Web based GUI is provided to edit OPC UA Server connection settings, browse server address space, modify data collection parameters such as publishing interval, sampling rate, deadband, queue size.

  Only authenticated and authorized users can view and change configuration settings.

  Communication with configuration backend server can be established over secured connection (https protocol is supported).

- Bulk configuration.

  Import and export of configuration settings from/to CSV files using SQL server tools is possible.

  Another option is to use REST API. For more details about this option please contact Support.

## Collect

Industrial Data Collector can connect to OPC UA Servers and collect data for configured variables using subscriptions and monitored items mechanizm. Additionally, values can be read from the server by periodical `Read` requests.

Variable values can by scalar or arrays. As well as complex data type values can be read and decoded dynamically.

To serve requests coming from Grafana `SimpleJson` or `Infinity` plugin, it can also retrieve real time data using `Read` requests, as well as can read historical data using `HistoryRead` requests. How values are retrived to serve requests coming Grafana, depends on the value if the `Read Type` column of the `Logged Variables` table.

Some highlithgs of OPC UA connectivity features are listed below:

- `opc.tcp` protocol with binary encoding.

- None-secure and secure connections.

- OPC UA Session’s user authentication: identity token types `UserName/Password` and `Anonymous` are supported.

- Collection parameters are configurable through Web GUI. To speed-up the configuration process, variables can also be discovered and selected automatically following logic defined in custom Python scripts. For details please refer the section Auto-discovery and selection of variables.

Tip

To collect data from wide range of devices that do not support OPC UA, use `DeviceGateway` by our partner Takebishi: https://onewayautomation.com/devicegateway/

Tip

If you need to collect data from classic OPC DA Servers, it is possible too, using third party protocol converter applications, like Matrikon OPC UA Tunneller.

## Store and Forward

Once collected, data is temporarily stored in the persistent file-based Local Storage, and then forwarded to the destination time-series database. This provides guaranteed delivery of data even in cases of long connection interruptions with the time-series database.

For the list of supported time-series databases and on information how to install and configure them refer the section Time-Series Databases.

## Visualize

To visualize real time or historical data, open source visualization tool `Grafana` can be used.

## Analyze

Once stored in persistent storage, data can be analized by using queries. Query language depends on type of selected time-series database: for PostgreSQL/TimescaleDB it is standard SQL, for InfluxDb and Apache Kafka - their own query languages.

## High Availability

Starting from the version 4.2.0, the Industrial Data Collector supports High Availability feature. Two or more instances of the application can run as a cluster of high availability nodes. Each node runs an instance of the application. Only one of the instances, which is in the Active mode, connects to OPC UA Servers and collects data. Other instances run in Standby mode, and do not connect to OPC UA Servers. If Active mode fails, then another node becomes Active and continues collecting data.

> Tip

> To learn more about the HA feature watch this demonstration video: https://youtu.be/ND5PoKYOgc4

## Troubleshoot

- Connection errors reported in detail with popup messages on GUI, while you try to browse OPC UA Servers.

- Application level and OPC UA SDK level log files are available via Web GUI. Note that only the latest files are available via Web GUI though. To get later log files, access to the folder `./data` under the work directory of the application is required.

- Latest values, timestamps and status codes returned for monitored variables by OPC UA Servers are displayed in Web GUI.

- Status of the connection with the time-series database and metrics on number of collected values, number of stored in the Local Storage and forwarded to the destination database values, and other useful information can be viewed in the `Statistics` dialog window.

## Target Platforms

The Industrial Data Collector is cross-platform application, and can be built for variety of targets. Currently distribution packages are created for and tested on:

- Windows 10/11

- Ubuntu 22.04 TLS

- Oracle Linux 8

- PCs with 64 bit ARM CPU - Siemens IoT2050, Raspberry Pi

- Confluent Platform and Redpanda - by implementing Kafka Source Connector interface.

For other target platforms please contact Support.

## More features are coming

For features planned or considered to implement in the next versions please refer section Roadmap