stagemonitor / stagemonitor-mailinglist

GitHub issues abused as a mailing list
3 stars 0 forks source link

New Features: Client timings and a Kibana plugin for distributed tracing #53

Closed trampi closed 11 months ago

trampi commented 7 years ago

Hi there! Since the release of 0.80 we worked hard to improve stagemonitor. This post focuses on two new features of stagemonitor. The first is end user monitoring via weasel instead of boomerang. The second new feature is visualizing distributed calls with the help of a newly developed Kibana plugin for stagemonitor.

Improved end user monitoring

In the past, stagemonitor used a library called boomerang to gain performance metrics of end users. This was called "real user monitoring" (RUM). We have replaced it with weasel, as it is more lightweight (6374 bytes vs 12,166 bytes), provides better insights via the window.performance.timing-API and allows you to add your own metadata. We have renamed it to "end user monitoring" to reflect this change.

The following diagram shows the different steps of a single page load, which are collected by weasel:

window timing

But wait, there is more: weasel also collects timings about ajax requests as well as errors happening in JavaScript. With that information you can optimize slow ajax requests and analyze errors happening on end user browsers. As a bonus, the pageload and ajax spans are automatically correlated with the backend spans. They are then spans of the same trace, which helps you to narrow down performance bottlenecks or errors.

If you want to know more about this topic, have a look at the End User Monitoring Wiki page.

Visualization of distributed traces

The second new feature is a new kibana plugin for visualizing distributed traces. The plugin shows the different spans of a trace (like end user spans, database spans, backend spans and calls across services) and allows you to view the details of spans as well as the call tree. Here is a small video of the plugin in action. The work on distributed tracing support is not yet finished. You should give the kibana plugin a try if you are using stagemonitor in a distributed environment. We plan to extend the support for distributed tracing even further with automatic context propagation. We currently support HTTP-calls and Spring Rest Template out of the box. We are working on automatic correlation of SOAP-Calls via JAX-WS, currently you need to configure this manually. Have a look at TracingClientSOAPHandler and TracingServerSOAPHandler for details.

Thats it for the moment. If you have questions or need help, contact us.