Исполнение модели
После того как модель была создана необходимо убедиться что используемая модель будет работать в CleanRoom либо, после её согласования, запустить модель в продакшн режиме. На этих этапах у пользователя может возникать ряд проблем. Крупноблочно можно разделить эти проблемы на 3 типа:
- Запуск модели
- Исполнение модели
- Валидация исполнения модели
Представленные далее инструкции справедливы для дебаг и продакшн запусков.
Запуск модели
Обращения при запуске модели могут быть сформулированы следующим образом:
- "При нажатии на кнопку запуска ничего не происходит"
- "При нажатии на кнопку запуска падает ошибка"
- "Модель не запустилась по расписанию"
- "Модель не запускается в продакшн режиме, только в дебаг"
Возможные причины проблем
- Используемая витрина данных невалидна
- Не все компоненты модели согласованы
- Модель уже исполняется
- Технические неполадки
Устранение проблем и поиск причин
Для упрощения диагностирования и устранения рекомендуется уточнить у пользователя:
- В каком проекте возникла проблема
- С какой моделью возникла проблема
- В каком статусе находится проблемная модель
- Какой скрипт используется в проблемной модели
- Какая витрина данных используется в модели
Используемая витрина данных невалидна
Для того чтобы запустить модель, необходимо использовать только валидные витрины данных. В случае если пользователь использует в своей модели невалидную витрину данных (один или несколько датасетов помечены как "Скрытый датасет" или напротив датасета стоит восклицательный знак) исполнение модели невозможно. В такой ситуации рекомендуется использовать другую витрину данных.
Не все компоненты модели согласованы
Эта проблема может быть причиной невозможности запуска модели в продакшн режиме. Для запуска модели в продакшн режиме необходимо чтобы в модели использовались согласованные витрина данных и скрипт. В случаях если:
- не все датасеты в витрине данных были согласованы
- используемый в модели скрипт не был согласован всеми владельцами данных используемой витрины
Модель нельзя будет запустить в продакшн режиме.
Согласование компонентов модели, в том числе, влияет и на запуск модели по расписанию. В случаях если не все компоненты модели согласованы, модель не будет запускаться по расписанию. Запуск модели по расписанию возможен только для моделей в продакшн режиме.
Если у пользователя возникла проблема с этим, возможно только порекомендовать ожидать согласования скрипта или данных всеми участниками обмена данных.
Модель уже исполняется
Система поддерживает исполнение нескольких моделей единовременно, но не поддерживает единовременное исполнение двух экземпляров одной модели. В случае если модель уже исполняется повторный запуск модели недоступен, как для ручного запуска, так и для запуска по расписанию.
Технические неполадки
Для корректного запуска модели необходимо чтобы следующие сервисы были доступны:
- Back-end API
- DataService API
- Enclave
- RabbitMQ
- GitLab В случае если при старте исполнения модели недоступен один из ключевых компонентов, необходимых для запуска модель не будет запущена. Для диагностирования подобной ситуации рекомендуется изучить дашборд Heathcheck на предмет проверки работоспособности ключевых компонентов. В случае если один из компонентов недоступен, или не готов к работе необходимо восстановить работоспособность компонента и повторить попытку запуска модели. В качестве быстрого фикса вероятно выполнение перезагрузки проблемного сервиса, если проблема точечная. О подобной ситуации необходимо сообщить вашему kubernetes-администратору или разработчику платформы.
Исполнение модели
При проблемах при исполнении модели пользователи могут обращаться с формулировками:
- "Запуск модели завис в статусе "в очереди""
- "Запуск модели завис в статусе "Исполняется""
Возможные причины проблемы
- Исполняется большое количество моделей и часть из них встали в очередь
- Модель долго отрабатывает или используется объемная витрина данных
- Технические проблемы
Устранение проблем и поиск причин
Для упрощения диагностирования и устранения рекомендуется уточнить у пользователя:
- В каком проекте возникла проблема
- С какой моделью возникла проблема
- Какой скрипт используется в проблемной модели
- Какая витрина данных используется в модели
Исполняется большое количество моделей и часть из них встали в очередь
При эксплуатации системы возможна ситуация когда требуется исполнять несколько моделей одновременно. Поскольку физические ресурсы системы ограничены, в системе все задачи на исполнение ставятся в очередь.
В случае если пользователи обращаются с жалобой о слишком долгом нахождении их запуска в статусе
"в очереди" необходимо проверить количество сообщений в очереди create_pipeline_runner
.
Для этого вы можете воспользоваться дашбордом мониторинга Easy RabbitMQ (K8S).
При штатной работе системы вы увидите что в очереди есть обрабатываемые задачи (unack) и ожидающие задачи (ready), что свидетельствует о том что платформа работает в штатном режиме.
В этом случае если вы видите что в очереди все в норме и происходит ротация задач, можно порекомендовать пользователю дожидаться завершения исполнения модели.
Технические неполадки
Запуски моделей могут "зависнуть" при исполнении или в ожидании исполнения в случае если по какой-то
причине нет связи между RabbitMQ и воркером Pipeline Runner.
Именно этот воркер отвечает за забор задач и постановку и инициализацию исполнения модели.
В кейсах когда при траблшутинге обращения вы видите что в очереди create_pipeline_runner
воркером
не забираются сообщения необходимо проверить сетевую доступность этих двух сервисов.
В качестве быстрого фикса возможно использовать перезапуск сервиса Pipeline Runner.
При возникновении подобных инцидентов для проверки доступности и/или перезагрузке рекомендуется
обратиться к вашему kunernetes-администратору или разработчику платформы.
Валидация исполнения модели
В случае завершения исполнения запуска в статусе "Ошибка" вероятнее всего проблема возникла с исполняемым скриптом модели. Пользователи могут обратиться со следующими формулировками:
- "Запуск модели завершился с ошибкой"
- "В модели в запускаемом скрипте нет моих правок"
- "В ClickHouse отсутствуют данные-результат исполнения модели"
Возможные причины проблемы
- Некорректный формат исполняемого пользователем скрипта
- Ошибки в пользовательском скрипте
- Непонимание пользователем различий между продакшн и дебаг запуском
- Технические неполадки
Устранение проблем и поиск причин
Для упрощения диагностирования и устранения рекомендуется уточнить у пользователя:
- В каком проекте возникла проблема
- С какой моделью возникла проблема
- В каком статусе сейчас находится модель
- Какой скрипт используется в проблемной модели
- Какая витрина данных используется в модели
- Запросить лог исполнения модели
Вне зависимости от результата исполнения модели и от режима запуска модели, по результату её исполнения формируется файл содержащий в себе лог сообщения всех этапов исполнения модели, а именно:
- Загрузку скрипта
- Загрузку витрины данных
- Исполнения скрипта с применением данных витрины данных
- Загрузкой данных в ClickHouse
Файлы с логом необходимы для диагностирования проблем с запуском моделей.
Некорректный формат исполняемого пользователем скрипта
Система поддерживает исполнение только python (*.py) файлов. В случае если в качестве инициирующего файла была выбран не .py файл, а например .js или .ipynb, то модель упадет с ошибкой, и это будет видно в логе исполнения модели. В подобной ситуации необходимо порекомендовать пользователю выполнить рефакторинг своего кода, таким образом, чтобы инициирующим файлом был .py файл.
Ошибки в пользовательском скрипте
Наиболее распространенными ошибками при исполнении моделей в CleanRoom являются:
- Синтаксические ошибки
- Опечатки, некорректное использование функций или классов
- Использование не поддерживаемых в анклаве библиотек
- Ошибки при использовании переменных окружения:
- приема файла с данными витрины данных
- передачи файла результата исполнения модели
- Формата передаваемого результирующего файла
По сути ошибки при использовании переменных окружения являются синтаксическими ошибками, поэтому в лог файле, формируемому по результату исполнения модели будет зафиксирован python стек-трейс с соответствующими ошибками.
В случае если в своем скрипте пользователь неправильно сформировал файл с результатом исполнения модели, в частности в результирующем файле создал неправильные поля, исполнение модели завершиться с ошибкой, что будет показано в лог-файле на этапе валидации и сохранения результата исполнения файла
В случае возникновения таких ошибок рекомендуется внести правки в кодовую базу скрипта модели CleanRoom, таким образом, чтобы он (скрипт) соответствовал всем требованиям и выполнить повторный запуск модели.
Непонимание пользователем различий между продакшн и дебаг запуском
Фактически разница между продакшн и дебаг запуском заключается в том, что при продакшн запуске результаты исполнения сохраняются в ClickHouse, а при дебаг запуске нет. В случае если пользователь ожидал получения результата в ClickHouse, но не получил его, необходимо порекомендовать пользователю выполнить согласование скрипта и датасетов витрины данных, после чего запустить его модель в продакшн режиме.
Технические неполадки
В рамках эксплуатации системы могут так-же возникнуть проблемы технического характера. Возникающие технические ошибки являются следствием недоступности ключевых сервисов, используемых при исполнении модели CleanRoom.
В случаях когда по лог-файлу исполнения модели видно, что проблема возникла на этапе загрузки скрипта или данных витрины данных рекомендуется выполнить действия описанные в разделе посвященному траблшутингу выгрузки данных витрины данных, поскольку выгрузка данных и получение скрипта выполняется по тому же алгоритму, что и выгрузка данных на VM.
В случаях когда лог-файлу исполнения модели видно, что проблема возникла на этапе выгрузки результата в ClickHouse, рекомендуется изучить полученный лог файл, в нем, на этапе выгрузки данных будет указан стек-трейс полученный от ClickHouse, благодаря которому можно будет диагностировать проблему, возникшую в ClickHouse при записи результатов. В подобных ситуациях рекомендуется обратиться к вашему администратору ClickHouse или к разработчику платформы.