Initial commit: Message Gateway project

- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-11-12 20:25:11 +03:00
commit b90def35ed
72 changed files with 10609 additions and 0 deletions

41
app/common/logger.py Normal file
View File

@@ -0,0 +1,41 @@
"""
Настройка логирования приложения.
Автор: Сергей Антропов
Сайт: https://devops.org.ru
"""
import logging
import os
from opentelemetry.instrumentation.logging import LoggingInstrumentor
# Настраиваем уровень логирования сначала
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Настройка логирования с поддержкой OpenTelemetry
try:
from app.core.config import settings
if settings.otel_enabled:
LoggingInstrumentor().instrument(
set_logging_format=True,
logging_format='%(levelname)s:\t %(message)s traceID=%(otelTraceID)s spanID=%(otelSpanID)s'
)
logger.info("OpenTelemetry логирование включено")
else:
LoggingInstrumentor().instrument(
set_logging_format=True,
logging_format='%(levelname)s:\t %(message)s'
)
except Exception as e:
logger.warning(f"Ошибка настройки OpenTelemetry логирования: {e}")
# Используем базовое логирование
LoggingInstrumentor().instrument(
set_logging_format=True,
logging_format='%(levelname)s:\t %(message)s'
)