- Core: Updated grafana webhook for v8.5+
- Core: Supporting Opentelemetry
- Core: Simpler logging configuration, and refactored logs
- Core: Removed the clustering feature, and opted for a regular sync job from the database
- Core: Better support of environment variables for lists and nested objects
- Web: Updating some deprecated libraries
- Web: Searching will now reset the current page to the first page
- Core: Fixed issue regarding regex options for Mongo
- Core: Nb of arguments mismatch in Modifications WebUI vs Backend
- Core: Preventing the crash of the delayed action thread in certain cases
- Core: Fixing processing of nested rules
- Core: OK for snoozed alerts are now correctly removed from batch send
- Core: Would not get the username when writing a comment with no Display name
- Web: Cliking on the main graph in Dashboard redirects to the corresponding alerts
- Web: Alerts preview when writing a condition
- Web: Can set modifications when re-opening an alert
- Web: New treeview for Rules. Drag&Drop support
- Web: Drag&Drop support for Environments
- Web: New Environment bar. Can select multiple ones at the same time
- Core: Support for Grafana 8.5+ (same webhook)
- Core: Housekeeper: cleanup rule orphans
- Web: Updated all web packages + NodeJS (10->12)
- Web: Enabled/Disabled labels replaced with Checkmark/Crossmark
- Core: DB query typo in Actions
- Core: Batch form would not being displayed if no action was previously created
- Core: Fixed issue preventing the flapping counter from being reset
- Core: Fixed duplicate alerts issue in case of burst
- Web: Added a frequency display in Notifications
- Web: Added a batch display in Actions
- Core: Monitoring endpoint at
/api/health
- Core: Nagios/Icinga compatible check script (
check_snooze_server
)
- Core: Code linting and adding type hints
- Core: Now pre-catching all database errors to give more information about what was the query before throwing an exception
- Core: Backups can now fail independently on a per-collection basis
- Web: Bad display for Sunday
- Web: Sort weekdays
- Web: Could not reset Conditions right member correctly
- Core: Improving the thread management to prevent rogue threads dying without causing Snooze to die as well.
- Core: Fixing an issue related to the URL character limit when passing the connection string to kombu. Now it is using a patched transport backend that passes MongoClient()[database] directly.
- Core: Making sure batched actions are not out to date
- Core: TinyDB Audit was broken
- Core: Increasing log file size from 1MB to 100MB
- Core: Catching issues better within Action thread
- Core: Pretty big typo in Action class
- Web: Custom message for no alerts
- Web: Show current version in Status
- Core: Supports batched actions
- Core: Audit logs
- Core: Supports time constraints over midnight
- Core: Added daily backups
- Core: Prevent alerts flapping
- Env: Switched from pyenv to poetry
- Web: Removed CoreUI Collapse component
- Web: Resets current page number when changing tabs
- Web: Sunday was numbered as 7 instead of 6
- Web: Trim tags
- Web: Time related filters correctly updated on refresh
- Web: Fixed datetime on keyboard input
- Web: Fixed modals bouncing unexpectedly
- Core: (!=) Condition will not assume the field exists
- Core: Properly delete discarded logs
- Core: Fixed a concurrency issue when reloading plugins
- Core: Fixed an issue with IN operator for TinyDB
- Core: Prevent rejecting all PUT and POST data if only one is failing
- Core/Web: Better handling of strings in conditions and modifications
- Core/Web: Supports AND/OR condititions with more than 2 arguments
- Core: New Key-values modification (add fields to an alert based on matching a dictionary)
- Core: Added rotating logs in /var/log/snooze/snooze-server.log
- Core: Added
notification_from
field to Alerts when they get re-escalated - Core: Resend failed notifications (configurable in Settings)
- Core: Supports prometheus-client 13.x
- Web: Fixed a display error when deleting part of a condition
- Web: Active and Upcoming Snooze filters/Notifications were sometimes wrong
- Web: Supports history for sorting and paging
- Core: Avoid loading in memory unnecessary plugin data
- Core: Fixed an issue with duplicate policies using Replace (lost UID)
- Core: Better handling of crashed conditions and modifications
- Core: Fixed a Time Constraints issue with exact matches
- Core: Triggered notifications in an alert were capped at one item
- Core: Metrics api endpoint failed to return sometimes
- Core: Do not retry all actions if only one fails
- Core: Fixed memory issue with comment related queries
- Web: Better display for some tables
- Web: Better display for Modifications
- Web: Set tables to a busy state for each request
- Core: RegexSub (useful for improving aggregation or scrapping secrets)
- Core: Prometheus webhook added
- Web: Could not clear search if the bar was empty
- Web: Improved Widget + Environment bar display
- Web: Few display issues
- Web: Modals and Toasts were not disappearing once faded out
- Web: Time in Time Constaints was reset when updating
- Web: Snooze filters Retro apply modal was not showing up
- Core: Conditions refactoring
- Web: Added Copy selection in tables context menu
- Web: Added Search selection in tables context menu
- Web: Values in Modifications were not correctly retrieved in edit mode
- Web: Mail and Grafana Infos wre not correctly ported to CoreUI 4.x
- Core: Grafana webhook did not work correctly if tags were empty
- Core: Conditions were not working if they were null
- Core: Receiving multiple OK for the same alert now processes the first one only
- Core: Forced Pymongo < 4.0
- Web: Updated from Vue 2.x to 3.x
- Web: Updated CoreUI from 3.x to 4.x
- Web: Removed Bootstrap dependency
- Web: Converted Radio buttons to Switches
- Web: Added row selector to Tables
- Core: Added alert_closed metric
- Core: Added SNOOZE_CLUSTER env variable
- Core: Separated alerts and comments housekeeping
- Core: New modification: Regex Parse
- Added full container deployment (docker-compose.yaml)
- Core: Could get duplicates if multiple servers were bootstraped at the same time
- WebUI Settings: configure severity levels that automatically close alerts
- Can now configure WebUI tables directly from config files
- Housekeeper: Also cleanup expired notifications
- JWT Tokens were not functioning properly
- Retro actively apply Snooze filters were throwing error messages if no change was made
- CONTAINS and IN conditions were not working properly if an alert value was empty
- Stats dashboard stored in TinyDB had chances to lock the DB when being displayed
- TinyDB was broken since v1.0.11
- Date was handled incorrectly for TinyDB metric features
- Github CI fix
- Storing metrics locally and displaying a dashboard
- Can configure a default landing page in preferences
- Keeping track of Last login for all users
- InfluxDB 2.0 webhook added
- Do no crash whenever a plugin fails to load
- Widgets pretty print was not working properly
- Failed webhook actions did not register as failed properly
- External core plugins support
- Added a spinner in the webUI when doing a DB query
- Search in Alerts should be faster
- Resized Condition box to get more input space
- Snooze filters can discard alerts
- Retro apply Snooze filters to all alerts
- Going back to wsgiref. It was working fine. Waitress is just having issues with TLS
- Fixed issues from previous version about Waitress
- Fixed CI to account for pypi delay before building docker image
- Kapacitor webhook added
- LDAP: Filtering out groups with group_dn or base_dn
- Moving Unix socket management out of the falcon API
- Using Waitress for Unix socket and TCP socket
- Secrets are now bootstrapped using random numbers and are stored in the backend database
- Dedicated middleware for logging
- When changing tabs or refreshing, webUI row tables are not flickering anymore
- Throttled alerts generated duplicate entries
- Aggregated alerts now correctly reset their snooze filters fields
- Environmnents support! Can be used to create search filters that can be applied on top of any search
- Wrong version of PyJWT broke LDAP auth
- Recent change in plugin loading broke plugin processing order
- Config option to disable authentication. People will be automatically logged in as root
- Anonymous login backend. Can be enabled in Settings (or general.yaml config file)
- Debian package export
- Webhooks support
- Grafana webhook added
- Copy content from any row in the WebUI
- Plugin refactor. Now even actions are considered core plugins. Scanning snooze/plugins/core folder instead of declaring plugins in core.yaml
- Moved Patlite plugin to snooze_plugins repository
- Default authentication backend display order not being respected since 2021-06-30
- Admins can use the webUI to manually trigger alerts
- Added a toggleable button to automatically refresh Alerts display
- Log in back to the webUI now keeps the initial query
- Advanced schedule support for Notifications (number of notifications sent, frequency, delay)
- More environment variables supported (documentation to come later)
- Can now pass full Record to webhooks using {{ self }} (Jinja template)
- New Search bar for the WebUI with a powerful query language supported
- Dockerfile added. Snooze image to come very soon!
- When re-escalating an alert, can now trigger Modifications. Any actual change to a Record will trigger Notifications again
- Can now use Jinja templates in Modifications (Rules, Re-escalations)
- Housekeeper will auto cleanup expired Snooze filters. Parameters supported
- New view for the Alert Infos tab
- New feature: Time constraint for notifications. Same as for Snooze filters
- New feature: Delay for notifications. If an alert gets acknowledged or closed before the delay ends, it does not get notified.
- New feature: Watchlist for aggregate rules. Bypass aggregation if a specified field gets updated
- New feature: Webhooks now support CA bundles
- Webhook fixes
- Added a new feature to webhooks: can now inject HTTP Response to a Record
- Fixes issue with Conditions NOT and EXISTS not being properly displayed
- Fixed bugs with aggregates from previous release
- Reworked alerts lifecycle. Alerts first show up without a state. "open" state can now be entered only whenever reopening a closed alert by user interaction or automatically whenever a closed alert receives a new aggregation
- New action: Webhook! Can be used by Notification to call a URL. Documentation will come soon
Transferred Aggregates logic to Records, meaning there is one less collection in the DB and one less menu item to care about. As a bonus, now whenever an aggregated record gets alerted, if the aggregate state was "open" or "ack", it will get automatically re-escalated (before it was creating a new alert)
- Widgets
- Records lifecycle (open/close)
- New Snooze filters time constraints (datetime, time, weekdays). Can be mixed together
- Patlite support
- More documentation
- Bugfixes
Fixes
Initial release