Tablo — панель мониторинга сайтов

Панель Tablo с демонстрационными карточками сайтов, статусами, версиями, задачами и временем ответа; доменные подписи скрыты

Tablo — моя небольшая панель для наблюдения за сайтами и их GitHub-репозиториями. Она собирает в одном месте доступность, версии, открытые задачи, pull requests и время ответа. Tablo можно установить на своём сервере; одна установка рассчитана на одного администратора.

Панель Tablo с демонстрационными карточками сайтов, статусами, версиями, задачами и временем ответа; доменные подписи скрыты
Обзор сайтов в Tablo. Демонстрационные данные; доменные подписи скрыты.

Для чего нужна Tablo

Когда сайтов и небольших проектов становится несколько, хочется видеть их состояние на одном экране. Отвечает ли сайт? Какая версия установлена? Есть ли новый релиз? Сколько задач и pull requests открыто в репозитории?

Я сделал Tablo для такого повседневного обзора. У каждого сайта своя карточка с результатом и временем последней проверки. Устаревшие результаты помечаются, чтобы вчерашний статус не воспринимался как свежая проверка.

Что уже умеет панель

  • Проверять доступность по HTTP-ответу или по значению поля в JSON: например, если приложение возвращает собственный статус здоровья.
  • Получать установленную версию или коммит из отдельного ответа приложения. Этот источник необязателен: сайт можно наблюдать и без него.
  • Показывать последний релиз GitHub либо коммит выбранной ветки и сравнивать его с данными установленного приложения.
  • Выводить количество открытых Issues и pull requests, а также время ответа сайта.
  • Искать сайты, отбирать карточки, которые требуют внимания, и ставить отдельные сайты на паузу.
  • Работать с публичными и доступными администратору приватными репозиториями GitHub. Сохранённый именованный токен можно использовать для нескольких проектов.

Добавление сайта и доступ к репозиторию

Для сайта можно выбрать репозиторий, ветку и режим сравнения: последний релиз или коммит ветки. Там же задаются источники проверки доступности и версии. Настройки JSON-проверки позволяют использовать ответ самого приложения.

Форма добавления сайта в Tablo: GitHub-репозиторий, токен, ветка, источники Health и Version и условия проверки JSON; адрес сайта скрыт
Настройки сайта и JSON-проверок в Tablo. Демонстрационные данные; адрес сайта скрыт.

В настройках можно завести именованные GitHub-токены и затем выбирать их при добавлении сайтов. Один сохранённый токен подходит для нескольких проектов.

Настройки Tablo с именованным демонстрационным GitHub-токеном для пяти проектов; значение токена не отображается
Именованные GitHub-токены в настройках Tablo. Демонстрационные данные.

Как устроены проверки

Сейчас проверку можно запустить вручную из карточки или одноразовой командой. Команду можно подключить к внешнему расписанию. Собственный воркер периодических проверок пока в планах.

Доступность сайта и данные GitHub проверяются независимо: ошибка получения списка pull requests не должна превращать отвечающий сайт в недоступный. Если сведения получить не удалось, панель показывает причину и отсутствие данных.

Установка и развитие

Проект написан на PHP с Phalcon и шаблонами Volt. По умолчанию используется SQLite; отдельный сервер базы данных для такой установки не нужен. Есть вариант запуска в Docker. Сейчас это небольшой работающий проект, который я продолжаю развивать.

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

Исходный код и инструкция по запуску: Tablo на GitHub.

Записи о Tablo

Рассказ о запуске, возможностях и планах.

Последующие новости проекта буду собирать под меткой Tablo.

Поделиться с друзьями
Блог Ичи