mirror of
https://gitverse.ru/kpa39l/monitoring.git
synced 2026-09-29 09:55:09 +00:00
64 lines
3.2 KiB
Markdown
64 lines
3.2 KiB
Markdown
# gotosocial-monitoring Specification
|
||
|
||
## Purpose
|
||
Дашборд Grafana для метрик GoToSocial (bigbox): наблюдение за инстансом
|
||
(пользователи/статусы/федерирующиеся инстансы), воркерами (очереди),
|
||
HTTP-активностью, SQL-соединениями и ресурсами процесса.
|
||
|
||
## Requirements
|
||
|
||
### Requirement: Job gotosocial в prometheus.yml активен
|
||
|
||
- **MUST**: job `gotosocial` опрашивает `127.0.0.1:9464/metrics` и
|
||
релейб`instance=bigbox:9464`.
|
||
- **MUST**: метрики доступны в VictoriaMetrics с метками
|
||
`service="gotosocial"`, `host="bigbox"`, `instance="bigbox:9464"`.
|
||
|
||
#### Scenario: Метрики отвечают
|
||
|
||
- **GIVEN** job gotosocial настроен в prometheus.yml
|
||
- **WHEN** запросить
|
||
`/api/v1/series?match[]=gotosocial_instance_total_users`
|
||
- **THEN** ответ содержит метрику с `instance: "bigbox:9464"` и данные
|
||
|
||
### Requirement: Дашборд gotosocial в Grafana
|
||
|
||
- **MUST**: Провайдер `gotosocial-dashboards` в
|
||
`grafana/provisioning/dashboards/dashboards.yml` импортирует
|
||
`/var/lib/grafana/dashboards/gotosocial` (updateIntervalSeconds: 30).
|
||
- **MUST**: Дашборд `grafana/dashboards/gotosocial/gotosocial.json` содержит:
|
||
- stat-панель доступности (запрос `gotosocial_instance_total_users` — если
|
||
данные есть, служба жива)
|
||
- instance-панели: users, statuses, federating_instances
|
||
- воркеры: по каждому пулу `gotosocial_workers_*` count+queue
|
||
- HTTP: `http_server_requests_total`, `http_server_requests_active`
|
||
- SQL: `go_sql_connections_in_use`
|
||
- процесс: RSS, CPU секунды, open_fds
|
||
- **SHOULD**: панели названы по-русски, структура соответствует стилю vesti.json.
|
||
|
||
#### Scenario: Дашборд импортирован
|
||
|
||
- **GIVEN** файл дашборда и провайдер добавлены
|
||
- **WHEN** пройти 30-60с после изменения provisioning
|
||
- **THEN** дашборд `GoToSocial` виден в папке
|
||
`gotosocial` (проверка: `SELECT uid FROM dashboard WHERE uid LIKE 'gotosocial%'`
|
||
в grafana.db)
|
||
|
||
### Requirement: Инстанс виден без алертов
|
||
|
||
- **MUST**: Дашборд не содержит алертинга (алерты GtS — отдельное изменение).
|
||
- **SHOULD**: Панель доступности зелёная (UP), когда `gotosocial_instance_total_users`
|
||
возвращает значение; красная — когда нет данных.
|
||
|
||
#### Scenario: Инстанс жив
|
||
|
||
- **GIVEN** GtS отвечает на 9464
|
||
- **WHEN** проверить stat-панель «Инстанс жив»
|
||
- **THEN** значение `gotosocial_instance_total_users` > 0 и панель зелёная
|
||
|
||
#### Scenario: Инстанс недоступен
|
||
|
||
- **GIVEN** GtS не отвечает на 9464
|
||
- **WHEN** пройти интервал опроса (15с)
|
||
- **THEN** метрика пропадает и панель доступности показывает DOWN/красная
|