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)