> Как реализовать сложные триггеры для мониторинга, например отправку SMS при загрузке CPU и низком потреблении памяти (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: Международный аэропорт Шереметьево

Стек: Python

> Пример ответа

Для реализации сложного триггера мониторинга, например отправки SMS при высокой загрузке CPU и низком потреблении памяти, можно использовать комбинацию системных библиотек (например, psutil для сбора метрик) и внешнего сервиса для отправки сообщений (например, Twilio или API SMS-провайдера). Ниже приведён пример на Python:

PYTHON
import psutil
import time
from 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) или асинхронные очереди, но данный пример демонстрирует суть реализации сложного триггера.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью