Как это работает
Скрипт бесконечно (до ручного отключения) собирает информацию с сконфигурированных syz-manager с определенных endpoint'ов и сохраняет их последнее состояние, а также лог изменений в коротком виде (количество +, -) и развернутом (весь лог изменений).
Запуск потоков выполняется с помощью asyncio, что гарантирует запуск получения информации каждые N секунд (поле timeout
в конфиге).
Установка
Понадобится python3 и модули bs4 и requests.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Конфигурация
Добавлять менеджеры для наблюдения нужно в config.json в массив managers в формате:
{
"name": "*Имя менеджера для сохранения результатов и сообщений об ошибках*",
"http_url": "*Адрес панели инфомации менеджера*",
"need_expert_mode": "*имеется ли настройка подробности вывода метрик у dashboard*"
}
need_expert_mode
необходимо для upstream версии, т.к. в ней dashboard изначально выводит лишь основные метрики, а мы хотим собирать полные.
Добавление (или отключение) наблюдаемых ручек выполняется через массив endpoints.
На текущий момент важными являются поля name
и http_uri
, имеющие аналогичное менеджеру значение.
Кроме того поддерживается парсинг метрик в csv, а также парсинг основной страницы syz-manager dashboard для проверки наличия крешей.