Skip to content

fix(observability): attribute outage refusals to caller, bucket, and probe count - #62

Merged
polylane[bot] merged 1 commit into
polylane/autofix/hzqaqasosy02from
polylane/autofix/6jmfjvu9nkvk
Sep 19, 2026
Merged

polylane[bot] merged 1 commit into
polylane/autofix/hzqaqasosy02from
polylane/autofix/6jmfjvu9nkvk

Conversation

@polylane

@polylane polylane Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Generated by Polylane Autofix from the review of #60.

When Redis is unreachable the MCP surface refuses requests and the link prober stops probing, and the events those refusals produced could not be tied to a caller or a scope. The refusals now record the affected user, the rate-limit bucket, and the number of probes turned away, so an operator can see who an outage is affecting while it is happening.

Why this fix

While Redis is unreachable the MCP surface fails closed, so every affected caller gets an error and nothing is written. Those refusals were unattributable. rate limit unavailable; rejecting request carried no fields at all, and the counter-failure warning below it carried the bucket and the error but no user. An operator looking at an outage therefore saw a count of refusals and could not tell which tokens were hit, whether one heavy caller dominated, or whether the write bucket was the one being refused. Both sites now carry userId and bucket, so "who is being refused right now, and on which scope" is answerable from the log stream while the outage is live.

The link-probe refusals had the mirror gap: they named the user but not the probe count, so the amount of outbound fan-out the refusal prevented was invisible. Both refusal warnings now carry amount, which separates a refusal that stopped a handful of probes from one that stopped a large fan-out.

These are field additions to existing events: no new log sites, no level changes, no message changes, so nothing that currently clusters by message changes shape. userId, bucket, and amount are plain values that the shared formatter does not redact, and no payload, URL, or credential is added.

The refusals themselves remain the intended fail-closed policy; this change only makes them attributable. Any operator complaint that the outage is still visible is a Redis-health question rather than a code change here.

3 files changed (+12/-3)
  • app/mcp/route.ts: modified, +9/-3
  • lib/collections/link-reachability.ts: modified, +2/-0
  • lib/integrations/mcp/rate-limit.ts: modified, +1/-0

View thread View autofix


Generated by Polylane. You can ask follow-ups by mentioning @polylane in a comment.

…probe count

Co-authored-by: polylane[bot] <277585245+polylane[bot]@users.noreply.github.com>
@polylane polylane Bot added polylane severity:low Polylane autofix severity: low labels Sep 19, 2026
@coderabbitai

coderabbitai Bot commented Sep 19, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: f4e69843-894a-4a66-abe7-22cbf9be3af5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@vercel

vercel Bot commented Sep 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cache-app Ready Ready Preview Sep 19, 2026 8:04am UTC

@polylane
polylane Bot requested a review from gilsmt September 19, 2026 08:03
@polylane
polylane Bot merged commit 1ee1cfc into polylane/autofix/hzqaqasosy02 Sep 19, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

polylane severity:low Polylane autofix severity: low

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant