Compare commits

..

8 Commits

Author SHA1 Message Date
73569e0839 Merge pull request 'master' (#14) from master into dev
Reviewed-on: #14
2024-11-24 23:19:26 +03:00
71b1f1d4a3 Merge pull request 'fix' (#11) from master into dev
Reviewed-on: #11
2024-11-24 21:05:25 +03:00
0583fae9cc Merge pull request 'fix' (#9) from master into dev
Reviewed-on: #9
2024-11-24 18:14:54 +03:00
342264d7c7 Merge pull request 'fix' (#8) from master into dev
Reviewed-on: #8
2024-11-24 13:05:00 +03:00
81c70b61d4 Merge pull request 'fix' (#6) from master into dev
Reviewed-on: #6
2024-11-24 12:12:48 +03:00
3c851c8e8f Merge pull request 'master' (#4) from master into dev
Reviewed-on: #4
2024-11-24 11:54:32 +03:00
434f553ce4 Merge pull request 'fix' (#2) from master into dev
Reviewed-on: #2
2024-11-24 11:08:43 +03:00
47b557a618 Merge pull request 'master' (#1) from master into dev
Reviewed-on: #1
2024-11-24 11:01:26 +03:00
7 changed files with 0 additions and 51 deletions

View File

@@ -6,7 +6,6 @@ services:
image: mathwave/sprint-repo:configurator image: mathwave/sprint-repo:configurator
networks: networks:
- configurator-development - configurator-development
- monitoring
environment: environment:
MONGO_HOST: "mongo.develop.sprinthub.ru" MONGO_HOST: "mongo.develop.sprinthub.ru"
MONGO_PASSWORD: $MONGO_PASSWORD_DEV MONGO_PASSWORD: $MONGO_PASSWORD_DEV
@@ -21,5 +20,3 @@ services:
networks: networks:
configurator-development: configurator-development:
external: true external: true
monitoring:
external: true

View File

@@ -6,7 +6,6 @@ services:
image: mathwave/sprint-repo:configurator image: mathwave/sprint-repo:configurator
networks: networks:
- configurator - configurator
- monitoring
environment: environment:
MONGO_HOST: "mongo.sprinthub.ru" MONGO_HOST: "mongo.sprinthub.ru"
MONGO_PASSWORD: $MONGO_PASSWORD_PROD MONGO_PASSWORD: $MONGO_PASSWORD_PROD
@@ -21,5 +20,3 @@ services:
networks: networks:
configurator: configurator:
external: true external: true
monitoring:
external: true

View File

@@ -1,14 +0,0 @@
import datetime
import zoneinfo
from fastapi import Request, Response
from starlette.middleware.base import BaseHTTPMiddleware
from app.utils.monitoring import monitoring
class MetricsMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next):
start = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow"))
response: Response = await call_next(request)
end = datetime.datetime.now(zoneinfo.ZoneInfo("Europe/Moscow"))
monitoring.send_metric(start, end, request.url.path, response.status_code, request.method)
return response

View File

@@ -1,25 +0,0 @@
from concurrent.futures import ThreadPoolExecutor
import datetime
import requests
class Monitroing:
def __init__(self):
self.executor = ThreadPoolExecutor(max_workers=1)
def send_metric(self, start: datetime.datetime, end: datetime.datetime, endpoint: str, status_code: int, method: str):
def send():
requests.post(f'http://monitoring:1237/api/v1/metrics/endpoint', json={
'timestamp': start.strftime("%Y-%m-%dT%H:%M:%S") + "Z",
'service': 'configurator',
'endpoint': endpoint,
'status_code': status_code,
'response_time': (end - start).microseconds // 1000,
'method': method,
'environment': 'production',
})
self.executor.submit(send)
monitoring = Monitroing()

View File

@@ -1,7 +1,6 @@
import fastapi import fastapi
import uvicorn import uvicorn
from app.middlewares.metrics import MetricsMiddleware
from app.routers import experiments from app.routers import experiments
from app.routers import configs from app.routers import configs
from app.routers import staff from app.routers import staff
@@ -11,7 +10,6 @@ from app.storage import mongo
app = fastapi.FastAPI() app = fastapi.FastAPI()
app.add_middleware(MetricsMiddleware)
app.include_router(experiments.router) app.include_router(experiments.router)
app.include_router(configs.router) app.include_router(configs.router)

View File

@@ -1,8 +1,6 @@
annotated-types==0.7.0 annotated-types==0.7.0
anyio==4.6.2.post1 anyio==4.6.2.post1
APScheduler==3.10.4 APScheduler==3.10.4
certifi==2025.6.15
charset-normalizer==3.4.2
click==8.1.7 click==8.1.7
dnspython==2.7.0 dnspython==2.7.0
fastapi==0.115.4 fastapi==0.115.4
@@ -14,11 +12,9 @@ pydantic_core==2.23.4
pymongo==4.9.2 pymongo==4.9.2
pytz==2024.2 pytz==2024.2
redis==5.2.0 redis==5.2.0
requests==2.32.4
six==1.16.0 six==1.16.0
sniffio==1.3.1 sniffio==1.3.1
starlette==0.41.2 starlette==0.41.2
typing_extensions==4.12.2 typing_extensions==4.12.2
tzlocal==5.2 tzlocal==5.2
urllib3==2.4.0
uvicorn==0.32.0 uvicorn==0.32.0