Это руководство описывает подключение CodeGraph к внешнему контуру Prometheus и Alertmanager. Каталог метрик и выражения оповещений не копируются в статью: оператор использует поддерживаемые файлы из репозитория.
Две поверхности метрик
CodeGraph возвращает два разных ответа в формате Prometheus:
| Запрос | Назначение | Доступ |
|---|---|---|
GET /metrics |
Метрики процесса и HTTP-запросов API. | Маршрут не требует пользовательской аутентификации API, чтобы его мог опрашивать защищённый сетевой scraper. |
GET /api/v1/traceability/metrics |
Формирует и экспортирует метрики проекта и портфеля для текущей области дашборда. | Нужны аутентификация API и контекст проекта. |
Первый маршрут остаётся сетево чувствительным. Ограничьте его сетевой политикой, ingress или списком разрешённых scraper-узлов. Не публикуйте его через неограниченный интернет-ingress.
Имена и labels определены в src/monitoring/metrics.py. Не закрепляйте в
приёмочных проверках ожидаемое количество метрик: дополнительные компоненты и
новые collectors могут менять набор.
Проверка сбора
Из сети мониторинга:
curl.exe -fsS http://<api-host>:8000/metrics
Для метрик дашборда используйте одобренные учётные данные и контекст проекта:
curl.exe -fsS -H "Authorization: Bearer <token>" -H "X-Project-Id: <project-id>" http://<api-host>:8000/api/v1/traceability/metrics
Проверьте HTTP-статус, Prometheus content type, время последнего сбора в Prometheus и ожидаемые labels цели. Приём series подтверждается данными Prometheus.
Поставляемые артефакты
| Артефакт | Применение |
|---|---|
monitoring/prometheus.yml |
Эталонные scrape jobs и подключение файлов правил. Имена целей нужно адаптировать к топологии установки. |
monitoring/rules/alerts.yml |
Оповещения runtime, API, хоста, очередей, хранилища и интеграций. |
monitoring/rules/dashboard_alerts.yml |
Оповещения о здоровье проекта, compliance, выпуске и SCA. |
monitoring/alertmanager.customer-baremetal.yml |
Базовый customer bare-metal профиль с локальным получателем и без внешнего адресата. |
integrations/grafana/dashboard_ciso.json |
Импортируемый дашборд Grafana для CISO/CTO. |
monitoring/yandex/dashboard.json |
Определение дашборда Yandex Monitoring. |
Helm chart репозитория создаёт workload приложения, service, ingress, хранилище и конфигурацию. Пользовательские ресурсы Prometheus Operator в chart не создаются. Настройте сбор средствами платформы мониторинга заказчика или через отдельный одобренный deployment overlay.
Проверка правил
Подключите оба файла правил и проверьте их той же версией Prometheus, которая работает у заказчика. Текущие правила дашборда включают:
DashboardProjectRiskCritical: health ниже 40 в течение 5 минут;DashboardProjectRiskHigh: health от 40 до значения ниже 55 в течение 10 минут;DashboardComplianceGap: compliance ниже 60 в течение часа;DashboardReleaseGateFail: release gate имеет статус fail;DashboardScaCriticalVuln: найдена хотя бы одна критическая SCA-уязвимость.
При изменении значений авторитетны YAML-файлы. Warning и critical должны маршрутизироваться по одобренной схеме эскалации заказчика.
Безопасность получателя
monitoring/alertmanager.customer-baremetal.yml намеренно не содержит внешних
webhook, почтовых или messenger-получателей. Перед добавлением:
- согласуйте адресата и класс данных;
- сохраните учётные данные в системе секретов заказчика;
- определите, могут ли детали замечаний покидать контур;
- отправьте синтетическое оповещение;
- подтвердите событие успешной доставки на стороне получателя;
- проверьте доставку resolve и правила подавления.
Общий monitoring/alertmanager.yml может описывать среду разработки или
управляемые интеграции. Его нельзя переносить в инфраструктуру заказчика без
этой проверки.
Импорт дашбордов и приёмка
Импортируйте integrations/grafana/dashboard_ciso.json в Grafana заказчика и
свяжите его с источником Prometheus. Для Yandex Monitoring импортируйте или
адаптируйте monitoring/yandex/dashboard.json.
После развёртывания проверьте:
- цель API доступна и собирается через
GET /metrics; - метрики дашборда формируются для разрешённой области проекта;
- обе группы правил загружены без ошибок;
- панели показывают текущие series, а не пустые значения;
- одно warning- и одно critical-оповещение дошли до одобренного получателя;
- секретов и приватных labels нет в логах и снимках экрана.
Сохраните идентификатор образа или commit, ревизию конфигурации Prometheus, digest правил, ревизию дашборда, идентификаторы тестовых оповещений и доказательство доставки.
Порядок диагностики
- Запросите endpoint CodeGraph из сети scraper.
- Проверьте состояние цели и последнюю ошибку в Prometheus.
- Сверьте labels цели и область проекта.
- Проверьте загрузку и вычисление правил.
- Проверьте маршрутизацию и подавление в Alertmanager.
- Проверьте доказательство доставки у адресата.
Отделяйте свежесть данных дашборда от работоспособности сбора. Исправно опрашиваемая цель может экспортировать устаревшие доказательства проекта; этот путь восстановления описан в руководстве по эксплуатации дашборда.
Источники истины
src/api/main.py— маршрут метрик процесса и middleware.src/api/routers/dashboard_core/dashboard_v2_metrics.py— аутентифицированный маршрут метрик дашборда.src/monitoring/metrics.py— имена, labels и helpers обновления метрик.- файлы из таблицы выше — конфигурация сбора, правил, получателей и дашбордов.