mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-11 04:58:33 +03:00
refactor to use pydantic settings and WAL sqlite mode
This commit is contained in:
@@ -6,10 +6,8 @@ from loguru import logger
|
||||
from prometheus_client import Counter, Gauge
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from core.config import REPEAT_COUNT_METRICS_SECONDS
|
||||
from db import crud
|
||||
from db.database import get_db
|
||||
from core.config import SQLALCHEMY_DATABASE_URL
|
||||
from worker import REDIS_EXCEPTIONS_CHANNEL, Rdis
|
||||
|
||||
|
||||
@@ -47,20 +45,20 @@ async def redis_subscribe_worker_exceptions():
|
||||
WORKER_EXCEPTION.labels(exception=data["exception"], task=data["task"]).inc()
|
||||
await asyncio.sleep(1)
|
||||
|
||||
async def measure_regular_metrics():
|
||||
async def measure_regular_metrics(sqlite_db_url:str, repeat_in_seconds:int):
|
||||
_total, used, free = shutil.disk_usage("/")
|
||||
DISK_UTILIZATION.labels(type="used").set(used / (2**30))
|
||||
DISK_UTILIZATION.labels(type="free").set(free / (2**30))
|
||||
try:
|
||||
fs = os.stat(SQLALCHEMY_DATABASE_URL.replace("sqlite:///", ""))
|
||||
fs = os.stat(sqlite_db_url.replace("sqlite:///", ""))
|
||||
DISK_UTILIZATION.labels(type="database").set(fs.st_size / (2**30))
|
||||
except Exception as e: logger.error(e)
|
||||
|
||||
session: Session = next(get_db())
|
||||
count_archives = crud.count_archives(session)
|
||||
count_archive_urls = crud.count_archive_urls(session)
|
||||
DATABASE_METRICS.labels(query="count_archives", user="-").set(count_archives)
|
||||
DATABASE_METRICS.labels(query="count_archive_urls", user="-").set(count_archive_urls)
|
||||
with get_db as db:
|
||||
count_archives = crud.count_archives(db)
|
||||
count_archive_urls = crud.count_archive_urls(db)
|
||||
DATABASE_METRICS.labels(query="count_archives", user="-").set(count_archives)
|
||||
DATABASE_METRICS.labels(query="count_archive_urls", user="-").set(count_archive_urls)
|
||||
|
||||
for user in crud.count_by_user_since(session, REPEAT_COUNT_METRICS_SECONDS):
|
||||
DATABASE_METRICS.labels(query="count_by_user", user=user.author_id).set(user.total)
|
||||
for user in crud.count_by_user_since(db, repeat_in_seconds):
|
||||
DATABASE_METRICS.labels(query="count_by_user", user=user.author_id).set(user.total)
|
||||
Reference in New Issue
Block a user