-
Notifications
You must be signed in to change notification settings - Fork 13
/
ChangeLog.txt
133 lines (126 loc) · 12.4 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
StatsAgg 1.6 - released xxxx-yy-zz
* New feature: Alert/MetricGroup/NotificationGroup templating. This feature makes it easy to create & manage hundreds-to-thousands of Alerts/MetricGroups/NotificationGroups using variable substitutions into templates.
* New feature: Integration with PagerDuty. StatsAgg can now send alerts directly to the PagerDuty "events" api. StatsAgg can also acknowledge & auto-resolve the alerts through the PagerDuty "events" api.
* New feature: Improved feedback to users when creating alerts/suspensions/etc with invalid criteria.
* New feature: Notification group alert associations UI -- so you can see what alerts are tied to a notification group
* StatsAgg now requires Java 17 (or newer) for it's runtime
* Converted the StatsAgg project from using a middleware app (Tomcat) to being a standalone project that uses an embedded HTTP server (Jetty). As a result, the installation/upgrade/setup steps will be significantly different.
* Switched StatsAgg to use HikariCP for it's JDBC connection pool. Note that some connection pool variables in the database.properties file have changed.
* Significant refactoring on how StatsAgg interacts with it's database. This should improve StatsAgg's performance & make it easier to improve/update in the future.
* Database schema changes are now made automatically via Flyway. If updating from a previous StatsAgg installation (1.5 or older), see the manual for additional steps.
* Apache Derby databases will be upgraded to version 10.16.1.1 (this happens automatically)
* Libraries were updated on both the frontend (javascript/css/etc) and the backend (java).
StatsAgg 1.5 - released 2020-09-25
* New feature : A json-based API for programatically interacting with StatsAgg
* New feature -- 'metric suspensions'. With a 'metric suspension', you can write a regular-expression that will match metric-keys & prevent them from being considered for alerting.
* New feature -- 'Alerts Report'. A page in the WebUI that shows all the important details of an alert on in a table view.
* New feature -- 'Output Blacklist'. A way to prevent metrics that are processed by StatsAgg from being output by StatsAgg to metric storage platforms (Graphite, OpenTSDB, etc).
* New feature -- 'Benchmark'. A way to benchmark the performance of metric groups & metric suspensions.
* Renamed 'Alert Suspensions' to 'Suspensions'. This was done to accomidate the 'metric suspension' feature.
* Changed several pages in the WebUI to load via on-page iframes (instead of transitioning different page). This improves the flow of the UI, as it significantly reduces the need use the browser back/forward buttons.
* Performance enhancements
* Support for Java9+ as runtimes. StatsAgg maintains support for (and is compiled with) Java8.
* The 'Home' page now outputs the number of metric datapoints that are residing in StatsAgg's memory.
* Email alerts now include tags
* Support for single-metric OpenTSDB metrics via the HTTP API
* Support for scientific notation on OpenTSDB metric values
* All UI & APIs are now in UTF-8 (for support of exotic characters)
* Regex tester now allows viewing of 'Metric Recent Values'
* Extra retry logic on sending emails (will try up to 5 times)
* Apache Derby databases will be upgraded to version 10.14.2.0 (this happens automatically)
* If you upgrading from a previous version of StatsAgg, then you will need to run the SQL found in "Upgrade to 1.5.txt" against your StatsAgg database
* Located @ StatsAgg\WEB-INF\sql
StatsAgg 1.4 - released 2015-08-20
* Added support for receiving & outputting InfluxDB metrics
* The metric format used in InfluxDB 0.6x, 0.7x, and 0.8x is supported (just in time for it to be depreciated)
* The metric format used in InfluxDB 0.9x will be supported in a future StatsAgg release
* Added support for 'sanitizing' Graphite & OpenTSDB metrics on output. This setting is unique to each output module instance.
* Metric groups can now 'blacklist' metrics via regular expressions. When a metric is 'blacklisted' in a metric group, it will not represent itself as being a match for the metric group (and therefore cannot be alerted on).
* Added support output via OpenTSDB HTTP/JSON
* Previously, StatsAgg could only output to OpenTSDB via telnet
* Improved shutdown time & safety
* For output modules, added configurable connection timeouts & read timeouts
* Improved timeout & retry behavior for all output modules
* Added a description field to 'alert suspensions'.
* Added 'time unit' fields to 'Alert' & 'Alert Suspension' configurations. These apply to fields like 'duration'.
* 'Positive alert' notification groups are now a separate field of an 'Alert'.
* New 'Clear All' button in the WebUI on 'AlertAssociations'. This can be used to clear/remove triggered availability alert metrics en masse
* Added the (configurable) ability to limit the maximum number of concurrently outputting output modules (spanning all output modules).
* If one tries to initiate and output module when the maximum number of concurrently output modules already running, then a warning will be thrown and the output request will be discarded.
* This helps safeguard StatsAgg from output endpoints that are experiencing availability or performance issues.
* Added the ability to limit the maximum number of currently outputting output modules for specific output modules (ex -- OpenTSDB HTTP #2).
* If one tries to initiate and output module when the maximum number of concurrently output modules already running (of that specific output module), then a warning will be thrown and the output request will be discarded.
* This helps safeguard StatsAgg from output endpoints that are experiencing availability or performance issues.
* Removed the 'send previous metric' feature for Graphite, OpenTSDB, and InfluxDB metrics. It was recommended to be disabled, the data wasn't persisted, and it was hard to maintain, and no one used it.
* The application configuration fields 'alert_output_alert_status_to_graphite' & 'alert_output_alert_status_to_graphite_metric_prefix' have been renamed to reflect that StatsAgg supports outputting to many database technologies.
* alert_output_alert_status_to_graphite -> alert_output_status
* alert_output_alert_status_to_graphite_metric_prefix -> alert_output_status_metric_prefix
* If you have customized these fields, then you will have to rename the relevant field(s) in your application.properties file
* I missed the memo that said the plural form of regex is 'regexes', so I changed the 'regexs' to 'regexes' everywhere in the code, database, & WebUI.
* Updated most Java & Javascript libraries
* Java 1.8+ is now required for StatsAgg. Java 1.7 has been end-of-life for several months, and it isn't worth maintaining backward compatibility
* Initial implementation of an API layer. This will be refined/expanded on in future versions of StatsAgg.
* If you upgrading from a previous version of StatsAgg, then you will need to run the SQL found in "Upgrade to 1.4.txt" against your StatsAgg database
* Located @ StatsAgg\WEB-INF\sql
StatsAgg 1.3 - released 2015-05-20
* Added new properties to an alert -- 'first triggered at' timestamp for caution & danger
* Resent email notifications include a field that says how long the alert has been triggered
* New WebUI view -- 'Metric Group - Alert Associations'. This page allows a user to see every alert that is associated with a particular 'metric group'.
* Accessible via the 'Metric Group Details' page
* The Graphite-Aggregation routine now outputs 4 additional aggregated fields: Sum, Count, Median, Rate (per second)
* Saving StatsD gauges to the database is now optional.
* This allows users to configure StatsAgg to behave as StatsD behaves
* Altering a property of an alert that doesn't affect caution/danger trigger status will no longer reset the trigger status
* In other words, you can change alert fields like 'description' and 'alert on positive' without losing your caution/danger triggered statuses
* Altering a 'metric group' will not force the metric-group to go through the association routine unless one or more of the regular expressions have changed
* In other words, you can change 'metric group' fields like 'description' and 'tags' without losing your metric-key associations
* Cloned alerts now default to being disabled.
* Run the 'metric association routine' immediately after making a 'metric group' change
* Run the 'alert routine' immediately after making an alert change
* Smarter handling around 'forgetting metrics'. Removes some conditions that could lead to a metric not being fully 'forgotten'.
* Significant re-factoring of the metric-cleanup routine. Should be faster & simpler.
* The full contents of an email alert (including the email body) are now written to the StatsAgg log file
* In the WebUI, large tables will not be displayed until the 'datatables' javascript library is fully initialized.
* Converted 'Alert Suspension Details' page into panel-based UI
* Reduced the maximum size of alert & 'metric group' descriptions to 100,000 characters
* Tweaks to several WebUI pages. Some changes were minor (font sizes, etc), some changes were moderate (performance improvements, additional functionality, etc).
* If you upgrading from a previous version of StatsAgg, then you will need to run the SQL found in "Upgrade to 1.3.txt" against your StatsAgg database
* Located @ StatsAgg\WEB-INF\sql
StatsAgg 1.2 - released 2015-04-27
* Performance & memory utilization improvements -- most noticeable under high load scenarios
* Added a new OpenTSDB HTTP listener. By default, it will listen on "http://statsagg-hostname.com:4243"
This listener operates outside of the Tomcat container & does not have an application context.
This is now the recommended way to get metrics into OpenTSDB via HTTP. The Tomcat listener (same port/context as the WebUI) is still supported, but not recommended.
* Added support for reading OpenTSDB metrics that were sent with gzip compression
* Added support for StatsD histograms
* Added support for sample-rates on StatsD timers
* Tweaks to many WebUI pages
* Friendly messages when page input parameters aren't valid.
* Applied formatting to the list of email addresses in 'Notification Groups' & 'Notification Group Details'
* WebUI -- Added support for doing a search on a table based off a uri parameter. Allows immediate filtering of the table on page load. Applies to all tables.
* 'One time' alert suspensions are now allowed to suspend an alert indefinitely. Previously they were limited to 24 hours.
* Minor OpenTSDB 'send previous value' improvements
* Lowered the thread priority of alert-routine threads
* Minor security improvements
* Bugfix to OpenTSDB -- it will now reject metrics that have tags with duplicate tag-keys
* Bugfix for Graphite-Agg & StatsD -- metric values being output to OpenTSDB and/or Graphite could have been improperly formatted
StatsAgg 1.1 - released 2015-03-27
* If you upgrading from StatsAgg 1.0, then you will need to run the SQL found in "Upgrade to 1.1.txt" against your StatsAgg database
* Located @ StatsAgg\WEB-INF\sql
* Swapped out WebUI table column-filtering library -- the previous one had some form of incompatibility with the column visibility plugin
* Now using yadcf - https://github.com/vedmack/yadcf
* Added alert acknowledgements
* Acknowledge alerts in the WebUI. Shows someone 'acknowledged' it, and prevents additional alert notification (unless unacknowledged)
* 3 column 'alert details' page -- more readable
* 'Details' pages now link to other 'details' pages
* Separated the metric 'cleanup routine' from the 'alert routine'. This should greatly reduce the risk of out-of-memory issues on StatsAgg startup.
* Changed some boolean values in the tables & details pages to 'Yes' / 'No' (more professional looking)
* Improvements to how word-wrapping & line-breaking behaviour for all pages in the WebUI
* Changed the default port for the Graphite-Aggregation listener to port 22003
* This was done to avoid confusion with the Graphite-Pickle listener (which is on port 2004 in the actual Graphite program)
* OpenTSDB support...
* Incoming metrics on the telnet interface (User-defined port, default 4242)
* Incoming metrics on the HTTP interface (Same as Tomcat port. See the manual for more info)
* Outgoing metrics on the telnet interface (User-defined port, default 4242)
* Reduced Netty shutdown time to 30sec. This should shorten the overall time that it takes to stop Tomcat.
* Documentation improvements