Skip to content

Better handling of Redis OOM conditions#970

Merged
rgalanakis merged 6 commits intomainfrom
async-backoff
Jun 24, 2025
Merged

Better handling of Redis OOM conditions#970
rgalanakis merged 6 commits intomainfrom
async-backoff

Conversation

@rgalanakis
Copy link
Contributor

We had a short outage due to Redis OOM issues. This solves for that to prevent a future outage.


Report resilient action fallbacks to Sentry

When we have to use the resilient inserts, make sure we know
about it in Sentry.


Resilient Sidekiq: Also handle OOMs

Handle OOM (command errors) in addition to connection errors.


Autoscaler: Refactor to get an instance

Allow us to do

Webhookdb::Async::Autoscaler.build_autoscaler.unpersist

to reset an autoscaling situation, if ever needed.


Get new Amigo with auto-disabled backoff in OOM

Get the new Amigo 1.10, which will auto-disable backoff job
behavior if we are above 90% memory usage.


Add /system/service_health endpoint

Let us know about latency, and if we're in an autoscaling event.


Allow disabling of queue and semaphore backoff

Set ASYNC_BACKOFF_DISABLED=true

Set `ASYNC_BACKOFF_DISABLED=true`
Let us know about latency, and if we're in an autoscaling event.
Get the new Amigo 1.10, which will auto-disable backoff job
behavior if we are above 90% memory usage.
Allow us to do

	Webhookdb::Async::Autoscaler.build_autoscaler.unpersist

to reset an autoscaling situation, if ever needed.
Handle OOM (command errors) in addition to connection errors.
When we have to use the resilient inserts, make sure we know
about it in Sentry.
@codecov
Copy link

codecov bot commented Jun 24, 2025

Codecov Report

Attention: Patch coverage is 96.72131% with 2 lines in your changes missing coverage. Please review.

Project coverage is 97.61%. Comparing base (0e91bda) to head (930ec7e).
Report is 6 commits behind head on main.

Files with missing lines Patch % Lines
lib/webhookdb/api/system.rb 87.50% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #970      +/-   ##
==========================================
- Coverage   97.61%   97.61%   -0.01%     
==========================================
  Files         490      490              
  Lines       31133    31186      +53     
==========================================
+ Hits        30392    30443      +51     
- Misses        741      743       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rgalanakis rgalanakis merged commit dbfdac7 into main Jun 24, 2025
4 checks passed
@rgalanakis rgalanakis deleted the async-backoff branch June 24, 2025 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant