完善权限缓存与监控指标
This commit is contained in:
@@ -17,6 +17,7 @@ from app.core.permission_monitor import (
|
||||
CacheMetrics,
|
||||
get_permission_monitor,
|
||||
set_permission_monitor,
|
||||
evaluate_permission_system_health,
|
||||
)
|
||||
|
||||
|
||||
@@ -312,3 +313,28 @@ async def test_cache_metrics_dataclass():
|
||||
|
||||
assert metrics.hit_rate == pytest.approx(80.0, 0.1)
|
||||
assert metrics.miss_rate == pytest.approx(20.0, 0.1)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_health_check_ignores_cache_hit_rate_without_samples():
|
||||
"""没有缓存访问样本时,不应判定缓存命中率过低"""
|
||||
monitor = PermissionMonitor()
|
||||
metrics = monitor.get_metrics()
|
||||
cache_stats = monitor.get_cache_stats()
|
||||
|
||||
health = evaluate_permission_system_health(metrics, cache_stats)
|
||||
|
||||
assert metrics["cache_metrics"]["total_accesses"] == 0
|
||||
assert "缓存命中率过低" not in health["issues"]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_health_check_ignores_cache_hit_rate_with_too_few_samples():
|
||||
"""缓存访问样本过少时,不应判定缓存命中率过低"""
|
||||
monitor = PermissionMonitor()
|
||||
for _ in range(3):
|
||||
monitor.record_cache_miss()
|
||||
|
||||
health = evaluate_permission_system_health(monitor.get_metrics(), monitor.get_cache_stats())
|
||||
|
||||
assert "缓存命中率过低" not in health["issues"]
|
||||
|
||||
Reference in New Issue
Block a user