mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
305 lines
8.3 KiB
Markdown
305 lines
8.3 KiB
Markdown
# 🛠 Поддержка системы мониторинга
|
||
|
||
## 📞 Руководство по поддержке и 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. Планируйте улучшения
|
||
|
||
---
|
||
|
||
**Система мониторинга настроена для легкой поддержки и развития!** 🚀
|
||
|
||
*Для команды поддержки: используйте этот документ для быстрого решения проблем* |