Forgejo / Gitea
Forgejo и Gitea совместно используют один REST API, поэтому DumbMonit читает оба одним сборщиком: отвечает ли экземпляр, его проверка здоровья, сколько репозиториев, учетных записей и организаций он содержит, работают ли его запланированные задачи (проверки репозиториев, очистка, проверка обновлений) по их собственному интервалу и находятся ли его Actions runners в сети.
Два вызова должны быть успешными: /api/v1/version, общедоступный, и /api/v1/user, доказательство того, что токен доступа действительнен. Все остальное — проверка здоровья, подсчет репозиториев/учетных записей/организаций, запланированные задачи и Actions runners — читается из конечных точек, которые Forgejo и Gitea зарезервированы для учетных записей администраторов сайта, и пропускается без сбоя пробы, когда токен принадлежит обычному.
Отказ, который стоит отслеживать здесь: запланированная задача, которая перестала выполняться. Forgejo и Gitea продолжают обслуживать страницы и git операции, пока их внутренний планировщик застрял; никто не замечает, пока проверка обновления или проверка согласованности репозитория не запускаются в течение недель.
Что это отслеживает
Заголовок раздела «Что это отслеживает»Все метрики имеют префикс dumbmonit_forgejo_.
| Метрика | Что | Метки |
|---|---|---|
version_info | значение 1 | version |
token_is_admin | 1 когда учетная запись токена является администратором сайта | |
healthz_ok | 1 если только проверка здоровья не сообщает fail | |
healthz_check | 1 за каждый несбойный компонент (база данных, кэш) | check |
repos | репозитории, видимые учетной записи токена | |
users, orgs | учетные записи и организации на экземпляре | |
cron_tasks | запланированные задачи, определенные на экземпляре | |
cron_task_overdue | 1 за каждую задачу, следующий запуск которой уже должен быть, 0 иначе; отключенные задачи (расписание -) пропускаются | task |
runners_total, runners_online, runners_offline | Actions runners известные экземпляру; online, idle и active считаются в сети | |
runner_offline | значение 1 за каждый offline runner (максимум 32) | runner |
scrape_errors | вызовы только администратора, которые не работали при последней пробе (0 с обычным токеном, никогда не предпринимались) |
Встроенные правила, которые применяются: Forgejo/Gitea runners all offline, Forgejo/Gitea scheduled task overdue, плюс Monitor unreachable. Оценка безопасности проверяет запланированные задачи: см. Vendor updates and other checks.
Что это не отслеживает
Заголовок раздела «Что это не отслеживает»Forgejo и Gitea не имеют ролью администратора только для чтения: каждый вызов, зарезервированный для “admin”, нуждается в учетной записи с полными правами, а не делегате, ограниченном областью действия. Их API также не имеет эквивалента параметрам регистрации и двухфакторной аутентификации GitLab, и не имеет флага “update available” самоуправления — сравните версию выше с примечаниями к выпуску проекта вручную.
Страница монитора
Заголовок раздела «Страница монитора»Панель выше графиков читает то, что проба сохранила; открытие страницы никогда не вызывает Forgejo или Gitea. Это говорит, что сначала не так (проверка здоровья не работает, runners не в сети, запланированная задача просрочена), затем версия, затем репозиторий, учетная запись и подсчет организаций.
Создание токена доступа на учетной записи администратора сайта
Заголовок раздела «Создание токена доступа на учетной записи администратора сайта»-
Создайте токен доступа на учетной записи администратора сайта: avatar → Settings → Applications → Generate new token. Назовите его следующим образом и отметьте области read:admin, read:repository и read:user.
dumbmonit -
read:admin открывает подсчет администрации, запланированные задачи и Actions runners; без него, только версия и собственная учетная запись токена читаются, и остальное пропускается без сбоя пробы. Forgejo и Gitea также не имеют ролью администратора только для чтения.
-
В DumbMonit введите адрес, например “forgejo.lan” (порт 3000) или “https://git.example.com” позади обратного прокси, и вставьте токен.
Проверка токена вручную из хоста DumbMonit:
curl --header 'Authorization: token YOUR-TOKEN' 'https://git.example.com/api/v1/version'Учетные данные
Заголовок раздела «Учетные данные»| Учетные данные | Поля |
|---|---|
| Токен доступа | Отправляется как Authorization: token …. |
Адрес: имя хоста (forgejo.lan) или host:port. Параметры: протокол (HTTP по умолчанию — установите обратный прокси с TLS перед ним для чего-либо кроме LAN), порт (3000), проверка сертификата и timeout запроса (15 s).
Проверено на Forgejo 9.0 (официальный источник API и определения Swagger, разделенные с Gitea).