"Детектор" черного экрана (Системный администратор): различия между версиями

Материал из SmartPlayer
Нет описания правки
Строка 27: Строка 27:
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.
{{Note|Указанная почта должна быть привязана к серверу.|warn}}
{{Note|Указанная почта должна быть привязана к серверу.|warn}}
=== '''Принцип действия ''' ===
Сисадмин должен настроить на серверном приложение передачу письма. Системный администратор должен настроить серверное приложение по двум параметрам:
* Запуск детектора "чёрного" экрана
* Настройка отправки письма с ошибкой на почту
Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо.
Для проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. В идеале на почту должно придти сообщение с оповещение о проблеме. Впоследствии системный администратор должен принять меры для устранения проблемы.
там показано как можно отключить функционал и также посмотреть для каких компаний он включен.
Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве.
Его также можно выключить: документ по comand linet interface.
=== '''Тонкости и нюансы при работе функционала''' ===
=== '''Тонкости и нюансы при работе функционала''' ===
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.
1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка.
Строка 46: Строка 57:
При запуске детектора нужно использовать id компании, который указан в личном кабинете. [[File:ID компании.png|thumb|Расположение ID компании в личном кабинете |300px]]
При запуске детектора нужно использовать id компании, который указан в личном кабинете. [[File:ID компании.png|thumb|Расположение ID компании в личном кабинете |300px]]
Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе.
Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе.
Системному администратору нужно подключиться на сервер, через Command Line Interface (CLI).
Системному администратору нужно подключиться на сервер, через '''Command Line Interface (CLI)'''.<br>
Далее нужно перейти в серверное приложение и выполнить команду:"docker exec -it smartplayer_backend_i bash"<br>
<div style="border: 1px solid #888; padding: 10px; margin: 10px 0; background-color: #f9f9f9;">
При включении CLI сервер получает определенные данные для настройки:<br>
Это:
* ID компании, для которой включаем детектор
* Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.
Например: передаем параметр  "ANDROID" и мониторинг включается только для устройств "ANDROID".
* E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
* Указанное время хранения скриншотов (по умолчанию 3 дня)
</div>
Далее нужно перейти в серверное приложение и выполнить команду:
<code>docker exec -it smartplayer_backend_i bash</code>
[[File:Команда docker.png|thumb|Команда"docker exec -it smartplayer_backend_i bash" |300px]]
[[File:Команда docker.png|thumb|Команда"docker exec -it smartplayer_backend_i bash" |300px]]
На этом этапе попадаем в нашем контейнере с серверным приложением.<br>
На этом этапе попадаем в нашем контейнере с серверным приложением.<br>
Далее выполняем команду:
Следующей выполняем команду:
"Enable screen - screen monitor". [[File:Enable screen monitor.png|thumb|Команда"docker exec -it smartplayer_backend_i bash" |300px]]
<code>Enable screen - screen monitor </code>[[File:Enable screen monitor.png|thumb|Команда"docker exec -it smartplayer_backend_i bash" |300px]]
Следующим этапом система выдает вот такую строку:  
После очередного этапа система выдает вот такую строку:  
Системное сообщение "Input company ID and press Enter:"[[File:Системное сообщение.png|thumb|Системное сообщение "Input company ID and press Enter:" |300px]]
Системное сообщение <code>Input company ID and press Enter</code>[[File:Системное сообщение.png|thumb|Системное сообщение "Input company ID and press Enter:" |300px]]
Выполненная команда отобразит строку в которой просят ввести Id компании.<br>
Выполненная команда отобразит строку в которой просят ввести Id компании.<br>
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y»
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y»
[[File:Мониторинг всех платформ.png|thumb|Здесь нужно запустить мониторинг платформ нажав "ДА/Y" |300px]]
[[File:Мониторинг всех платформ.png|thumb|Здесь нужно запустить мониторинг платформ нажав "ДА/Y" |300px]]
В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах.
В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах.
Это делается с помощью команды : "Input_email and press enter"
Это делается с помощью команды:<br>
{{Note|Указанная почта должна быть привязана к серверу.|warn}}<br>
<code>Input_email and press enter</code>
Также можно указать интервал с которым будут приходить скриншоты (например 1 минута) и применяем эту настройку через "Enter"
{{Note|Указанная почта должна быть привязана к серверу.|warn}}
Также можно указать интервал с которым будут приходить скриншоты (например 1 минута) и применяем эту настройку через "Enter".<br>
Далее в строке появляется статус - Company screen monitoring enabled. Это значит что функционал запущен.
Далее в строке появляется статус - Company screen monitoring enabled. Это значит что функционал запущен.
=== '''"Чёрный" экран''' ===
Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо .
Настройка почты для серверного приложения находится в конфлюэнс.
Инструкция : настройка отправки писем через серверное приложение.
На сервере devop все настроено и прописано.
Сисадмин должен настроить на серверном приложение передачу письма.
Для проверки через лк можем поставить черную картинку. И тогда сможем проверить на почте полученное сообщение о черном экране. я как сисадмин должен буду принять меры для устранения проблемы.
Его также можно выключить: документ по comand linet interface.
там показано как можно отключить функционал и также посмотреть для каких компаний он включен.
Для отправки письма нужно id устройства. его можно вбить в поиске и найти устройство. В общем нужно найти решение.
Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве.
Это все актуально только для конкретного устройства и позволяет понять, что на точке что то работает не так.
=== '''Уведомления на почту''' ===
=== '''Уведомления на почту''' ===
Настройка уведомления подробно прописана в отдельной инструкции [[Настройка отправки писем через серверное приложение SmartPlayer]].<br>
Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции [[Настройка отправки писем через серверное приложение SmartPlayer]].<br>
При получении сообщения о проблеме на почту, невозможно напрямую из этого уведомления провести какие-то действия. К примеру «перезагрузка экрана».<br>
{{Note|При получении сообщения о проблеме на почту, невозможно напрямую из этого уведомления сделать какие либо действия. К примеру «перезагрузка экрана».|warn}}
В данной ситуации обязательно долен быть задействован компетентный человек.
В данной ситуации обязательно должен быть задействован компетентный человек, т.е. системный администратор.<br>
Это нужно для корректного определения причины.  Так как проблемы могут быть как с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию).
Это нужно для корректного определения причины.  Так как проблемы могут быть как с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию).
== '''Итоговый результат''' ==
== '''Итоговый результат''' ==
Наличие детектора позволяет контролировать проблемную ситуацию и оперативно работать для исправления. Это актуально как для нас, так и для системных администраторов клиента.
Наличие детектора позволяет контролировать проблемную ситуацию с "Чёрным" экраном и оперативно работать с её исправлением. Это актуально как для нас, так и для системных администраторов клиента.
{{Note|Для перезапуска трансляции надо зайти в лк и перезапустить все вручную|warn}}
{{Note|Для перезапуска трансляции надо зайти в лк и перезапустить все вручную|warn}}
Запускается детектор "чёрных" экранов  только для конкретных компаний/заказчиков. По умолчанию он выключен.<br>
{{Note|Детектор черного экрана на данный момент работает только на Android версии 1.63.1|warn}}
Включение и выключение мониторинга доступно через CLI.<br>
При включении данные передаются в настройки CLI. Это:
• ID компании, для которой включаем детектор
• Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.
Например: передаем ANDROID и мониторинг включается только для устройств ANDROID
• E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
• Указанное время хранения скриншотов (по умолчанию 3 дня)
Детектор черного экрана на данный момент работает только на Android версии 1.63.1

Версия от 14:18, 8 августа 2023

Описание ситуации

У пользователей появились проблемы с трансляциями на устройствах. При воспроизведении контента на некоторых устройствах появляется «чёрный» экран. Эту проблему можно наблюдать в личном кабинете пользователя или на месте нахождения устройства.

Причина

В устройствах, работающих на местах во время проигрывания контента, появляется «чёрный экран». При этом трансляция в личном кабинете продолжает работать, но отображает только "Чёрный экран".
Эта ситуация возникает из-за различных ошибок при запуске трансляции. Причины таких проблем могут быть разными, и их очень сложно обнаружить и поправить.
В качестве причины может выступать любое действие:

  • Пользователь загружает видео, но это видео использует неподдерживаемый системой кодек. Тогда видео просто не может запуститься и показывает черный экран.

Бывает проблемы, связанные с клиентским приложением (баг), и из-за этого начинаются проблемы с трансляцией.

  • Пока есть наличие постоянной, стабильной сети – все работает отлично. Как только устройство теряет доступ к сети (по любой причине) – трансляция прерывается и появляется чёрный экран.
Файл:.png
Список проблем из-за которых возникает черный экран

Систематичность проблемы

"Чёрный" экран очень несложно отследить и подтвердить визуально. В этом случае хорошо помогает личный кабинет.
Проблема ситуации в том, что он не несет в себе систематичности по времени и может появляться как раз в месяц, так и раз в несколько дней или часов.
Период появления черного экрана определяется опытным путём и подтверждает по факту у точки. Поиск причины проблемы перекладывается на плечи технических специалистов.

Концепт решения

Для решения проблемы было решено создать автоматический «Детектор» черного экрана. Он уведомляет о проблемах с контентом на устройстве и оповещает о случившейся ситуации в личном кабинете.

Данный функционал не доступен пользователю в личном кабинете. Его необходимо включать отдельно.

Подготовка

У каждого клиента/компании есть свой ID связанный с сервером. ID указан в личном кабинете и к нему привязываются все устройства компании.
После запуска функционала сервер с определенным промежутком по времени отправляет на устройства «ивент». Запуская «ивент» устройство с помощью детектора проверяет наличие «черного экрана», делая скриншот во время запуска.
После запуска детектора возможно получить два вида ответа:

  • После запуска «ивента» черного экрана нет - система продолжает работу в штатном режиме.
  • После запуска «ивента» чёрный экран обнаружен - сервер отправляет повторный, проверочный "ивент".

Промежуток для повторной отправки "ивента" составляет 10 секунд.
Если же и во второй раз отправляется черный экран, то со стороны сервера отправляется письмо на почту.

Указанная почта должна быть привязана к серверу.

Принцип действия

Сисадмин должен настроить на серверном приложение передачу письма. Системный администратор должен настроить серверное приложение по двум параметрам:

  • Запуск детектора "чёрного" экрана
  • Настройка отправки письма с ошибкой на почту

Если серверное приложение обнаружило черный экран, оно отправляет на почту письмо.

Для проверки работоспособности функционала через личный кабинет системный администратор может поставить черную картинку. В идеале на почту должно придти сообщение с оповещение о проблеме. Впоследствии системный администратор должен принять меры для устранения проблемы.

там показано как можно отключить функционал и также посмотреть для каких компаний он включен. Сервер продолжает отправляет оповещения пока не исправится черный экран на устройстве. Его также можно выключить: документ по comand linet interface.

Тонкости и нюансы при работе функционала

1. Для правильного работы необходимо чтобы placeholder с белой точкой воспринимался как черный экран. Поэтому используется не абсолютная проверка. 2. Актуально только при проигрывании видео. При наличии root прав на устройстве – детектор работает нормально. Но, если, на устройстве нет root прав, детектор не сможет сделать скриншот.
Исключения:
Скриншот доступен:

  • Если приложение подписано «подписью разработчика» (уровень прав – Signage).
  • Некоторые устройства (Vestel, Hikvision, Phillips) могут сделать скриншот без root прав из-за особенностей прошивки.

3. Если пользователь попробует сделать скриншот без root прав, то создается «пустой скриншот» с надписью «Идёт воспроизведение видео. Отсутствуют права для снятия скриншота».
4. Информация от сервера к разработчикам отправляется через "ивент". Внутри отправленного «ивента» сервер ждет callback от разработчиков.
5. Тайм – аут “Callback” по умолчанию на сервере составляет – 30 секунд.

Реализация

Активация

По умолчанию детектор для всех компаний отключен на сервере, так как создает на него слишком большую нагрузку.

Включается детектор только по запросу со стороны компании, у которой появилась проблема с чёрным экраном.

Алгоритм действия

Вся работа будет вестись в два этапа.
Первый этап - это запуск самого детектора.

При запуске детектора нужно использовать id компании, который указан в личном кабинете.

Расположение ID компании в личном кабинете

Для этого нужно зайти в профиль и развернуть подробную информацию о пользователе. Системному администратору нужно подключиться на сервер, через Command Line Interface (CLI).

При включении CLI сервер получает определенные данные для настройки:
Это:

  • ID компании, для которой включаем детектор
  • Можно передать платформу (или несколько платформ), для которой необходимо запустить мониторинг.

Например: передаем параметр "ANDROID" и мониторинг включается только для устройств "ANDROID".

  • E-mail адрес или несколько адресов на которые должно отправляться уведомление о нештатной ситуации
  • Указанное время хранения скриншотов (по умолчанию 3 дня)

Далее нужно перейти в серверное приложение и выполнить команду: docker exec -it smartplayer_backend_i bash

Команда"docker exec -it smartplayer_backend_i bash"

На этом этапе попадаем в нашем контейнере с серверным приложением.
Следующей выполняем команду:

Enable screen - screen monitor

Команда"docker exec -it smartplayer_backend_i bash"

После очередного этапа система выдает вот такую строку:

Системное сообщение Input company ID and press Enter

Системное сообщение "Input company ID and press Enter:"

Выполненная команда отобразит строку в которой просят ввести Id компании.
После ввода ID появляется запрос на мониторинг всех платформ компании. В данном случае выбираем «ДА/Y»

Здесь нужно запустить мониторинг платформ нажав "ДА/Y"

В последствии консоль потребует указать e-mail на который будут приходить оповещения о проблемах. Это делается с помощью команды:
Input_email and press enter

Указанная почта должна быть привязана к серверу.

Также можно указать интервал с которым будут приходить скриншоты (например 1 минута) и применяем эту настройку через "Enter".
Далее в строке появляется статус - Company screen monitoring enabled. Это значит что функционал запущен.

Уведомления на почту

Второй этап настройка уведомления, которые приходят на почту. Настройка уведомления подробно прописана в отдельной инструкции Настройка отправки писем через серверное приложение SmartPlayer.

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

В данной ситуации обязательно должен быть задействован компетентный человек, т.е. системный администратор.
Это нужно для корректного определения причины. Так как проблемы могут быть как с нашей стороны (например баг приложения), так и со стороны пользователя (например пользователь неправильно создал трансляцию).

Итоговый результат

Наличие детектора позволяет контролировать проблемную ситуацию с "Чёрным" экраном и оперативно работать с её исправлением. Это актуально как для нас, так и для системных администраторов клиента.

Для перезапуска трансляции надо зайти в лк и перезапустить все вручную
Детектор черного экрана на данный момент работает только на Android версии 1.63.1