Подготовка к релизу

This commit is contained in:
2025-10-30 18:28:26 +03:00
parent 69c0162c6b
commit 4981db90a0
191 changed files with 45557 additions and 3651 deletions
+305
View File
@@ -0,0 +1,305 @@
# 🛠 Поддержка системы мониторинга
## 📞 Руководство по поддержке и troubleshooting
---
## 🔍 Диагностика проблем
### **Проверка статуса системы:**
#### 1. **Метрики Prometheus**
```bash
curl http://localhost:8000/metrics | grep telegram_bot
```
Ожидаемый результат: метрики ошибок, команд, пользователей
#### 2. **GlitchTip**
```bash
curl http://localhost:8000/api/1/projects/
```
Ожидаемый результат: список проектов
#### 3. **Логи бота**
```bash
tail -f bot.log | grep -E "(ERROR|CRITICAL)"
```
Ожидаемый результат: отсутствие критических ошибок
#### 4. **Статус Docker контейнеров**
```bash
docker-compose ps
```
Ожидаемый результат: все сервисы в статусе "Up"
---
## 🐛 Распространенные проблемы
### **Проблема: Метрики не собираются**
**Симптомы:** `curl http://localhost:8000/metrics` возвращает пустой ответ
**Решение:**
1. Проверьте, что бот запущен: `python new_bot.py`
2. Убедитесь, что порт 8000 свободен
3. Проверьте конфигурацию в `config_local.py`
### **Проблема: GlitchTip не отвечает**
**Симптомы:** http://localhost:8000 не открывается
**Решение:**
```bash
# Проверка контейнера
docker-compose logs glitchtip
# Перезапуск
docker-compose restart glitchtip
# Проверка порта
netstat -tlnp | grep 8000
```
### **Проблема: Алерты не приходят**
**Симптомы:** Ошибки есть, но уведомления не приходят
**Решение:**
1. Проверьте `DEVELOPER_CHAT_ID` в конфигурации
2. Убедитесь, что бот добавлен в чат
3. Проверьте права бота в чате
### **Проблема: Логи не записываются**
**Симптомы:** Файл `bot.log` не обновляется
**Решение:**
1. Проверьте права на запись в папку
2. Убедитесь, что логгер инициализирован
3. Проверьте уровень логирования в конфигурации
---
## 🔧 Настройка и конфигурация
### **Добавление новых метрик:**
```python
# В core/monitoring.py
self.new_metric = Counter('telegram_bot_custom_total', 'Description')
# В handlers
metrics.new_metric.labels(type='example').inc()
```
### **Добавление новых алертов:**
```python
# В core/alerts.py
self.alert_rules['new_alert'] = {
'enabled': True,
'threshold': 50,
'cooldown': 300,
'last_alert': None
}
```
### **Настройка уведомлений:**
```python
# В config_local.py
TELEGRAM_TOKEN = "your-bot-token"
CHAT_ID = "your-chat-id"
ENABLE_DEVELOPER_NOTIFICATIONS = True
```
---
## 📊 Мониторинг мониторинга
### **Health checks:**
#### 1. **Проверка бота:**
```bash
# Отправьте тестовое сообщение боту
# Проверьте ответ в течение 10 секунд
```
#### 2. **Проверка метрик:**
```bash
curl -s http://localhost:8000/metrics | grep "telegram_bot_status" | grep "1"
```
#### 3. **Проверка GlitchTip:**
```bash
curl -s http://localhost:8000/api/1/projects/ | grep -q "name" && echo "GlitchTip OK"
```
### **Автоматические проверки:**
```bash
# Запустите автопроверку
python setup_monitoring.py
# Запустите тесты
python final_test.py
```
---
## 🚀 Оптимизация производительности
### **Для высоких нагрузок:**
1. **Кеширование метрик:**
```python
# Используйте Redis для кеширования
REDIS_URL = "redis://localhost:6379"
```
2. **Сэмплирование:**
```python
# В monitoring.py
traces_sample_rate = 0.1 # 10% сэмплирование
```
3. **Асинхронные алерты:**
```python
# Используйте asyncio для отправки уведомлений
await self._send_telegram_alert_async(...)
```
### **Масштабирование:**
1. **Отдельный сервер метрик:**
```bash
# Prometheus на отдельном сервере
docker run -p 9090:9090 prom/prometheus
```
2. **Балансировка нагрузки:**
```bash
# Nginx для распределения запросов
upstream metrics {
server localhost:8000;
}
```
---
## 🔄 Обновление системы
### **При добавлении новых функций:**
1. **Обновите метрики:**
```python
# Добавьте новые counters/histograms
self.new_feature_metric = Counter('telegram_bot_new_feature_total')
```
2. **Обновите документацию:**
```markdown
<!-- В MONITORING.md -->
### Новые метрики
- `telegram_bot_new_feature_total` - новые функции
```
3. **Добавьте тесты:**
```python
def test_new_feature_metric():
assert metrics.new_feature_metric._value.get() >= 0
```
4. **Обновите конфигурацию:**
```python
# В config_local.py
NEW_FEATURE_ENABLED = True
```
---
## 📞 Эскалация проблем
### **Уровни поддержки:**
#### 🔴 **Критические проблемы** (немедленная реакция):
- Бот полностью не работает
- Критические ошибки в логах
- Метрики недоступны
- Алерты не приходят
#### 🟡 **Важные проблемы** (в течение часа):
- Отдельные функции не работают
- Производительность снижена
- Частые ошибки одного типа
#### 🔵 **Некритические проблемы** (в течение дня):
- Предупреждения в логах
- Оптимизация производительности
- Улучшение функциональности
### **Контакты:**
- **Технический лид:** Проверьте `README_DEVELOPER.md`
- **Команда:** Используйте `README_TEAM.md`
- **Документация:** Все инструкции в README файлах
---
## 📚 Полезные команды
### **Мониторинг:**
```bash
# Просмотр логов
tail -f bot.log
# Проверка метрик
curl http://localhost:8000/metrics
# Статус GlitchTip
docker-compose logs glitchtip
```
### **Отладка:**
```bash
# Тестирование системы
python final_test.py
# Проверка конфигурации
python setup_monitoring.py
# Тест метрик
python test_metrics_simple.py
```
### **Управление:**
```bash
# Перезапуск GlitchTip
docker-compose restart glitchtip
# Остановка всех сервисов
docker-compose down
# Просмотр логов всех контейнеров
docker-compose logs -f
```
---
## 🎯 Рекомендации по поддержке
### **Ежедневно:**
1. Проверяйте основные метрики
2. Просматривайте логи на наличие ошибок
3. Убедитесь, что алерты приходят
### **Еженедельно:**
1. Анализируйте тренды метрик
2. Проверяйте производительность
3. Обновляйте документацию при изменениях
### **Ежемесячно:**
1. Проводите полное тестирование системы
2. Обновляйте зависимости
3. Планируйте улучшения
---
**Система мониторинга настроена для легкой поддержки и развития!** 🚀
*Для команды поддержки: используйте этот документ для быстрого решения проблем*