mirror of
https://gitverse.ru/kpa39l/monitoring.git
synced 2026-09-29 18:05:08 +00:00
feat(gotosocial): Grafana dashboard GoToSocial (20 panels); fix dashboard provisioning provider overlap; openspec: gotosocial-monitoring
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
# gotosocial-monitoring Specification
|
||||
|
||||
## Purpose
|
||||
|
||||
Дашборд Grafana для метрик GoToSocial (bigbox): наблюдение за инстансом
|
||||
(пользователи/статусы/федерирующиеся инстансы), воркерами (очереди),
|
||||
HTTP-активностью, SQL-соединениями и ресурсами процесса.
|
||||
|
||||
## ADDED 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/красная
|
||||
Reference in New Issue
Block a user