Куда смотреть, чтобы определить причину падения микросервиса
Python
Middle
Без компании
Куда смотреть, чтобы определить причину падения микросервиса
Ответы
Основные направления для диагностики:
- **Логи сервиса** – ищите ошибки (ERROR, CRITICAL) и стектрейсы.
- **Метрики** – CPU, память, дисковое пространство, сетевые задержки (Prometheus, Grafana).
- **Журналы оркестратора** – Kubernetes (kubectl logs, describe pod) или Docker (docker logs).
- **Внешние зависимости** – проверьте доступность БД, API, брокеров сообщений (Kafka, RabbitMQ).
- **Health checks** – эндпоинты `/health` или `/ready` могут показать проблемы до падения.
Пример проверки логов в Python:
```
import logging
logging.basicConfig(
level=logging.INFO,
filename='service.log',
format='%(asctime)s - %(levelname)s - %(message)s'
)
try:
# Код сервиса
except Exception as e:
logging.critical(f"Service crashed: {e}", exc_info=True)
```
Дополнительно: мониторьте ограничения ресурсов (OOMKiller, CPU throttling) и конфигурацию (env-переменные, файлы конфигов).