taolib.testing.rate_limiter.violation_tracker#

Violation tracker for recording rate limit violations to MongoDB.

Classes#

ViolationTracker

违规记录追踪器。

Module Contents#

class taolib.testing.rate_limiter.violation_tracker.ViolationTracker(mongo_collection: Any, ttl_days: int = 90)#

违规记录追踪器。

将超出限流阈值的请求记录到 MongoDB,用于后续分析和监控。

参数:
  • mongo_collection -- MongoDB 集合对象(motor 异步集合)

  • ttl_days -- 违规记录保留天数

_collection#
_ttl_days = 90#
async record_violation(identifier: str, ip_address: str, path: str, method: str, request_count: int, limit: int, window_seconds: int, retry_after: int, user_id: str | None = None, user_agent: str | None = None) None#

记录违规请求。

参数:
  • identifier -- 用户标识符

  • ip_address -- IP 地址

  • path -- 请求路径

  • method -- HTTP 方法

  • request_count -- 窗口内请求数

  • limit -- 限流阈值

  • window_seconds -- 窗口大小

  • retry_after -- 建议重试秒数

  • user_id -- 用户 ID(如果已登录)

  • user_agent -- User-Agent 头

async ensure_indexes() None#

确保 MongoDB 索引存在。