Loading
docs(conformance): pin the rate-limit block summary log line
What
Adds one "v1 decisions" bullet to conformance/README.md that pins a new rate-limit log line, rate_limit_block_summary.
labkit-ruby adds the summary next, so the contract lands here first.
Why
Blocked requests in gitlab-rails are recorded as endpoint_id="unknown", so we can see that a rule blocked but not which endpoint.
A Prometheus counter for this was rolled back for series volume.
The summary counts blocks in memory and logs one line per (endpoint_id, rule) pair every interval instead.
Context: gitlab-org/gitlab#638007.
What the bullet pins
INFO,message=rate_limit_block_summary,endpoint_id,rate_limit_rule, integerblock_count, optionalfeature_category. The key is the pair, and the first non-nilfeature_categorypassed is the one logged.- At most
max_pairspairs per process per interval (default 10). The rest fold into oneotherline. - No line when nothing was counted.
- A logging failure reuses the fail-open
WARN(message=rate_limit_error) and addsdropped_pairs.
Not in this MR
- No
fields.yamlchange. The existing rate-limit WARN already logsrule,nameandidentifierwithout entries there. Happy to add them if reviewers want them canonical. - No scenario yet. The Ruby server pins
gitlab-labkit ~> 5.6.0, which has noBlockSummary. The scenario follows with the pin bump after the labkit-ruby release. - Go and Rust have no summary yet.
Checklist
- Teammate review
- Maintainer review
Edited by Nidhey Indurkar