Smarty

  1. Домой
  2. Документы
  3. Smarty
  4. Конфигурация и обслуживание Smarty
  5. Настройка статистики телесмотрения

Настройка статистики телесмотрения

Прежде всего необходимо поднять MongoDB-сервер, на котором будут храниться данные телесмотрения абонентов. Минимальная поддерживаемая версия MongoDB — 3.4.

Далее, в секции INSTALLED_APPS файла конфигурации Smarty необходимо добавить модуль viewstats, а также указать данные для подключения к поднятому серверу MongoDB:
MONGODB_HOST — Адрес сервера MongoDB, тип данных str;
MONGODB_PORT — Порт сервера MongoDB, тип данных int;
MONGODB_NAME — Название базы данных, тип данных str;
MONGODB_USERNAME — Имя пользователя для авторизации, тип данных str;
MONGODB_PASSWORD — Пароль для авторизации, тип данных str;
MONGODB_AUTH_METHOD — Метод авторизации (зависит от версии MongoDB), тип данных str;

И установить все недостающие миграции командой:

smarty_manage migrate --settings=settings.smarty

Пример конфигурации:

INSTALLED_APPS += (
    'viewstats',
    // ...
)

MONGODB_HOST = '127.0.0.1'
MONGODB_PORT = 27017
MONGODB_NAME = 'Test'
MONGODB_USERNAME = 'Test'
MONGODB_PASSWORD = 'Password'
MONGODB_AUTH_METHOD = 'SCRAM-SHA-1'

Для того, чтобы абонентские устройства начали отправлять статистику на сервер, необходимо включить ее отправку в панели администрирования на странице «Настройки STB и приложений» (чекбокс «Включить сбор статистических данных на сервер Smarty»)

Настройка модуля сбора статистики по абонентам

Для отображения информации внутри вкладки «Динамика абонентов» в секции INSTALLED_APPS в файле конфигурации помимо модуля viewstats необходимо добавить модуль smartystats .

После добавления модулей необходимо установить все недостающие миграции командой

smarty_manage migrate --settings=settings.smarty

И настроить корректную работу management-команд cache_max_online и save_stats.

Команда cache_max_online отвечает за обновление информации о максимальном числе абонентов онлайн для статистики. Можно запускать с любой регулярностью, но не реже, чем раз в сутки.

Команда save_stats отвечает за сбор и хранение статистики по каждому клиенту для виджетов на экране «Динамика абонентов». Можно запускать с любой регулярностью, но не реже, чем раз в сутки.

Для работы с большим объемом данных рекомендуется настроить асинхронное выполнение задач через RQ.
Подробнее об асинхронном выполнении задач можно ознакомиться в разделе «Масштабирование и отказоустойчивость» — «Настройка асинхронного выполнения задач через RQ (Redis Queue)».

Дополнительные команды для сбора статистики

Сбор дополнительной статистики для отчета по количеству пользователей

smarty_manage collect_daily_stats --settings=settings.

Данная команда собирает информацию, которая используется в отчетах по оплатам, а также в графиках «Оплаты сегодня» и «Абоненты от которых поступила оплата» (и части других данных статистики) экрана «Динамика абонентов». Команду необходимо выполнять каждый день в начале дня (время записи сохраняется в UTC+0).

Кеширование данных для графиков «Динамики абонентов»

smarty_manage cache_customers_dynamic --settings=settings.

Команду рекомендуется запускать раз в час. Для небольших баз графики будут работать быстро и корректно и без данной команды. При первом запуске команда может выполняться долго (зависит от количества аккаунтов, транзакций и тарифов) из-за того, что будут рассчитываться данные за весь прошлый месяц. При повторном запуске будут рассчитываться данные только за последний день или час (данные повторно не кешируются).

Дополнительные параметры команды:

--client_id – список идентификаторов клиентов, через запятую, для которых нужно провести кеширование. Если в аргумент ничего не передано, то кешируются данные для всех клиентов.

Создание умной сортировки каналов

smarty_manage create_channel_sorting_by_popularity --settings=settings.

При выполнении данной команды создается сортировка каналов на основании статистики телесмотрения, исходя из указанных параметров в команде.

Необходимые параметры для выполнения данной команды:

--client_id – список идентификаторов клиентов, через запятую, для которых нужно провести кеширование;

--days_number — количество дней, в течение которых стоит учитывать телесмотрение;

--criterion — характеристика, по которой оценивать популярность. Возможные значения:
watch_time — по общему времени просмотра канала;
watch_sessions — по количеству включений канала;
average_watch_time — по среднему времени просмотра канала;
median_watch_time — по медианному времени просмотра канала.

Дополнительные параметры команды:
--devices — список устройств, для которых стоит учитывать статистику телесмотрения (передаются системные имена устройств, по умолчанию — все);
--tariffs — список тарифов для которых стоит учитывать статистику телесмотрения (передаются идентификаторы тарифов, по умолчанию — все);
--accounts_active — учитывать статистику только с активных аккаунтов.

Создание подборки популярных телеканалов

smarty_manage create_channel_selection_by_popularity --settings=settings.<settings name>

Параметры:
--client_id – данный параметр обязателен и определяет идентификатор Client, для которого будет создана подборка.
--days_number – данный параметр обязателен и определяет количество дней, в течение которых стоит учитывать телесмотрение.
--criterion – данный параметр обязателен и определяет характеристику, по которой будет создана подборка. Возможные значения: watch_time (общее время просмотра каналов), watch_sessions (количество сессий просмотра каналов), average_watch_time (среднее время просмотра каналов), median_watch_time (медианное время просмотра).
--devices – параметр для создания подборки по определенным устройствам (по умолчанию подборка создается по всем устройствам).
--accounts_active – параметр позволяет создать подборку только на основе активных аккаунтов. Возможные значения: true, false. По умолчанию false.
--tariffs – выборка определенных тарифов для создания подборки (по умолчанию учитываются все тарифы).
--selection_size – параметр определяет размер создаваемой подборки. При отсутствии информации о достаточном количестве каналов происходит добавление каналов без статистики до нужного количества. По умолчанию 17.

Пример использования команды:

Создание для Client=1 подборки недельных популярных каналов по времени просмотра:

smarty_manage create_channel_selection_by_popularity --client_id=1 --days_number=7 --criterion=watch_time --settings=settings.<settings name>

Создание подборки популярных телепередач

smarty_manage create_epg_selection_by_popularity --settings=settings.<settings name>

Параметры:
--client_id – данный параметр обязателен и определяет идентификатор Client, для которого будет создана подборка.
--days_number – данный параметр обязателен и определяет количество дней, в течение которых собирается информация по передачам.
--devices – параметр для создания подборки по определенным устройствам (по умолчанию подборка создается по всем устройствам).
--tariffs – выборка определенных тарифов для создания подборки (по умолчанию учитываются все тарифы).
--selection_size – параметр определяет размер создаваемой подборки. При отсутствии информации о достаточном количестве передач происходит добавление передач без статистики до нужного количества. По умолчанию 17.
--categories – параметр для создания подборки по определенным категориям каналов (по умолчанию учитываются все категории), id категорий можно увидеть в разделе Настройки контента — Категории ТВ.
--channels – учитываются передачи только тех каналов, id которых указаны в данном параметре.
--selection_name – название подборки. Если не указано, то подборка будет иметь название «Название подборки $days_number ($selection_size)».

Пример использования команды:

Создание подборки 27 популярных передач для Client=1 за 30 дней с категориями «Детские» (id=2) и «Познавательные» (id=7):

smarty_manage create_epg_selection_by_popularity --selection_name="Детские познавательные" --client_id=1 --days_number=30 --selection_size=27 --categories=2 --categories=7 --settings=settings.<settings name>