gendesign/scripts
bot-backend 309d273f3f
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах
Метрик в проекте не было ни одной: ни экспортеров, ни /metrics в бэкендах,
единственный канал наблюдения — journald, единственный сигнал об аварии —
исключение в GlitchTip. Из-за этого целый класс отказов невидим в принципе:
задача рапортует done, строк ноль, исключения нет. Так протухли данные на семь
месяцев (#2998), 34 дня был мёртв house_imv_backfill (#2698), 8 суток писал ноль
newbuilding_enrich (#2767), 91 день копилось раздутие listings (#2992).

Grafana не заменяет GlitchTip: ошибки остаются там. Grafana OSS не принимает
Sentry DSN ни одним компонентом, а скрубберы в before_send — требование 152-ФЗ.
Здесь появляется другой класс данных: ряды и алерты по трендам.

Наблюдатель поставлен у ДРУГОГО провайдера, чем наблюдаемое: серверная сторона
на Beget, рядом с GlitchTip. Если ляжет Poincare, мониторинг должен об этом
сказать, а не лечь вместе с ним.

Транспорт push, а не pull: агент на Poincare шлёт remote_write и логи исходящим
HTTPS, поэтому там не открывается ни одного входящего порта сверх 22/80/443.
При обрыве канала Alloy копит в WAL и досылает — pull-скрейп в той же ситуации
терял бы точки именно в аварии, ради которой мониторинг и нужен.

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

GlitchTip читается прямым SQL, а не Sentry-плагином: у плагина на 6.1.6
stats_v2 отдаёт 500 (баг GlitchTip #381), Events/Discover — 404 (#416), а в
grafana/sentry-datasource слово glitchtip не встречается ни разу. Схема сверена
на живой базе: колонка времени называется timestamp, а не received, и отдельной
таблицы IssueIndex не существует — агрегаты лежат на самой issue_events_issue.

Алерты за профилем alerts: канал доставки — открытый вопрос #3078, и стек не
должен на нём стоять. Деплой предупреждает, что уведомлять пока некому.

Каждая настройка, способная отказать молча, закрыта явно: ретенция Prometheus
задана и по времени и по размеру, retention_enabled у компактора Loki (без него
retention_period не работает вовсе), путь к журналу и запуск Alloy от root
(иначе агент читает ноль записей без ошибки), проверка Caddy до перезагрузки
(на этом хосте тот же Caddy держит git, errors и obsidian).

Refs #3078
2026-08-26 10:45:54 +03:00
..
auth fix(ops): repair broken main-DB backup + harden auth scripts/docs (#71 #427 #429 #428) 2026-06-13 20:13:04 +05:00
claude-hooks chore(claude): security hardening — dangerous-commands hook, settings в git, restricted DB, throttle (#2150) 2026-07-02 15:23:11 +00:00
bootstrap_glitchtip.sh fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap) (#219) 2026-05-16 15:54:29 +00:00
bootstrap_schema_migrations.sh feat(infra): auto-apply data/sql/*.sql migrations in deploy pipeline (#150) (#151) 2026-05-15 08:06:54 +03:00
build_osrm.sh feat(analyze): per-category OSRM routing (foot vs driving) (#39 A3) 2026-06-27 04:30:25 +05:00
check-latest-image-revision.sh fix(ci): деплой падает громко, если :latest отстаёт от головы по компоненту (#2950) (#3023) 2026-08-21 12:19:07 +00:00
check-migration-lock-timeout.py fix(migrations): закрепить lock_timeout для блокирующего DDL и ловить невалидные индексы (#2791) 2026-08-07 11:21:28 +00:00
check-workflow-ports.py ci: гейт против публикации занятых на VPS портов в workflow (#2757) (#2759) 2026-08-06 21:40:05 +00:00
cleanup-merged-worktrees.sh fix(devops): cleanup-merged-worktrees.sh — 3 бага, найденные вживую на 69 забытых worktree (#2418) 2026-07-04 13:00:14 +00:00
cleanup-stale-claims.sh chore(claude): extend self-extending tripwire + pause-bots guard for stale-claims 2026-05-29 17:36:20 +03:00
cleanup-worktrees-aggressive.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
cleanup_ghosts.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
migrate_kg_to_obsidian.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
setup-bot-env.ps1 feat(claude): env-vars refactor + stale-claim cron (Phase 2 finalization) 2026-05-28 00:24:45 +03:00
setup-couchdb.sh feat(deploy): split obsidian stack from main + path-filtered GHA 2026-05-11 09:51:31 +03:00
setup-metrics-exporter-dsn.sh feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
setup-metrics-grafana-role.sh feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
setup-metrics-secrets.sh feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
smoke-mera-perimeter.sh ci: смоук периметра МЕРЫ запускается сразу после деплоя (#2917) (#2922) 2026-08-19 08:13:49 +00:00
start-analyst.ps1 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP 2026-05-30 10:38:10 +03:00
start-backend.ps1 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP 2026-05-30 10:38:10 +03:00
start-bot.ps1 chore(agents): reviewer back to Opus (revert model-part of aa3d012) 2026-05-31 17:16:57 +03:00
start-frontend.ps1 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP 2026-05-30 10:38:10 +03:00
start-qa.ps1 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP 2026-05-30 10:38:10 +03:00
start-reviewer.ps1 chore(bots): per-role launcher scripts + move bot pipeline to forgejo MCP 2026-05-30 10:38:10 +03:00