chore: initial public snapshot for github upload
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Prometheus multiprocess directory cleanup utilities.
|
||||
|
||||
Wipes all .db files on startup so workers start with a clean slate.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import glob
|
||||
import os
|
||||
|
||||
from litellm._logging import verbose_proxy_logger
|
||||
|
||||
|
||||
def wipe_directory(directory: str) -> None:
|
||||
"""Delete all .db files in the directory. Called once before workers fork."""
|
||||
files = glob.glob(os.path.join(directory, "*.db"))
|
||||
deleted = 0
|
||||
for filepath in files:
|
||||
try:
|
||||
os.remove(filepath)
|
||||
deleted += 1
|
||||
except OSError as e:
|
||||
verbose_proxy_logger.warning(
|
||||
f"Failed to delete stale prometheus file {filepath}: {e}"
|
||||
)
|
||||
if deleted:
|
||||
verbose_proxy_logger.info(
|
||||
f"Prometheus cleanup: wiped {deleted} stale .db files from {directory}"
|
||||
)
|
||||
|
||||
|
||||
def mark_worker_exit(worker_pid: int) -> None:
|
||||
"""Remove prometheus .db files for a dead worker. Called by gunicorn child_exit hook."""
|
||||
if not os.environ.get("PROMETHEUS_MULTIPROC_DIR"):
|
||||
return
|
||||
try:
|
||||
from prometheus_client import multiprocess
|
||||
|
||||
multiprocess.mark_process_dead(worker_pid)
|
||||
verbose_proxy_logger.info(
|
||||
f"Prometheus cleanup: marked worker {worker_pid} as dead"
|
||||
)
|
||||
except Exception as e:
|
||||
verbose_proxy_logger.warning(
|
||||
f"Failed to mark prometheus worker {worker_pid} as dead: {e}"
|
||||
)
|
||||
Reference in New Issue
Block a user