Состояние кластера

Мониторинг состояния кластера SOBERIS позволяет отслеживать работу всех компонентов системы, анализировать производительность и предотвращать потенциальные проблемы.
Важность мониторинга
Регулярный мониторинг состояния кластера критически важен для обеспечения стабильной работы системы и предотвращения сбоев.
Обзор системы мониторинга

Система мониторинга SOBERIS собирает и агрегирует метрики со всех экземпляров приложения в кластере, предоставляя централизованный обзор состояния системы.

Архитектура мониторинга
  • Сбор метрик: Каждый экземпляр приложения собирает системные и качественные метрики
  • Хранение данных: Метрики сохраняются в Redis с настраиваемым TTL
  • Агрегация: Данные агрегируются для получения общей картины состояния кластера
  • Визуализация: Веб-интерфейс предоставляет удобное отображение метрик
Типы метрик

Системные метрики

Системные метрики отражают состояние операционной системы и JVM:
  • Процессор: Использование CPU в процентах, средняя нагрузка системы
  • Диск: Использование дискового пространства
  • Сеть: Объем переданных и полученных данных
  • Память: Использование оперативной памяти и JVM heap
  • Потоки: Количество активных, общих и daemon потоков
  • Время работы: Продолжительность работы процесса приложения
Качественные метрики

Качественные метрики характеризуют производительность приложения:
Доступ к мониторингу

Для доступа к интерфейсу мониторинга состояния кластера перейдите в раздел "Состояние кластера" в главном меню системы.
Интерпретация данных

Статусы состояния
  • HEALTHY (Здоровый): Все компоненты работают нормально, метрики в пределах нормы
  • WARNING (Предупреждение): Некоторые метрики превышают предупредительные пороги, требуется внимание
  • CRITICAL (Критическое): Критические проблемы, требуется немедленное вмешательство
  • UNKNOWN (Неизвестно): Нет данных или невозможно определить состояние
Ключевые показатели
  • Процент здоровья: Отношение здоровых экземпляров к общему количеству
  • Статус кластера: Общее состояние всего кластера
  • Активные экземпляры: Количество работающих экземпляров приложения
  • Средние метрики производительности: Агрегированные показатели по всему кластер
API для получения метрик

Система предоставляет REST API для программного доступа к метрикам кластера:

Получение метрик кластера
POST /sbrs-metric/get-metric-data
Content-Type: application/json
Authorization: Bearer <jwt-token>
SBRS-Correlation-Id: <unique-id>
SBRS-Originator: <client-name>
SBRS-Message-Id: <message-id>

{}
Структура ответа
{
    "instances": [
        {
            "instanceId": "app-instance-1",
            "qualityMetrics": {
                "averageResponseTimeMs": 150.5,
                "requestCount": 1000,
                "mongoConnectionsActive": 5,
                "redisConnectionsActive": 2,
                "isHealthy": true,
                "healthStatus": "HEALTHY",
                "healthScore": 95
            },
            "systemMetrics": {
                "cpuUsagePercent": 45.2,
                "memoryUsagePercent": 65.8,
                "diskUsagePercent": 30.1,
                "jvmUsedMemoryBytes": 1073741824,
                "jvmMaxMemoryBytes": 2147483648,
                "activeThreadCount": 25,
                "totalThreadCount": 35,
                "processUpTimeMillis": 86400000
            }
        }
    ],
    "healthSummary": {
        "totalInstances": 3,
        "healthyInstances": 2,
        "criticalInstances": 0,
        "warningInstances": 1,
        "healthPercentage": 66.7,
        "clusterStatus": "WARNING",
        "performanceMetrics": {
            "averageResponseTime": 175.3,
            "averageCpuUsage": 52.1,
            "averageMemoryUsage": 70.2,
            "averageDiskUsage": 35.5
        },
        "recommendations": [
            "Рекомендуется увеличить память для экземпляров с высоким использованием",
            "Проверить медленные запросы в базе данных"
        ]
    },
    "metricsStatus": {
        "running": true,
        "enabled": true
    },
    "timestamp": 1642681200000
}
Очистка метрик
POST /sbrs-metric/clear
Content-Type: application/json
Authorization: Bearer <jwt-token>
SBRS-Correlation-Id: <unique-id>
SBRS-Originator: <client-name>
SBRS-Message-Id: <message-id>

{}
Алерты и уведомления

Система генерирует рекомендации на основе анализа метрик:

Типы рекомендаций
Производительность
  • Высокое использование CPU
  • Нехватка памяти
  • Медленное время отклика
Ресурсы
  • Заполнение дискового пространства
  • Превышение лимитов JVM heap
  • Большое количество активных потоков
Подключения
  • Исчерпание пула подключений к MongoDB
  • Проблемы с подключением к Redis
  • Медленные запросы к базе данных
Масштабирование и оптимизация

Горизонтальное масштабирование
  • Добавление новых экземпляров приложения автоматически отражается в мониторинге
  • Балансировка нагрузки между экземплярами отслеживается в реальном времени
  • Удаление экземпляров автоматически обновляет общую картину кластера
  • Метрики агрегируются динамически в зависимости от количества экземпляров
Интеграция с внешними системами

Метрики SOBERIS можно интегрировать с внешними системами мониторинга:

Экспорт метрик
  • Prometheus: Метрики могут быть экспортированы в формате Prometheus
  • Grafana: Создание дашбордов для визуализации метрик
  • ELK Stack: Отправка логов и метрик в Elasticsearch
  • Webhooks: Настройка уведомлений при критических событиях
Устранение неполадок
Проблема: Отсутствуют данные мониторинга
Возможные причины:
  • Мониторинг отключен в конфигурации
  • Проблемы с подключением к Redis
  • Превышен TTL для метрик
Решение: Проверить настройки sbrs.metrics.enabled и подключение к Redis.
Проблема: Неточные метрики
Возможные причины:
  • Слишком большой интервал сбора метрик
  • Высокая нагрузка на систему
  • Проблемы синхронизации времени между узлами
Решение: Уменьшить интервал сбора метрик или проверить синхронизацию времени.
Проблема: Постоянные предупреждения
Возможные причины:
  • Неподходящие пороги health check
  • Недостаточные ресурсы системы
  • Проблемы с конфигурацией приложения
Решение: Пересмотреть пороги или увеличить ресурсы системы.
Лучшие практики
🔍 Мониторинг
  • Регулярно проверяйте состояние кластера
  • Ведите исторические данные для анализа трендов
  • Документируйте нормальные значения метрик для вашего окружения
  • Мониторьте использование памяти Redis для метрик
Made on
Tilda