Files
bottohelp/README_SUPPORT.md

305 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🛠 Поддержка системы мониторинга
## 📞 Руководство по поддержке и 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. Планируйте улучшения
---
**Система мониторинга настроена для легкой поддержки и развития!** 🚀
*Для команды поддержки: используйте этот документ для быстрого решения проблем*