Files
MessageGateway/app/common/metrics.py
Sergey Antropov b90def35ed Initial commit: Message Gateway project
- FastAPI приложение для отправки мониторинговых алертов в мессенджеры
- Поддержка Telegram и MAX/VK
- Интеграция с Grafana, Zabbix, AlertManager
- Автоматическое создание тикетов в Jira
- Управление группами мессенджеров через API
- Декораторы для авторизации и скрытия эндпоинтов
- Подробная документация в папке docs/

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-11-12 20:25:11 +03:00

33 lines
1.4 KiB
Python

from prometheus_client import make_asgi_app, Counter, Gauge, CollectorRegistry, push_to_gateway # Добавляем метрики для прометея
from fastapi import Request
import os
#def add_middleware(app):
# # Обьявляем метрики, которые будем собирать
# registry = getMetricsRegistry()
# all_requests = Counter('tg_monitoring_gateway_all_requests_counter', 'Счетчик запросов', registry=registry)
# # Запускаем счетчик запросов
# @app.middleware("request_count")
# def request_count(request: Request, call_next):
# all_requests.inc()
# pushMetricsRegistry(registry, all_requests)
# response = call_next(request)
# return response
#def getMetricsRegistry():
# registry = CollectorRegistry()
# return(registry)
#def pushMetricsRegistry(registry, metric):
# pushgateway_url = os.getenv('PUSHGATEWAY_URL')
# pushgateway_job = os.getenv('PUSHGATEWAY_JOB')
# push_to_gateway(pushgateway_url, job=pushgateway_job, registry=registry)
# return(metric)
#def requestsCount(registry, endpoint):
# all_requests = Counter('tg_monitoring_gateway_api_requests_counter', 'Счетчик запросов к API', labelnames=['endpoint'], registry=registry)
# all_requests.labels(endpoint=endpoint).inc()
# pushMetricsRegistry(registry, all_requests)
# return(endpoint)