mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
Обновления проекта
This commit is contained in:
@@ -656,13 +656,13 @@ DEVELOPER_CHAT_ID=your_chat_id
|
||||
|
||||
### 📁 Файлы мониторинга:
|
||||
|
||||
- `core/monitoring.py` - ядро системы мониторинга
|
||||
- `core/alerts.py` - менеджер алертов
|
||||
- `prometheus_server.py` - сервер метрик
|
||||
- `test_monitoring_integration.py` - интеграционные тесты
|
||||
- `MONITORING.md` - подробная документация
|
||||
- `README_MONITORING.md` - быстрый старт
|
||||
- `GLITCHTIP_SETUP.md` - настройка GlitchTip
|
||||
- `metrics/monitoring.py` - ядро системы мониторинга
|
||||
- `metrics/alerts.py` - менеджер алертов
|
||||
- `metrics/prometheus_server.py` - сервер метрик
|
||||
- `metrics/test_monitoring_integration.py` - интеграционные тесты
|
||||
- `metrics/MONITORING.md` - подробная документация
|
||||
- `metrics/README_MONITORING.md` - быстрый старт
|
||||
- `metrics/GLITCHTIP_SETUP.md` - настройка GlitchTip
|
||||
- `WEBHOOK_ALERTS.md` - webhook для алертов
|
||||
|
||||
### 🚀 Быстрый старт мониторинга:
|
||||
@@ -697,6 +697,11 @@ DEVELOPER_CHAT_ID=your_chat_id
|
||||
- GlitchTip: http://localhost:8000
|
||||
- Логи: bot.log
|
||||
|
||||
### 📚 Документация:
|
||||
- Все файлы метрик в папке `metrics/`
|
||||
- Основная документация: `metrics/MONITORING.md`
|
||||
- Быстрый старт: `metrics/README_MONITORING.md`
|
||||
|
||||
### 🎯 Результат:
|
||||
|
||||
Система мониторинга готова к использованию! Все ошибки, метрики и алерты настроены и протестированы. 📈
|
||||
@@ -705,7 +710,7 @@ DEVELOPER_CHAT_ID=your_chat_id
|
||||
|
||||
## Лицензия
|
||||
|
||||
MIT License - см. файл LICENSE для подробностей.
|
||||
MIT License - см. файл [LICENSE](LICENSE) для подробностей.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@
|
||||
from .application import Application
|
||||
from .config import Config
|
||||
from .exceptions import BotException, DatabaseError, ValidationError
|
||||
from .monitoring import MetricsCollector, structured_logger, measure_time, error_handler
|
||||
from .alerts import AlertManager
|
||||
from metrics.monitoring import MetricsCollector, structured_logger, measure_time, error_handler
|
||||
from metrics.alerts import AlertManager
|
||||
|
||||
__all__ = [
|
||||
'Application', 'Config', 'BotException', 'DatabaseError', 'ValidationError',
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ from telegram.ext import CommandHandler, MessageHandler, CallbackQueryHandler, f
|
||||
# Импорты из текущего пакета
|
||||
from .config import Config
|
||||
from .exceptions import BotException, ConfigurationError
|
||||
from .monitoring import MetricsCollector, structured_logger, measure_time, error_handler
|
||||
from .alerts import AlertManager
|
||||
from metrics.monitoring import MetricsCollector, structured_logger, measure_time, error_handler
|
||||
from metrics.alerts import AlertManager
|
||||
from .single_instance import check_single_instance
|
||||
|
||||
# Репозитории
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ async def test_monitoring_integration():
|
||||
try:
|
||||
# Тест 1: Проверка импорта модулей
|
||||
print("\n📦 Тест импорта модулей...")
|
||||
from core.monitoring import MetricsCollector, structured_logger
|
||||
from core.alerts import AlertManager
|
||||
from metrics.monitoring import MetricsCollector, structured_logger
|
||||
from metrics.alerts import AlertManager
|
||||
from core.config import Config
|
||||
print("✅ Все модули импортированы успешно")
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from telegram import Update
|
||||
from telegram.ext import ContextTypes
|
||||
from core.exceptions import BotException, ValidationError, PermissionError
|
||||
from utils.formatters import MessageFormatter
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
|
||||
|
||||
class BaseHandler(ABC):
|
||||
|
||||
@@ -101,7 +101,7 @@ telegram_bot_status
|
||||
### Добавление нового правила алерта
|
||||
|
||||
```python
|
||||
from core.alerts import AlertManager
|
||||
from .alerts import AlertManager
|
||||
|
||||
# В Application или где-то еще
|
||||
alert_manager = AlertManager(config, metrics)
|
||||
@@ -3,13 +3,13 @@
|
||||
## 🔧 Ядро системы мониторинга
|
||||
|
||||
### Core модули (новые)
|
||||
- **`core/monitoring.py`** - 276 строк
|
||||
- **`metrics/monitoring.py`** - 276 строк
|
||||
- MetricsCollector для сбора метрик Prometheus
|
||||
- Интеграция с Sentry/GlitchTip
|
||||
- Структурированное логирование в JSON формате
|
||||
- Декораторы для мониторинга (@measure_time, @error_handler)
|
||||
|
||||
- **`core/alerts.py`** - 249 строк
|
||||
- **`metrics/alerts.py`** - 249 строк
|
||||
- AlertManager для управления алертами
|
||||
- Настраиваемые правила алертов
|
||||
- Уведомления в Telegram, email, webhook
|
||||
@@ -28,18 +28,18 @@
|
||||
|
||||
## 🧪 Тесты
|
||||
|
||||
- **`test_monitoring_integration.py`** - 91 строка, интеграционные тесты
|
||||
- **`test_metrics_simple.py`** - 69 строк, простой тест метрик
|
||||
- **`metrics/test_monitoring_integration.py`** - 91 строка, интеграционные тесты
|
||||
- **`metrics/test_metrics_simple.py`** - 69 строк, простой тест метрик
|
||||
- **`final_test.py`** - 91 строка, финальное тестирование
|
||||
- **`tests/test_monitoring.py`** - 144 строки, unit тесты
|
||||
|
||||
## 📚 Документация
|
||||
|
||||
- **`MONITORING.md`** - 313 строк, подробная документация
|
||||
- **`README_MONITORING.md`** - 65 строк, быстрый старт
|
||||
- **`GLITCHTIP_SETUP.md`** - 59 строк, настройка GlitchTip
|
||||
- **`WEBHOOK_ALERTS.md`** - 56 строк, webhook для алертов
|
||||
- **`START_MONITORING.md`** - 146 строк, инструкция по запуску
|
||||
- **`metrics/MONITORING.md`** - 313 строк, подробная документация
|
||||
- **`metrics/README_MONITORING.md`** - 65 строк, быстрый старт
|
||||
- **`metrics/GLITCHTIP_SETUP.md`** - 59 строк, настройка GlitchTip
|
||||
- **`metrics/WEBHOOK_ALERTS.md`** - 56 строк, webhook для алертов
|
||||
- **`metrics/START_MONITORING.md`** - 146 строк, инструкция по запуску
|
||||
- **`README_SYSTEM.md`** - 82 строки, обзор системы
|
||||
- **`README_PROJECT.md`** - 49 строк, обзор проекта
|
||||
- **`README_DEVELOPER.md`** - 185 строк, руководство для разработчиков
|
||||
@@ -50,8 +50,8 @@
|
||||
|
||||
## 🛠 Утилиты
|
||||
|
||||
- **`setup_monitoring.py`** - 166 строк, автоматическая настройка
|
||||
- **`prometheus_server.py`** - 45 строк, HTTP сервер метрик
|
||||
- **`metrics/setup_monitoring.py`** - 166 строк, автоматическая настройка
|
||||
- **`metrics/prometheus_server.py`** - 45 строк, HTTP сервер метрик
|
||||
|
||||
## 📊 Обновленные файлы проекта
|
||||
|
||||
@@ -11,15 +11,15 @@
|
||||
- Система алертов в Telegram
|
||||
|
||||
2. **🛠 Инструменты мониторинга:**
|
||||
- `core/monitoring.py` - ядро системы мониторинга
|
||||
- `core/alerts.py` - менеджер алертов
|
||||
- `prometheus_server.py` - сервер метрик
|
||||
- `test_monitoring_integration.py` - тесты
|
||||
- `metrics/monitoring.py` - ядро системы мониторинга
|
||||
- `metrics/alerts.py` - менеджер алертов
|
||||
- `metrics/prometheus_server.py` - сервер метрик
|
||||
- `metrics/test_monitoring_integration.py` - тесты
|
||||
|
||||
3. **📚 Документация:**
|
||||
- `MONITORING.md` - подробная документация (313 строк)
|
||||
- `README_MONITORING.md` - быстрый старт
|
||||
- `GLITCHTIP_SETUP.md` - настройка GlitchTip
|
||||
- `metrics/MONITORING.md` - подробная документация (313 строк)
|
||||
- `metrics/README_MONITORING.md` - быстрый старт
|
||||
- `metrics/GLITCHTIP_SETUP.md` - настройка GlitchTip
|
||||
- `WEBHOOK_ALERTS.md` - webhook для алертов
|
||||
- Обновленный `README.md` с историей проекта
|
||||
|
||||
@@ -5,28 +5,28 @@
|
||||
### ✅ Что было создано:
|
||||
|
||||
#### 🔧 Ядро системы мониторинга
|
||||
- **`core/monitoring.py`** - 276 строк кода
|
||||
- **`metrics/monitoring.py`** - 276 строк кода
|
||||
- MetricsCollector для сбора метрик Prometheus
|
||||
- Интеграция с Sentry/GlitchTip
|
||||
- Структурированное логирование в JSON формате
|
||||
- Декораторы для измерения времени и обработки ошибок
|
||||
|
||||
- **`core/alerts.py`** - 249 строк кода
|
||||
- **`metrics/alerts.py`** - 249 строк кода
|
||||
- AlertManager для управления алертами
|
||||
- Настраиваемые правила алертов
|
||||
- Уведомления в Telegram, email, webhook
|
||||
|
||||
#### 🧪 Тесты и проверка
|
||||
- **`test_monitoring_integration.py`** - интеграционные тесты
|
||||
- **`test_metrics_simple.py`** - простой тест метрик
|
||||
- **`metrics/test_monitoring_integration.py`** - интеграционные тесты
|
||||
- **`metrics/test_metrics_simple.py`** - простой тест метрик
|
||||
- **`final_test.py`** - финальное тестирование всей системы
|
||||
|
||||
#### 📚 Документация
|
||||
- **`MONITORING.md`** - подробная документация (313 строк)
|
||||
- **`README_MONITORING.md`** - быстрый старт
|
||||
- **`GLITCHTIP_SETUP.md`** - настройка GlitchTip
|
||||
- **`WEBHOOK_ALERTS.md`** - webhook для алертов
|
||||
- **`START_MONITORING.md`** - полная инструкция по запуску
|
||||
- **`metrics/MONITORING.md`** - подробная документация (313 строк)
|
||||
- **`metrics/README_MONITORING.md`** - быстрый старт
|
||||
- **`metrics/GLITCHTIP_SETUP.md`** - настройка GlitchTip
|
||||
- **`metrics/WEBHOOK_ALERTS.md`** - webhook для алертов
|
||||
- **`metrics/START_MONITORING.md`** - полная инструкция по запуску
|
||||
- **`README_PROJECT.md`** - обзор проекта
|
||||
- Обновленный **`README.md`** с историей
|
||||
|
||||
@@ -27,22 +27,22 @@
|
||||
### 📁 **Созданные файлы:**
|
||||
|
||||
#### Ядро мониторинга:
|
||||
- `core/monitoring.py` - 276 строк
|
||||
- `core/alerts.py` - 249 строк
|
||||
- `metrics/monitoring.py` - 276 строк
|
||||
- `metrics/alerts.py` - 249 строк
|
||||
|
||||
#### Тесты:
|
||||
- `test_monitoring_integration.py` - 91 строка
|
||||
- `final_test.py` - 91 строка
|
||||
|
||||
#### Документация:
|
||||
- `MONITORING.md` - 313 строк (основная документация)
|
||||
- `README_MONITORING.md` - 65 строк (быстрый старт)
|
||||
- `GLITCHTIP_SETUP.md` - 59 строк (настройка)
|
||||
- `START_MONITORING.md` - 146 строк (инструкция)
|
||||
- `metrics/MONITORING.md` - 313 строк (основная документация)
|
||||
- `metrics/README_MONITORING.md` - 65 строк (быстрый старт)
|
||||
- `metrics/GLITCHTIP_SETUP.md` - 59 строк (настройка)
|
||||
- `metrics/START_MONITORING.md` - 146 строк (инструкция)
|
||||
|
||||
#### Утилиты:
|
||||
- `setup_monitoring.py` - 166 строк (автонастройка)
|
||||
- `test_metrics_simple.py` - 69 строк (тест метрик)
|
||||
- `metrics/setup_monitoring.py` - 166 строк (автонастройка)
|
||||
- `metrics/test_metrics_simple.py` - 69 строк (тест метрик)
|
||||
|
||||
### 🚀 **Для запуска:**
|
||||
|
||||
@@ -83,9 +83,9 @@
|
||||
|
||||
### 📞 **Для команды:**
|
||||
|
||||
1. **Изучите документацию:** `MONITORING.md`
|
||||
1. **Изучите документацию:** `metrics/MONITORING.md`
|
||||
2. **Запустите тесты:** `python final_test.py`
|
||||
3. **Проверьте настройку:** `python setup_monitoring.py`
|
||||
3. **Проверьте настройку:** `python metrics/setup_monitoring.py`
|
||||
4. **Следуйте руководству:** `README_DEVELOPER.md`
|
||||
|
||||
**Проект завершен успешно!** 🎊 Ваш телеграм-бот теперь имеет профессиональную систему мониторинга.
|
||||
@@ -8,7 +8,7 @@ import logging
|
||||
from typing import Dict, List, Optional, Callable
|
||||
from datetime import datetime, timedelta
|
||||
import requests
|
||||
from .config import Config
|
||||
from core.config import Config
|
||||
from .monitoring import MetricsCollector
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ from typing import Optional, Dict, Any, Callable
|
||||
from prometheus_client import Counter, Histogram, Gauge, start_http_server
|
||||
import sentry_sdk
|
||||
from sentry_sdk.integrations.logging import LoggingIntegration
|
||||
from .config import Config
|
||||
from core.config import Config
|
||||
|
||||
|
||||
class MetricsCollector:
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import logging
|
||||
from prometheus_client import start_http_server, REGISTRY
|
||||
from core.monitoring import MetricsCollector
|
||||
from .monitoring import MetricsCollector
|
||||
from core.config import Config
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ import time
|
||||
import sys
|
||||
import io
|
||||
from core.config import Config
|
||||
from core.monitoring import MetricsCollector, structured_logger
|
||||
from core.alerts import AlertManager
|
||||
from .monitoring import MetricsCollector, structured_logger
|
||||
from .alerts import AlertManager
|
||||
|
||||
# Установка UTF-8 кодировки для вывода
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||
@@ -229,7 +229,7 @@ OPENAI_API_KEY = "test_key"
|
||||
|
||||
# Создаем обработчик с правильным metrics объектом
|
||||
from handlers.user_handlers import UserHandlers
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
metrics = MetricsCollector(config)
|
||||
user_handlers = UserHandlers(config, metrics, user_service)
|
||||
|
||||
@@ -277,7 +277,7 @@ OPENAI_API_KEY = "test_key"
|
||||
|
||||
# Создаем обработчик с правильным metrics объектом
|
||||
from handlers.user_handlers import UserHandlers
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
metrics = MetricsCollector(config)
|
||||
user_handlers = UserHandlers(config, metrics, user_service)
|
||||
|
||||
@@ -319,7 +319,7 @@ OPENAI_API_KEY = "test_key"
|
||||
|
||||
# Создаем обработчик с правильным metrics объектом
|
||||
from handlers.user_handlers import UserHandlers
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
metrics = MetricsCollector(config)
|
||||
user_handlers = UserHandlers(config, metrics, user_service)
|
||||
|
||||
@@ -363,7 +363,7 @@ OPENAI_API_KEY = "test_key"
|
||||
|
||||
# Создаем обработчик с правильным metrics объектом
|
||||
from handlers.user_handlers import UserHandlers
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
metrics = MetricsCollector(config)
|
||||
user_handlers = UserHandlers(config, metrics, user_service)
|
||||
|
||||
@@ -407,7 +407,7 @@ OPENAI_API_KEY = "test_key"
|
||||
|
||||
# Создаем обработчик с правильным metrics объектом
|
||||
from handlers.user_handlers import UserHandlers
|
||||
from core.monitoring import MetricsCollector
|
||||
from metrics.monitoring import MetricsCollector
|
||||
metrics = MetricsCollector(config)
|
||||
user_handlers = UserHandlers(config, metrics, user_service)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import time
|
||||
import os
|
||||
from unittest.mock import patch, MagicMock
|
||||
from prometheus_client import REGISTRY
|
||||
from core.monitoring import MetricsCollector, structured_logger
|
||||
from metrics.monitoring import MetricsCollector, structured_logger
|
||||
from core.config import Config
|
||||
|
||||
|
||||
@@ -227,7 +227,7 @@ class TestErrorHandling:
|
||||
|
||||
def test_measure_time_decorator(self, metrics):
|
||||
"""Тест декоратора measure_time"""
|
||||
from core.monitoring import measure_time
|
||||
from metrics.monitoring import measure_time
|
||||
|
||||
@measure_time(metrics, 'test_api')
|
||||
def test_function():
|
||||
@@ -240,7 +240,7 @@ class TestErrorHandling:
|
||||
@pytest.mark.asyncio
|
||||
async def test_error_handler_decorator(self, metrics):
|
||||
"""Тест декоратора error_handler"""
|
||||
from core.monitoring import error_handler
|
||||
from metrics.monitoring import error_handler
|
||||
|
||||
@error_handler(metrics, 'test_handler')
|
||||
async def failing_function():
|
||||
|
||||
Reference in New Issue
Block a user