diff --git a/snuba/query/allocation_policies/bytes_scanned_window_policy.py b/snuba/query/allocation_policies/bytes_scanned_window_policy.py index fda7e295bd9..2663e5e7552 100644 --- a/snuba/query/allocation_policies/bytes_scanned_window_policy.py +++ b/snuba/query/allocation_policies/bytes_scanned_window_policy.py @@ -216,6 +216,10 @@ def _get_quota_allowance( granted_quota = granted_quotas[0] is_throttled = False if granted_quota.granted <= 0: + self.metrics.increment( + "bytes_scanned_window_policy_throttle", + tags={"referrer": str(referrer)}, + ) is_throttled = True explanation[ "reason" diff --git a/snuba/web/db_query.py b/snuba/web/db_query.py index f2f362830cf..e1a1726bc4e 100644 --- a/snuba/web/db_query.py +++ b/snuba/web/db_query.py @@ -853,6 +853,7 @@ def _apply_allocation_policies_quota( Sets the resource quota in the query_settings object to the minimum of all available quota allowances from the given allocation policies. """ + metrics.increment("db_query_single_query") quota_allowances: dict[str, Any] = {} can_run = True rejection_quota_and_policy = None @@ -901,6 +902,9 @@ def _apply_allocation_policies_quota( _add_quota_info(summary, _THROTTLED_BY, throttle_quota_and_policy) stats["quota_allowance"]["summary"] = summary + if throttle_quota_and_policy is not None: + metrics.increment("db_query_throttled_query") + if not can_run: raise AllocationPolicyViolations.from_args(stats["quota_allowance"]) # Before allocation policies were a thing, the query pipeline would apply