> Как реализовать сложные триггеры для мониторинга, например отправку SMS при загрузке CPU и низком потреблении памяти (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Международный аэропорт Шереметьево
Стек: Python
> Пример ответа
Для реализации сложного триггера мониторинга, например отправки SMS при высокой загрузке CPU и низком потреблении памяти, можно использовать комбинацию системных библиотек (например, psutil для сбора метрик) и внешнего сервиса для отправки сообщений (например, Twilio или API SMS-провайдера). Ниже приведён пример на Python:
PYTHONimport psutilimport timefrom twilio.rest import Client# Конфигурация Twilio (замените на свои данные)TWILIO_SID = 'your_account_sid'TWILIO_TOKEN = 'your_auth_token'TWILIO_PHONE = '+1234567890'TO_PHONE = '+0987654321'def send_sms(message):client = Client(TWILIO_SID, TWILIO_TOKEN)client.messages.create(body=message, from_=TWILIO_PHONE, to=TO_PHONE)def check_trigger():cpu_percent = psutil.cpu_percent(interval=1)memory = psutil.virtual_memory()memory_percent = memory.percent# Условие: CPU > 80% И память < 20%if cpu_percent > 80 and memory_percent < 20:alert = f"Тревога! CPU: {cpu_percent}%, Память: {memory_percent}%"send_sms(alert)print("SMS отправлено:", alert)# Запуск мониторинга с интервалом 60 секундwhile True:check_trigger()time.sleep(60)
Ключевые моменты:
- Используется
psutilдля получения метрик CPU и памяти. - Условие триггера - комбинация двух порогов (высокий CPU и низкая память).
- Для отправки SMS применяется Twilio (требуется регистрация и API-ключи).
- Цикл с
time.sleep()обеспечивает периодическую проверку.
Для продакшена лучше использовать готовые системы мониторинга (Prometheus + Alertmanager) или асинхронные очереди, но данный пример демонстрирует суть реализации сложного триггера.
> Похожие задачи по Python
Как организовать подключение к Zabbix
Как реализовать джобы с разной частотой выгрузки данных из Zabbix
Как проверять корректность работы сервиса и обработку сообщений по разным приоритетам вовремя
Как реализовать функцию сокращения URL
> Похожие задачи по backend
Как организовать подключение к Zabbix
Как реализовать джобы с разной частотой выгрузки данных из Zabbix
Как проверять корректность работы сервиса и обработку сообщений по разным приоритетам вовремя
Как реализовать функцию сокращения URL
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью