Ответ
Мониторинг нагрузки (performance monitoring) проводится на разных уровнях стека с помощью специализированных инструментов.
Уровни мониторинга и инструменты:
| Уровень | Цель | Инструменты |
|---|---|---|
| Инфраструктура | CPU, RAM, Disk I/O, Network | OS: top, htop, vmstat, iostat, nmon (Linux). Системы: Zabbix, Nagios, Prometheus (сбор метрик). |
| Приложение (APM) | Время отклика, ошибки, трассировка запросов | Специализированные: New Relic, Datadog, AppDynamics. Open-source: Jaeger, Zipkin (трассировка). |
| Сеть и БД | Запросы к БД, сетевая задержка | БД: pg_stat_statements (PostgreSQL), slow query log. Сеть: Ping, traceroute, Wireshark. |
| Клиентский (Frontend) | Время загрузки страницы, отрисовки | Браузер: Chrome DevTools (Performance, Lighthouse). RUM: Яндекс.Метрика, Google Analytics. |
| Визуализация и алертинг | Дашборды, уведомления | Grafana (чаще всего с Prometheus). Встроенные дашборды в Datadog, New Relic. |
Примеры использования:
-
Быстрая проверка нагрузки на сервере через CLI:
# Просмотр процессов, потребляющих CPU top -b -n 1 | head -20 # Мониторинг использования памяти free -h # Проверка дискового ввода/вывода iostat -dx 2 5 -
Настройка базового алерта в Prometheus + Alertmanager (пример для высокого CPU):
# alert_rules.yml groups: - name: host_alerts rules: - alert: HighCpuLoad expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: "Высокая загрузка CPU на {{ $labels.instance }}"
Best Practice: Внедрять мониторинг по методологии USE (Utilization, Saturation, Errors) или RED (Rate, Errors, Duration) для комплексного покрытия метрик.