e829a4060b
新增文件: - metrics.py: Prometheus 指标端点 (:9191), 10+3 个指标 - health.py: /health (liveness) + /health/ready (readiness) - webui.py: WebUI 后端 API (SSE 实时推送 + 配置热重载) - static/dashboard.html: 仪表盘前端 (Chart.js, 令牌桶仪表+队列柱状图+吞吐折线图) 更新文件: - rate_limiter.py: 增加 AdaptiveTokenBucket 避退模式 (ADR-009) 状态机 NORMAL→RETREAT→RECOVER, 429 率滑动窗口监控 - server.py: structlog 结构化日志 + 避退反馈回路 挂载 metrics_server (:9191) + health/ready + webui + /status - pyproject.toml: 增加 prometheus-client, pydantic, types-PyYAML 依赖 验证: - mypy --strict: 0 issues in 7 source files - AdaptiveTokenBucket 运行时测试通过 - 所有语法检查通过 Co-authored-by: multica-agent <github@multica.ai>
48 lines
1.0 KiB
TOML
48 lines
1.0 KiB
TOML
[project]
|
|
name = "nvidia_sidecar"
|
|
version = "0.1.0"
|
|
description = "NVIDIA Sidecar 限流代理 — 为 NVIDIA API 提供优先级排队 + 令牌桶限流"
|
|
readme = "README.md"
|
|
license = { text = "MIT" }
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115",
|
|
"uvicorn[standard]>=0.34",
|
|
"httpx>=0.28",
|
|
"PyYAML>=6.0",
|
|
"structlog>=24.4",
|
|
"prometheus-client>=0.21",
|
|
"pydantic>=2.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.3",
|
|
"pytest-asyncio>=0.24",
|
|
"httpx>=0.28",
|
|
"mypy>=1.14",
|
|
"types-PyYAML",
|
|
]
|
|
|
|
[project.scripts]
|
|
nvidia-sidecar = "nvidia_sidecar.server:main"
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=75", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools]
|
|
packages = ["nvidia_sidecar"]
|
|
|
|
[tool.setuptools.package-dir]
|
|
# Flat layout: __init__.py + all .py files at project root
|
|
"nvidia_sidecar" = "."
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
[[tool.mypy.overrides]]
|
|
module = "structlog.*"
|
|
ignore_missing_imports = true |