Concepts
1. System Overview
Friendly QoE Monitoring is a part of the Friendly IoT Platform, which graphically represents monitoring data of various types of IT equipment by means of its web UI. It is capable of measuring a quality of service of Data, VoIP and IPTV services at the subscriber’s endpoint, and enables monitoring of single devices or groups of devices.
The system consists of:
-
Management Portal — Responsible for definition and activation/deactivation of monitoring
-
Device (CPE) — Responsible for delivery of monitoring data to IoT ACS
-
IoT ACS (or Cluster) — Responsible for collection and storage of monitoring data
-
QoE Monitoring — Responsible for collection, organization, storage and presentation of monitoring data
QoE Monitoring can operate with a single IoT ACS node or an IoT ACS cluster (multiple nodes behind a load balancer).
2. Monitoring Types
There are three types of monitoring:
2.1. Dynamic Monitoring
Monitoring of a dynamic list of devices per ProductClassGroup (a unique combination of Manufacturer + ProductClass). Any new device that connects to the IoT ACS while a dynamic monitor is active for the same ProductClassGroup will be monitored automatically.
2.2. Dynamic Monitoring Based on Group Filter
Monitoring of a dynamic list of devices per ProductClassGroup and a custom group filter (e.g., firmware version). Only new devices that match the group filter criteria will be added to monitoring automatically.
2.3. Standard Monitoring
Monitoring of a fixed list of devices. Only the devices selected at the time of monitor activation will be monitored. New devices connecting to the IoT ACS will not be added automatically.
|
Each device can participate in any number of monitors. If the same parameter is monitored by both a dynamic and a fixed monitor and one is deactivated, monitoring continues via the remaining monitor. The resulting monitoring interval equals the interval of the last activated monitor. |
3. Monitor Activation & Deactivation
3.1. Activation
-
A monitor is activated via the Management Portal (Activate or Save and Activate)
-
Each relevant device receives a
QoE: set parameter notificationtask for monitored parameters (passive notification) -
Each relevant device receives a
QoE: set periodic inform intervaltask, setting the PeriodicInformInterval to the monitoring interval
4. Data Collection & Processing
4.1. Data Flow
-
Device reports data — Devices send Inform messages to IoT ACS at configured intervals
-
IoT ACS collects data — Extracts monitored parameter values from Inform messages; sends Get Parameter Values for missing data
-
IoT ACS stores data — Writes data to CSV files and database tables
-
QoE Monitoring processes data — Reads data from IoT ACS, calculates KPI values, stores results in ClickHouse
-
QoE Monitoring presents data — Displays KPI graphs, alarms, and reports via the web UI
4.2. Device Data Collection Modes
Devices fall into three categories based on passive notification support:
| Device Type | Behavior |
|---|---|
Supports passive notification |
Device includes changed parameter values in Inform messages. IoT ACS extracts data directly. |
Does not support passive notification |
IoT ACS sends Get Parameter Values on each PeriodicInformInterval. Device model must be listed in |
Partial notification support |
Device includes some parameters in Inform. IoT ACS sends Get Parameter Values for missing parameters. |
5. ClickHouse Database Structure
The ClickHouse database (ftacs_qoe_ui_data) stores all time-series data. Tables are organized by function. For detailed column descriptions, engine types, and partitioning, see Database > ClickHouse.
5.1. Monitoring Data
| Table | Description |
|---|---|
|
Raw parameter values received from devices (timestamp, serial, name_id, value, periodic, location_id, orig_name_id) |
|
Calculated KPI values displayed on graphs (timestamp, serial, kpi_id, value, periodic, kpi_value_num, name_id) |
|
KPI data points that triggered an alarm, with severity level and group_id |
|
Monitor start/stop timestamps per device and parameter |
|
User action audit log (username, activity type, session, description) |
|
Database schema version tracking |
5.2. Alarm Data
| Table | Description |
|---|---|
|
Single device alarm history (threshold ID, serial, KPI, severity level, state) |
|
Devices participating in group alarms (group_id, kpi_id, serials array, count) |
5.3. Diagnostic Data
| Table | Description |
|---|---|
|
Upload/Download speed test results — FCC diagnostics (value, value_total, file_size, test_bytes, total_bytes, num_conn) |
|
IPPing diagnostic results — FCC diagnostics (success count, failure count, average response time) |
|
Trace route results with hop-by-hop details (error codes, host addresses, RTT times) |
|
UDP echo diagnostic results with individual packet data (send/receive timestamps, sequence numbers) |
5.4. Wi-Fi Data
| Table | Description |
|---|---|
|
Wi-Fi Neighboring Diagnostic results and channel change history (channel, changing state, threshold SSID/signal) |
|
Detected Wi-Fi channel collisions (SSID, channel, signal strength) |
|
Wi-Fi diagnostic task tracking (sent/completed timestamps, gpv_sent flag) |
5.5. User Experience Data
| Table | Description |
|---|---|
|
User experience host data (MAC, interface type, layer1/3, address, active status) |
|
User experience associated device data (MAC, RSSI, signal strength) |
|
Connected hosts data — ETL (MAC, IPv4/IPv6, connectivity type, SSID, BSSID, RSSI) |
|
Router device data — ETL (MAC, WAN IPv4/IPv6, SSIDs, BSSIDs, byte counters) |
5.6. Cached Data from Main DB
| Table | Description |
|---|---|
|
Device product data (serial, group_id, product_class, manufacturer). Engine: ReplacingMergeTree. |
|
QoE CPE data (serial, MAC, periodic, last connection). Engine: Join(ANY, LEFT, serial). |
|
Account information (location, telephone, user ID, coordinates, cust1-cust20). Engine: Join(ANY, LEFT, serial). |
|
Domain data (device ID, ISP ID, serial, ISP name). Engine: Join(ANY, LEFT, serial). |
5.7. Materialized Views
| View | Description |
|---|---|
|
Pre-aggregated KPI data in 5-minute intervals for Device Groups page (AggregatingMergeTree) |
|
Latest KPI value per device. Auto-updated on |
|
Latest raw parameter value per device. Auto-updated on |
|
Tables with |
6. Advanced Features
6.1. FCC Diagnostics
FCC diagnostics measure network throughput by running IPPing, Download, and Upload diagnostics on devices. Activated via Group Update from Management Portal with the Add results to monitoring data option.
Results are stored in ClickHouse tables (diag_speed_test, diag_ip_ping) and displayed as four KPI graphs:
-
DownloadDiagnostic — Download speed (Mbps)
-
UploadDiagnostic — Upload speed (Mbps)
-
IPPingDiagnostic — Average response time
-
SuccessCount — Ping success rate (%)
6.2. Wi-Fi Neighboring Diagnostic
Automatic Wi-Fi channel rescan, activated by monitoring the NeighboringWiFiDiagnostic.DiagnosticsState parameter. When channel collisions are detected and signal strength exceeds the configured threshold, IoT ACS initiates an automatic channel change.
Four KPI graphs are generated:
-
Wi-Fi collisions for 2.4GHz and 5GHz networks
-
Channel change history for 2.4GHz and 5GHz networks
7. Emergency QoE Stop
The emergency stop mechanism allows disabling QoE monitoring when the IoT ACS is overloaded. It is controlled via the force_qoe_stop.properties file placed in the IoT ACS configuration directory.
| Parameter | Effect when set to 1 |
|---|---|
|
Blocks QoE processing, truncates parameter cache, deactivates all monitors, stops data collection |
|
Blocks QoE processing, passes all requests to IoT ACS. No restart needed to resume. |
|
Truncates the |
|
Generates notification-off and PeriodicInformInterval-restore tasks. Requires monitor restart. |
|
Changes all monitors from Running to Not Active. Requires monitor restart. |
|
Limits stored Inform parameters to mandatory + whitelist only. No restart needed. |
|
Comma-separated list of parameter names to preserve (used with |
|
The |