2.8 KiB
2.8 KiB
Digest Windows and Throttling
Module
Notifier
Status
IMPLEMENTED
Description
Digest generation for coalescing notifications within configurable time windows.
Implementation Details
- INotifyThrottler interface:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/NotifyThrottler.cs--RecordEventAsync,CheckAsync(with configurable window/maxEvents),ClearAsyncfor per-key throttle management - InMemoryNotifyThrottler:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/NotifyThrottler.cs-- in-memory sliding window throttler withConcurrentDictionary<string, ThrottleState>,ThrottlerOptionsfor default window/max - IThrottleConfigService:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/IThrottleConfigService.cs-- per-tenant throttle configuration - ThrottleConfigService:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/ThrottleConfigService.cs-- resolves throttle windows per event kind - ThrottleConfigurationService:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/ThrottleConfigurationService.cs-- advanced throttle configuration management - QuietHoursServiceExtensions:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/QuietHoursServiceExtensions.cs-- quiet hours integration with throttling - ThrottleEndpoints:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/ThrottleEndpoints.cs-- REST API for throttle configuration - QuietHoursContracts:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Contracts/QuietHoursContracts.cs-- quiet hours request/response models - IOperatorOverrideService:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/IOperatorOverrideService.cs-- operator override for throttle bypass - OperatorOverrideService:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Worker/Correlation/OperatorOverrideService.cs-- operator override implementation - OperatorOverrideEndpoints:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.WebService/Endpoints/OperatorOverrideEndpoints.cs-- REST API for operator overrides - Tests:
src/Notifier/StellaOps.Notifier/StellaOps.Notifier.Tests/Correlation/NotifyThrottlerTests.cs,ThrottleConfigServiceTests.cs,ThrottleConfigurationServiceTests.cs - Source: Feature matrix scan
E2E Test Plan
- Verify sliding window throttling suppresses notifications exceeding maxEvents within window
- Test per-tenant throttle configuration via ThrottleEndpoints API
- Verify quiet hours suppress notifications during configured periods
- Test operator override allows bypassing throttle for specific keys
- Verify throttle state clears after incident resolution
- Test throttle configuration persists across service restarts