Initial commit: Add infrastructure and bot project
This commit is contained in:
100
infra/monitoring/test_monitor.py
Normal file
100
infra/monitoring/test_monitor.py
Normal file
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Тестовый скрипт для проверки работы модуля мониторинга
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
import logging
|
||||
|
||||
# Добавляем текущую директорию в путь для импорта
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from server_monitor import ServerMonitor
|
||||
|
||||
# Настройка логирования
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
|
||||
def main():
|
||||
"""Основная функция тестирования"""
|
||||
print("🚀 Тестирование модуля мониторинга сервера")
|
||||
print("=" * 50)
|
||||
|
||||
try:
|
||||
# Создаем экземпляр мониторинга
|
||||
monitor = ServerMonitor()
|
||||
|
||||
# Получаем информацию о системе
|
||||
print("📊 Получение информации о системе...")
|
||||
system_info = monitor.get_system_info()
|
||||
|
||||
if system_info:
|
||||
print("✅ Информация о системе получена успешно")
|
||||
print(f" CPU: {system_info.get('cpu_percent', 'N/A')}%")
|
||||
print(f" RAM: {system_info.get('ram_percent', 'N/A')}%")
|
||||
print(f" Диск: {system_info.get('disk_percent', 'N/A')}%")
|
||||
print(f" Хост: {system_info.get('server_hostname', 'N/A')}")
|
||||
print(f" ОС: {monitor.os_type}")
|
||||
else:
|
||||
print("❌ Не удалось получить информацию о системе")
|
||||
return
|
||||
|
||||
# Проверяем статус процессов
|
||||
print("\n🤖 Проверка статуса процессов...")
|
||||
voice_status, voice_uptime = monitor.check_process_status('voice_bot')
|
||||
helper_status, helper_uptime = monitor.check_process_status('helper_bot')
|
||||
|
||||
print(f" Voice Bot: {voice_status} - {voice_uptime}")
|
||||
print(f" Helper Bot: {helper_status} - {helper_uptime}")
|
||||
|
||||
# Получаем метрики для Prometheus
|
||||
print("\n📈 Получение метрик для Prometheus...")
|
||||
metrics = monitor.get_metrics_data()
|
||||
|
||||
if metrics:
|
||||
print("✅ Метрики получены успешно")
|
||||
for key, value in metrics.items():
|
||||
print(f" {key}: {value}")
|
||||
else:
|
||||
print("❌ Не удалось получить метрики")
|
||||
|
||||
# Проверяем алерты
|
||||
print("\n🚨 Проверка алертов...")
|
||||
alerts, recoveries = monitor.check_alerts(system_info)
|
||||
|
||||
if alerts:
|
||||
print(f" Найдено алертов: {len(alerts)}")
|
||||
for alert_type, value, details in alerts:
|
||||
print(f" {alert_type}: {value}% - {details}")
|
||||
else:
|
||||
print(" Алертов не найдено")
|
||||
|
||||
if recoveries:
|
||||
print(f" Найдено восстановлений: {len(recoveries)}")
|
||||
for recovery_type, value in recoveries:
|
||||
print(f" {recovery_type}: {value}%")
|
||||
|
||||
# Получаем сообщение о статусе
|
||||
print("\n💬 Формирование сообщения о статусе...")
|
||||
status_message = monitor.get_status_message(system_info)
|
||||
if status_message:
|
||||
print("✅ Сообщение о статусе сформировано")
|
||||
print(" Первые 200 символов:")
|
||||
print(f" {status_message[:200]}...")
|
||||
else:
|
||||
print("❌ Не удалось сформировать сообщение о статусе")
|
||||
|
||||
print("\n🎉 Тестирование завершено успешно!")
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Ошибка при тестировании: {e}")
|
||||
logging.error(f"Ошибка при тестировании: {e}", exc_info=True)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == "__main__":
|
||||
exit(main())
|
||||
Reference in New Issue
Block a user