"Детектор" черного экрана (Системный администратор): различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства. | У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства. | ||
== '''Причина''' == | == '''Причина''' == | ||
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать, но отображает только "Чёрный экран | В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать, но отображает только "Чёрный" экран.<br> | ||
Эта ситуация возникает из-за различных ошибок при запуске трансляции. Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить.<br> | Эта ситуация возникает из-за различных ошибок при запуске трансляции. Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить.<br> | ||
В качестве причины может выступать любое действие: | В качестве причины может выступать любое действие: | ||
Строка 17: | Строка 17: | ||
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.<br> | Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.<br> | ||
{{Note|Данный функционал не доступен пользователю в личном кабинете. Его необходимо включать отдельно.|warn}} | {{Note|Данный функционал не доступен пользователю в личном кабинете. Его необходимо включать отдельно.|warn}} | ||
=== ''' | === '''Принцип действия''' === | ||
У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.<br> | У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.<br> | ||
После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент». | После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент».<br> | ||
Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.<br> | Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.<br> | ||
После запуска детектора возможно получить два вида ответа: | После запуска детектора возможно получить два вида ответа: | ||
Строка 27: | Строка 27: | ||
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту. | Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту. | ||
{{Note|Указанная почта должна быть привязана к серверу.|warn}} | {{Note|Указанная почта должна быть привязана к серверу.|warn}} | ||
=== ''' | === '''Подготовка ''' === | ||
Системный администратор должен настроить серверное приложение по двум параметрам: | |||
* Запуск детектора "чёрного" экрана | * Запуск и функционирование детектора "чёрного" экрана | ||
* Настройка отправки письма с ошибкой на почту | * Настройка отправки письма с ошибкой на почту | ||
=== '''Подготовка ''' === | |||
Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо. | Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо. | ||
Для проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. В идеале на почту должно придти сообщение с оповещение о проблеме. Впоследствии системный администратор должен принять меры для устранения проблемы. | Для проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. В идеале на почту должно придти сообщение с оповещение о проблеме. Впоследствии системный администратор должен принять меры для устранения проблемы. | ||
там показано как можно отключить функционал и также посмотреть для каких компаний он включен. | там показано как можно отключить функционал и также посмотреть для каких компаний он включен. | ||
Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве. | Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве. | ||
Строка 87: | Строка 86: | ||
Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции [[Настройка отправки писем через серверное приложение SmartPlayer]].<br> | Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции [[Настройка отправки писем через серверное приложение SmartPlayer]].<br> | ||
{{Note|При получении сообщения о проблеме на почту, невозможно напрямую из этого уведомления сделать какие либо действия. К примеру «перезагрузка экрана».|warn}} | {{Note|При получении сообщения о проблеме на почту, невозможно напрямую из этого уведомления сделать какие либо действия. К примеру «перезагрузка экрана».|warn}} | ||
=== '''Дальнейшие действия''' === | |||
В данной ситуации обязательно должен быть задействован компетентный человек, т.е. системный администратор.<br> | В данной ситуации обязательно должен быть задействован компетентный человек, т.е. системный администратор.<br> | ||
Он сможет корректно определить причину и предпринять конкретные действия для устранения ситуации. Так как проблемы могут быть как с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию). | |||
== '''Итоговый результат''' == | === '''Итоговый результат''' === | ||
Наличие детектора | Наличие детектора позволит контролировать проблемную ситуацию с "Чёрным" экраном и оперативно работать с её исправлением. Это актуально как для нас, так и для сотрудников клиента. | ||
{{Note|Для перезапуска трансляции надо зайти в лк и перезапустить все вручную|warn}} | {{Note|Для перезапуска трансляции надо зайти в лк и перезапустить все вручную|warn}} | ||
{{Note|Детектор черного экрана на данный момент работает только на Android версии 1.63.1|warn}} | {{Note|Детектор черного экрана на данный момент работает только на Android версии 1.63.1|warn}} | ||
== '''Итоговый результат''' == | |||
Команда SmartPlayer и команда сотрудников со стороны клиента будет своевременно оповещена о проблеме и сможет оперативно ее решать с помощью указанных в статье шагов. <br> | |||
Рядовой пользователь минимизирует негативный опыт взаимодействия с нашим продуктом. |
Версия от 14:37, 8 августа 2023
Описание ситуации
У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства.
Причина
В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать, но отображает только "Чёрный" экран.
Эта ситуация возникает из-за различных ошибок при запуске трансляции. Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить.
В качестве причины может выступать любое действие:
- Пользователь загружает видео, но это видео использует неподдерживаемый системой кодек. Тогда видео просто не может запуститься и показывает черный экран.
Бывает проблемы, связанные с клиентским приложением (баг), и из-за этого начинаются проблемы с трансляцией.
- Пока есть наличие постоянной, стабильной сети – все работает отлично. Как только устройство теряет доступ к сети (по любой причине) – трансляция прерывается и появляется чёрный экран.
Систематичность проблемы
"Чёрный" экран очень несложно отследить и подтвердить визуально. В этом случае хорошо помогает личный кабинет.
Проблема ситуации в том, что он не несет в себе систематичности по времени и может появляться как раз в месяц, так и раз в несколько дней или часов.
Период появления черного экрана определяется опытным путём и подтверждает по факту у точки. Поиск причины проблемы перекладывается на плечи технических специалистов.
Концепт решения
Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.
Принцип действия
У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.
После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент».
Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.
После запуска детектора возможно получить два вида ответа:
- После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
- После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".
Промежуток для повторной отправки "ивента" составляет 10 секунд.
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.
Подготовка
Системный администратор должен настроить серверное приложение по двум параметрам:
- Запуск и функционирование детектора "чёрного" экрана
- Настройка отправки письма с ошибкой на почту
Подготовка
Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо. Для проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. В идеале на почту должно придти сообщение с оповещение о проблеме. Впоследствии системный администратор должен принять меры для устранения проблемы. там показано как можно отключить функционал и также посмотреть для каких компаний он включен. Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве. Его также можно выключить: документ по comand linet interface.
Тонкости и нюансы при работе функционала
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.
2. Актуально только при проигрывании видео. При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав, детектор не сможет сделать скриншот.
Исключения:
Скриншот доступен:
- Если приложение подписано «подписью разработчика» (уровень прав – Signage).
- Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки.
3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».
4. Информация от сервера к разработчикам отправляется через "ивент". Внутри отправленного «ивента» сервер ждет callback от разработчиков.
5. Тайм – аут “Callback” по умолчанию на сервере составляет – 30 секунд.
Реализация
Активация
По умолчанию детектор для всех компаний отключен на сервере, так как создает на него слишком большую нагрузку.
Алгоритм действия
Вся работа будет вестись в два этапа.
Первый этап - это запуск самого детектора.
При запуске детектора нужно использовать id компании, который указан в личном кабинете.
Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе.
Системному администратору нужно подключиться на сервер, через Command Line Interface (CLI).
При включении CLI сервер получает определенные данные для настройки:
Это:
- ID компании, для которой включаем детектор
- Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.
Например: передаем параметр "ANDROID" и мониторинг включается только для устройств "ANDROID".
- E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
- Указанное время хранения скриншотов (по умолчанию 3 дня)
Далее нужно перейти в серверное приложение и выполнить команду:
docker exec -it smartplayer_backend_i bash
На этом этапе попадаем в нашем контейнере с серверным приложением.
Следующей выполняем команду:
Enable screen - screen monitor
После очередного этапа система выдает вот такую строку:
Системное сообщение Input company ID and press Enter
Выполненная команда отобразит строку в которой просят ввести Id компании.
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y»
В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах.
Это делается с помощью команды:
Input_email and press enter
Также можно указать интервал с которым будут приходить скриншоты (например 1 минута) и применяем эту настройку через "Enter".
Далее в строке появляется статус - Company screen monitoring enabled. Это значит что функционал запущен.
Уведомления на почту
Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции Настройка отправки писем через серверное приложение SmartPlayer.
Дальнейшие действия
В данной ситуации обязательно должен быть задействован компетентный человек, т.е. системный администратор.
Он сможет корректно определить причину и предпринять конкретные действия для устранения ситуации. Так как проблемы могут быть как с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию).
Итоговый результат
Наличие детектора позволит контролировать проблемную ситуацию с "Чёрным" экраном и оперативно работать с её исправлением. Это актуально как для нас, так и для сотрудников клиента.
Итоговый результат
Команда SmartPlayer и команда сотрудников со стороны клиента будет своевременно оповещена о проблеме и сможет оперативно ее решать с помощью указанных в статье шагов.
Рядовой пользователь минимизирует негативный опыт взаимодействия с нашим продуктом.