I'm excited to announce one of the biggest releases of stagemonitor. It includes over 120 commits (with a increasing number contributed from the community) and helps you to get started with stagemonitor way faster! But that also means that there are a number of breaking changes.
Features
- Support for Elasticsearch as a time series database (TSDB) (see the Elasticsearch and the updated installation wiki page). This is now the primary and recommended TSDB for stagemonitor, deprecating graphite.
- Stagemonitor provides Kibana 4 and Grafana 3 dashboards for elasticsearch
- Support for InfluxDB as a time series database (no prebuilt dashboards)
- Changed how exceptions on requests are found (see #116 thx @ryanrupp)
- You can now add custom properties to the request trace. For example you could track the number of results of a search and create a Kibana dashboard for that. Make sure to refresh the index metadata in Kibana so that you can see the new properties in the visualization composer. Code example:
final RequestTrace request = RequestMonitor.getRequest();
if (request != null) {
request.addCustomProperty("search_hits", searchResult.getTotalResults());
}
- Add ability to only report certain requests to Elasticsearch (see config key
stagemonitor.requestmonitor.onlyReportRequestsWithNameToElasticsearch
)
Bug Fixes
- Fixed some issues in regard to thread safety (thx @marcust)
- Proper population of the username in the request trace (see #116 thx @ryanrupp)
- Fixed a thread leak (see #117 thx @ryanrupp)
Breaking changes
- The layout of the metric names in graphite has changed. The dashboards have been updated accordingly but you won't be able to see you old values in it.
- Removed
RequestTrace.parameter: String
in favour ofRequestTrace.parameters: Map<String, String>
. That way you can refer to a specific parameter in your custom dashboards. - Captured IP addresses (ipv4 and ipv6) are now anonymized by default for privacy. This can be changed via the parameter
stagemonitor.anonymizeIPs
- The default value of the config key
stagemonitor.ehcache.get.timer
has changed fromtrue
tofalse
- The configuration key
stagemonitor.requestmonitor.requestTraceTTL
does not exist anymore. Usestagemonitor.requestmonitor.deleteRequestTracesAfterDays
instead. The new mechanism deletes a whole index instead of single documents wich is much more performant.