Analytics module

Install analytics module for SAYMON ISO image

By default, the analytics module used to determine splashes and predictions is not included in the SAYMON ISO image. To install the analytics module:

  1. Download analytics-create-and-run.sh script and place it in the file system on the virtual machine on which the SAYMON ISO image is installed.

  2. Run the script:

    $sudo ANALYTICS_BRANCH=x.y.z ./analytics-create-and-run.sh
    x.y.z - analytics module version compatible with your SAYMON version ;

To check whether the saymon-analytics container is up and running, use the command

$docker ps -a

Connect analytics module to SAYMON in configuration files

In order to connect the analytics module to SAYMON server, the SAYMON configuration files must be modified:

  1. To the section Server of the server configuration file /etc/saymon/saymon-server.conf add the following parameters:

    {
      ...
      "server": {
        ...
        "analytics_enabled": true, # enables analytics module
        "analytics_processes": 2 # the number of logical cores allocated for processing of analytics (by default all available system cores are used)
      }
    }
  2. In the client configuration file /etc/saymon/saymon-client.yaml set the parameter enableAnalytics to true:

    ...
    enableAnalytics: true
    ...
  3. Restart the SAYMON server:

    $service saymon-server restart

Analytics module monitoring

Logs of the saymon-analytics container can be used in order to monitor work of the analytics module. The steps are:

  1. Connect to the container with the command:

    $docker exec -ti saymon-analytics bash
  2. Open the log file:

    $tail -f /opt/analytics/analytics.log

Log file contains information about

  • the settings with which the module is started (the socket and the number of processes involved in the pool),

  • the processed metrics,

  • the results of processing metrics,

  • errors that occur during operation of the module.

Analytics module performance

Analytics for each object is carried out in a separate stream of calculations using one logical core of the system. All values of metrics of the same object are processed sequentially, which allows sequential update of the forecast model in accordance with the order of data receipt. As a rule, the performance of modern processors allows to process each incoming value in real time with the maximum frequency is equal to one metric value per second. However, on superheated or overloaded machines the performance of the cores can decrease, it leads to accumulation of tasks for the analytics module and increasing the reaction time of the system to new incoming data. To increase system performance in tasks with high frequency of incoming metrics, it is recommended to allocate one logical core for each object with analytics. If there are additional cores, the system can also use them for preprocessing analytic tasks, since locking on a predictive model takes only a fraction of the total processing time of an analytic task.