Add metrics to rate limit (#2029)

This commit is contained in:
Adrià Casajús 2024-02-06 11:55:45 +01:00 committed by GitHub
parent 05d18c23cc
commit 59d000d330
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,6 +1,7 @@
from datetime import datetime from datetime import datetime
from typing import Optional from typing import Optional
import newrelic.agent
import redis.exceptions import redis.exceptions
import werkzeug.exceptions import werkzeug.exceptions
from limits.storage import RedisStorage from limits.storage import RedisStorage
@ -28,6 +29,10 @@ def check_bucket_limit(
try: try:
value = lock_redis.incr(bucket_lock_name, bucket_seconds) value = lock_redis.incr(bucket_lock_name, bucket_seconds)
if value > max_hits: if value > max_hits:
newrelic.agent.record_custom_event(
"BucketRateLimit",
{"lock_name": lock_name, "bucket_seconds": bucket_seconds},
)
raise werkzeug.exceptions.TooManyRequests() raise werkzeug.exceptions.TooManyRequests()
except (redis.exceptions.RedisError, AttributeError): except (redis.exceptions.RedisError, AttributeError):
log.e("Cannot connect to redis") log.e("Cannot connect to redis")