Перейти к основному содержимому

Мониторинг промышленной установки

Руководство оператора по метрикам Prometheus, дашбордам, оповещениям и безопасной настройке получателей. См. примеры и проверки перед применением.

Руководства

Это руководство описывает подключение 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-получателей. Перед добавлением:

  1. согласуйте адресата и класс данных;
  2. сохраните учётные данные в системе секретов заказчика;
  3. определите, могут ли детали замечаний покидать контур;
  4. отправьте синтетическое оповещение;
  5. подтвердите событие успешной доставки на стороне получателя;
  6. проверьте доставку resolve и правила подавления.

Общий monitoring/alertmanager.yml может описывать среду разработки или управляемые интеграции. Его нельзя переносить в инфраструктуру заказчика без этой проверки.

Импорт дашбордов и приёмка

Импортируйте integrations/grafana/dashboard_ciso.json в Grafana заказчика и свяжите его с источником Prometheus. Для Yandex Monitoring импортируйте или адаптируйте monitoring/yandex/dashboard.json.

После развёртывания проверьте:

  1. цель API доступна и собирается через GET /metrics;
  2. метрики дашборда формируются для разрешённой области проекта;
  3. обе группы правил загружены без ошибок;
  4. панели показывают текущие series, а не пустые значения;
  5. одно warning- и одно critical-оповещение дошли до одобренного получателя;
  6. секретов и приватных labels нет в логах и снимках экрана.

Сохраните идентификатор образа или commit, ревизию конфигурации Prometheus, digest правил, ревизию дашборда, идентификаторы тестовых оповещений и доказательство доставки.

Порядок диагностики

  1. Запросите endpoint CodeGraph из сети scraper.
  2. Проверьте состояние цели и последнюю ошибку в Prometheus.
  3. Сверьте labels цели и область проекта.
  4. Проверьте загрузку и вычисление правил.
  5. Проверьте маршрутизацию и подавление в Alertmanager.
  6. Проверьте доказательство доставки у адресата.

Отделяйте свежесть данных дашборда от работоспособности сбора. Исправно опрашиваемая цель может экспортировать устаревшие доказательства проекта; этот путь восстановления описан в руководстве по эксплуатации дашборда.

Источники истины

  • src/api/main.py — маршрут метрик процесса и middleware.
  • src/api/routers/dashboard_core/dashboard_v2_metrics.py — аутентифицированный маршрут метрик дашборда.
  • src/monitoring/metrics.py — имена, labels и helpers обновления метрик.
  • файлы из таблицы выше — конфигурация сбора, правил, получателей и дашбордов.