Skip to content

Commit 5b4f74c

Browse files
authored
chore(hybridcloud) Expand logging for gitlab webhooks (#68954)
The logs still don't make sense to me based on how many hooks we receive.
1 parent c1d8bf2 commit 5b4f74c

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

src/sentry/middleware/integrations/parsers/base.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,15 @@ def get_mailbox_identifier(self, integration: RpcIntegration, data: Mapping[str,
194194
ratelimit_key = f"webhookpayload:{self.provider}:{integration.id}"
195195
use_buckets_key = f"{ratelimit_key}:use_buckets"
196196

197+
is_limited = False
198+
ratelimit_val = None
199+
reset = None
197200
use_buckets = cache.get(use_buckets_key)
198-
if not use_buckets and ratelimiter.is_limited(
199-
key=ratelimit_key, window=60 * 60, limit=3000
200-
):
201+
if not use_buckets:
202+
is_limited, ratelimit_val, reset = ratelimiter.is_limited_with_value(
203+
key=ratelimit_key, window=60 * 60, limit=3000
204+
)
205+
if not use_buckets and is_limited:
201206
# Once we have gone over the rate limit in a day, we use smaller
202207
# buckets for the next day.
203208
cache.set(use_buckets_key, 1, timeout=ONE_DAY)
@@ -210,7 +215,14 @@ def get_mailbox_identifier(self, integration: RpcIntegration, data: Mapping[str,
210215
if extra_logging:
211216
logger.info(
212217
"integrations.parser.use_buckets",
213-
extra={"provider": self.provider, "result": use_buckets},
218+
extra={
219+
"provider": self.provider,
220+
"result": use_buckets or False,
221+
"ratelimit_key": ratelimit_key,
222+
"is_limited": is_limited,
223+
"ratelimit_val": ratelimit_val,
224+
"reset": reset,
225+
},
214226
)
215227
if not use_buckets:
216228
return str(integration.id)

tests/sentry/middleware/integrations/parsers/test_gitlab.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ def test_routing_webhook_with_mailbox_buckets(self):
147147
HTTP_X_GITLAB_EVENT="Push Hook",
148148
)
149149
with mock.patch(
150-
"sentry.middleware.integrations.parsers.base.ratelimiter.is_limited"
150+
"sentry.middleware.integrations.parsers.base.ratelimiter.is_limited_with_value"
151151
) as mock_is_limited:
152-
mock_is_limited.return_value = True
152+
mock_is_limited.return_value = (True, 3500, 360)
153153
parser = GitlabRequestParser(request=request, response_handler=self.get_response)
154154
response = parser.get_response()
155155

tests/sentry/middleware/integrations/parsers/test_jira_server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ def test_routing_webhook_with_mailbox_buckets_high_volume(self):
120120
parser = JiraServerRequestParser(request=request, response_handler=self.get_response)
121121

122122
with mock.patch(
123-
"sentry.middleware.integrations.parsers.base.ratelimiter.is_limited"
123+
"sentry.middleware.integrations.parsers.base.ratelimiter.is_limited_with_value"
124124
) as mock_is_limited, mock.patch(
125125
"sentry.middleware.integrations.parsers.jira_server.get_integration_from_token"
126126
) as mock_get_token:
127-
mock_is_limited.return_value = True
127+
mock_is_limited.return_value = (True, 3500, 360)
128128
mock_get_token.return_value = self.integration
129129
response = parser.get_response()
130130
assert isinstance(response, HttpResponse)

0 commit comments

Comments
 (0)