Principles and Algorithms

The principle of SmartCARE operation is described in 4 stages:

  1. Data acquisition;
  2. Data processing;
  3. Saving results;
  4. Statistics output (displaying in Care UI and export to external systems).

A detailed description of each step is provided in the subtopics:

  • Data Acquisition
  • Subscriber Devices
  • Streaming Servers
  • Content Storage Servers
  • Other Hardware Nodes of the Operator Platform
  • Edge Routers
  • Storing Data
  • Data Aggregation
  • Displaying Current / Accumulated Statistics
  • Exporting Data to External Systems

Data Acquisition 

Based on the data received from SmartCARE clients, SmartCARE allows you to monitor the performance of the most critical IPTV/OTT platform nodes. Data collection from different types of SmartCARE clients is performed in appropriate methods, which is described below.

Subscriber Devices

Most modern subscriber devices operating in IPTV / OTT networks interact with streaming servers via MPEG-DASH, HLS, HDS and Smooth Streaming protocols. All of these protocols are based on HTTP Protocol, allowing you to organize an adaptive video/audio broadcast using standard web servers.

SmartCARE allows you to monitor the status of current client sessions (in the Care UI “Sessions” menu), and also performs a minute slices of the accumulated data, presenting them as various metrics in the “Quality Monitoring” section.

The collection of data on the subscriber devices’ status and subscriber actions is performed through the analysis of special HTTP GET requests, proxied by the streaming servers to the SmartCARE server.

This data is received by the Collector module (namely, its submodule collector-http) implementing the following interface: accept the request → create or update a session (data object in the mongoDB clSession collection) → create a minute aggregate (data object in the mongoDB clMinuteAgg collection) → save to DB.

For a more detailed description of data collection and aggregation algorithms see below.

The list of the subscriber device events transmitted to SmartCARE for analysis is specified in the “Client Events for Analysis” section.

SmartCARE supports the following subscriber devices:

Devices with SmartTUBE Client UI installed:

  • TV set-top boxes (Linux / Android based STBs);
  • Android / iOS smartphones and tablets;
  • SmartTV (Samsung, LG, Android TV).

Other devices:

  • Any 3rd-party STBs, devices or applications capable of transmitting data using the SmartCARE API.

For a description of the data transfer format from subscriber devices to the SmartCARE server, see the “SmartCARE. Subscriber Devices API” document.

Streaming Servers

The operation parameters of the streaming servers are received by the Collector module in the form of two types of data:

  • Streaming servers’ syslog data, transmitted as UDP streams.
    The data is received by the Collector module (namely, its submodule collector-nginx) and is used to calculate streaming quality indicators and various metrics displayed in the “Quality monitoring” and “Sessions” sections. For more information, see the “Metrics, Indicators, Reports” section.
  • Data from Zabbix agents on the streaming servers installed.
    Allow to monitor parameters such as CPU load, network interface usage and inbound/outbound bitrate (displayed in the Care UI “Streaming servers” section). To collect data the Collector module (namely, its submodule zabbix-checker) every minute initiates the Zabbix agents polling with addresses specified in its configuration file. Received information is stored in mongoDB. For more information about metrics based on Zabbix data, see the “Metrics, Indicators, Reports” section.
    Note: Theoretically, Zabbix agents can be installed not only on streaming servers, but also on any other hardware system, involved in the IPTV / OTT services implementation, the performance of which also needs to be monitored. The parameters of such systems can be monitored in the Care UI “Streaming servers” section with filtering by server name.
Streaming Servers Data Collection and Recording Algorithm
  1. UDP packets (nginx log entries) are received in batches every N seconds (configurable parameter).
  2. A batch represents all log entries received in a period and structured into an object using regular expressions.
  3. The batch is divided and grouped into pairs “Subscriber (MAC address, IP address) — Data list (date/time, bitrate, chunk size, viewed channel, etc.).”
  4. When the following batch is received, its data are distributed into the Data list of the appropriate Subscriber. Thus, the data grouped by Subscriber are accumulated.
  5. After each following batch is received, the following check within the Data list is performed: if the entries with different date / time (rounded to a minute) are received, then the data with the earlier minute is marked ready to be stored, and the data with the later minute continue to accumulate.
  6. Data, ready to be saved, is transferred to the per-minute aggregator.
  7. Data aggregation is performed with a delay (about 2–3 minutes, configurable), because nginx sends data with a delay sometimes.
  8. Aggregated data is stored in the mongoDB database.
  1. Once a minute, Collector polls Zabbix agents (installed on the streaming and recording servers) on the bandwidth and traffic of individual network interfaces, CPU utilization, etc.
  2. The input / output bitrate of the individual interfaces is calculated by the delta between two minutes.
  3. Minute data along with the server name is recorded in the mongoDB database.

The data from the recording servers are collected by methods similar to streaming servers. Sending UDP data processed by SmartCARE is organized using the SmartCARE API (see the “SmartCARE. API Reference” document). If the operator uses SmartLabs SmartMEDIA as the content delivery system, the corresponding configuration of the recording server (SmartMEDIA Conveyor) is made by contractor as part of the initial commissioning work. Metrics based on recording servers data are displayed in the “Input Streams” section. For details, see the “Metrics, Indicators, Reports” section.

Content Storage Servers

The collection of data on the content storage servers (VoD and/or nDVR) status can be implemented using Zabbix agents. Such information is displayed in the “Streaming servers” section when filtering by server name.

Other Hardware Nodes of the Operator Platform

The operator platform may include a number of additional services operating on independent physical machines. An example would be the playlist generation servers, PVR archive creation servers, load balancers, and others. Their performance can be monitored in a single Care UI interface using the Zabbix agents.

Edge Routers

The quality of OTT services largely depends on the data routing between streaming servers and subscriber devices. The network topology between them can include several autonomous systems (AS), each of which has a set of internal / external routing rules with individual characteristics of interaction with neighboring AS. Since a significant amount of errors occurs due to failures in one of the segments of the “streaming server – subscriber” chain, the ability to track data routes allows you to quickly identify the problem AS, its operator and further actions to resolve the problem.

The BGP module collects and processes data about autonomous systems using the capabilities of edge routers and the Border Gateway Protocol.

BGP Data Collection and Recording Algorithm
  1. The streaming server sends the subscriber device IP to the Collector in each UDP message.
  2. Collector requests the BGP module for information about the AS chain between the streaming server and the subscriber device.
  3. The BGP module makes a corresponding request to the edge router with which the streaming server interacts.
  4. After receiving the answer, Collector saves the last and second-to-last AS for each session in the mongoDB database.
  5. If the last and second-to-last AS were changed during the session, the corresponding entry in the database is made.

When the subscriber device is authorized on the SmartTUBE SDP server, certain information about the subscriber is requested from the OSS/BSS system. Such information can be the subscriber ID, the device connection address, its type, etc. Then these parameters are displayed in the relevant Care UI sections for a quick search for subscriber information in the OSS / BSS system.

Storing Data

Every minute Collector transfers accumulated information to the mongoDB database. This information can be divided into 5 groups by type:

  • Streaming servers’ sessions — UDP data from nginx streaming servers;
  • Recording servers’ sessions — UDP data from incoming streams recording servers (SmartMEDIA Conveyor (Recorder));
  • Subscriber devices’ sessions (client sessions) — data received within HTTP GET requests to streaming servers from subscriber devices;
  • Zabbix data — Zabbix agents’ data collected every minute;
  • BGP data — Autonomous systems data collected from edge routers;
  • OSS/BSS data — data requested from OSS/BSS systems.

The data representation in mongoDB is described in the section “mongoDB Database Structure”.

Data Aggregation

Aggregation means here the process of data consolidation by client sessions stored in the mongoDB database for a certain period — 1 hour, 1 day, 1 week and 1 month. The consolidation result is saved in the PostgreSQL database and can be used both by the SmartCARE system (displayed in the “SDP Reports” section of the Care UI) and by third-party monitoring systems (for example, the reporting system of the SmartLabs SmartTUBE middle-platform).

The data representation in PostgreSQL is described in the section “PostgreSQL Database Structure“.

Displaying Current / Accumulated Statistics

Direct monitoring of the current streaming parameters is performed in the Care UI web interface, compatible virtually with all major web browsers.

Image1

SmartCARE user interface — Care UI

In the left part there is the main menu with sections of metrics, reports, indicators; in the central part — information on them in the form of graphs, tables, indicators and charts; in the right — the filter panel.

Section

Description

DASHBOARDS

Custom toolbar. Allows you to add any metrics and indicators for quickly monitoring of the most critical streaming parameters.

SDP REPORTS

Table reports on watching TV channels for the selected period: number of viewers, viewing time, channel rating, etc. Ability to select the period of data aggregation and export the report to CSV.

SESSIONS

Information on current sessions (unicast and multicast), subscriber devices and subscriber actions in real time.

QUALITY MONITORING

Streaming quality metrics based on data from subscriber devices and streaming servers (every minute data slice): number of sessions, number of bitrate switchings, subscriber device CPU load, metadata / chunk download errors, etc.

STREAMING SERVERS

Streaming servers’ operation metrics (every minute data slice): incoming / outgoing bitrate, network interfaces usage, system CPU IOWait parameter.

INPUT STREAMS

Quality metrics for incoming TV streams on recording servers (every minute data slice): number of errors, average bitrate.

SETTINGS

User management and statistics of SmartCARE clients data collection.

Information for table reports “SDP Reports” is requested by Care UI directly from the PostgreSQL database, while data for other metrics and indicators are requested from the mongoDB database through REST API server. The REST API server responses are returned to the Care UI in JSON format.

The relationship between Care UI metrics, indicators, reports and analyzed events on SmartCARE clients, as well as algorithms for their calculation are given in the “Metrics, Indicators, Reports” section.

Exporting Data to External Systems

In addition to the Care UI web interface and the SmartLabs SmartTUBE platform reporting system, access to statistics accumulated in the PostgreSQL database can be organized for third-party monitoring systems. A description of the data stored in the database is given in the “PostgreSQL Database Structure” section.

CONTENTS
Sign-in
Sign-in with your SmartLabs Support Portal account credentials to see non-public articles.