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