# 🛠 Поддержка системы мониторинга

## 📞 Руководство по поддержке и 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. Планируйте улучшения

---

**Система мониторинга настроена для легкой поддержки и развития!** 🚀

*Для команды поддержки: используйте этот документ для быстрого решения проблем*