yuluo-yx opened a new issue, #3068:
URL: https://github.com/apache/rocketmq-dashboard/issues/3068

   ## Problem
   
   RocketMQ Studio can currently mute native alert notifications only with a 
one-time `startsAt` / `endsAt` interval. Regular operations such as daily 
backups, weekly broker maintenance, and recurring deployment windows must be 
recreated manually before every occurrence. Missing one of those manual 
silences can produce a predictable notification storm.
   
   ## Current behavior and reproduction
   
   1. Open **Ops > System Alerts > Maintenance windows**.
   2. Create a maintenance window.
   3. Observe that the form and `POST /api/alert-silences` contract accept only 
one start and one end timestamp.
   4. After `endsAt`, the database query permanently excludes the record 
(`starts_at <= now AND ends_at > now`); there is no recurrence schedule to 
evaluate.
   
   The current persistence model confirms this limitation: `rmq_alert_silence` 
contains only `starts_at` and `ends_at` for schedule timing.
   
   ## Proposed behavior
   
   Support bounded recurring alert silences while preserving existing one-time 
records:
   
   - recurrence modes: one time, daily, and weekly;
   - IANA time zone so recurring wall-clock times remain stable across DST 
transitions;
   - ISO weekday selection for weekly schedules;
   - a required recurrence end to prevent accidental indefinite notification 
suppression;
   - correct handling of windows that cross midnight;
   - UI and API visibility of the recurrence details;
   - schema migration for existing installations, defaulting old rows to 
one-time behavior.
   
   ## Acceptance criteria
   
   - Existing one-time silences behave unchanged.
   - Daily and weekly occurrences suppress only matching alert scopes and 
labels.
   - The active occurrence end is returned to alert delivery logic, including 
overlapping windows.
   - Invalid time zones, unbounded schedules, invalid weekdays, and overlong 
windows are rejected.
   - Browser-local time does not change the meaning of a wall-clock time 
entered for another IANA zone.
   - Fresh databases and upgraded databases both receive the recurrence columns 
and lookup index.
   - Backend, frontend, DST, schema, API contract, and UI flow tests cover the 
behavior.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to