One of the top features is enhanced support for web analytics with stagemonitor including a brand new Kibana dashboard dedicated just for web analytics. Also there are many new configuration options which let you tweak privacy related settings.
Features
- Web Analytics features
- A brand new dashboard targeted for web analytics, which includes page view, unique visitors, most active users, referring domains and sites, popular use cases and pages as well as charts for devices, browsers, operating systems and user agent types.
- Track referring sites (foreign domains that link to your site)
- Track unique visitors.
if (userName != null) {
uniqueVisitorId = sha1Hash(userName);
} else {
uniqueVisitorId = sha1Hash(clientIp + sessionId + userAgent);
}
- This release brings several configuration options for privacy:
- Add ability to pseudonymize and disclose user names
- Add config option to honor do not track header
- Introduced @sla annotation. This annotation lets you define service level agreements within the code. It automatically creates checks for the annotated method. The method also has to be annotated with @MonitorRequests.
See https://github.com/felixbarny/stagemonitor-standalone-test/blob/master/src/main/java/org/stagemonitor/standalone/Main.java for a example application. - Users can now programmatically set the request name via
RequestMonitor.getRequest().setName(String)
- You can now set multiple Elasticsearch URLs via
stagemonitor.elasticsearch.url
which will be used in a round-robin fashion. - Exclude the Call Tree from Elasticsearch reports on x% of the fastest requests. This feature was implemented by the newly added ability to register RequestTraceReporterInterceptors which allow to customize or omit reporting a request trace to Elasticsearch. See
- Add ability to manually monitor Caches (see #127). Thx @yacota
- Better support for Elasticsearch 2.0.
- Make ES queries show up in the call tree again
- ES 2.0 has the limitation that property names can't contain dots (.). So all dots (for example in request parameters) replaced with
_(dot)_
.
- Add support to unnest certain exceptions. This makes the Exception table in the Request Analysis dashboard more useful. Previously, when using Spring, the Exception class was always org.springframework.web.util.NestedServletException. Now you can better analyze the top Exceptions of your application.
- Stagemonitor now makes sure that metrics are always submitted at the same time on each server no matter when they where started (aka. quantization). This should fix a pitfall when reporting metrics to Elasticsearch or InfluxDB. See also my post that was recently published at raintank's blog: https://blog.raintank.io/how-to-effectively-use-the-elasticsearch-data-source-and-solutions-to-common-pitfalls/#incomplete
- Allow custom host name value. Thx @marcust
Bug Fixes
- Don't show hourglass in in-browser-widget if call tree is not available
- Fixed a memory leak (see #126). Thx @ryanrupp for reporting
- Fix a occasionally occurring
java.io.CharConversionException
on ajax requests 0253a6f - Updated p6spy to 2.2.0 to avoid a
ConcurrentModificationException
Breaking Changes
stagemonitor.reporting.jmx
is nowfalse
by default.