Over a million developers have joined DZone.

Using FusionReactor for Peace of Mind

DZone 's Guide to

Using FusionReactor for Peace of Mind

When you need to keep an eye on your servers, and need peace of mind, you're going to need to consider some tooling. Could FusionReactor be the answer?

· Performance Zone ·
Free Resource

As long as I’ve been working with Java, and that’s quite a long time, I’ve always had this worry that I wasn’t monitoring running applications enough. The truth is, no matter what you use, that worry never goes away. So the only thing you can do is put the tooling in place that sets your mind at ease. Whether you use something custom built, or some commercial solution is almost beside the point to me. You just need to do it. Recently, I had the opportunity to talk to the team at FusionReactor about their solution, and how it can help.  

“When something breaks, or performs poorly in production, developers need real-time insight and transparency into what applications are doing at the point that they’re breaking—in production.  Our mission is to provide developers, DevOps and I.T. professionals unparalleled depth of insight, so they can isolate issues and performance problems faster than with any other tool on the market”
- David Tattersall, CEO of Intergral GmbH, makers of FusionReactor.   

At it’s core, FusionReactor is a realtime Java application performance monitoring tool, so you get to see how your deployed applications are performing. There’s no shortage of these solutions, generally termed as APM tools, so I asked what sets this solution apart? It all comes down to the fact that most tools will tell you what’s wrong, but they don’t do enough to tell you why things are broken so you can get to a fix sooner. 

FusionReactor takes a different approach – not only providing the basics and core APM expectations that every user has for monitoring, such as measuring detailed metrics, analysing resources such as memory and CPU, and alerting. In addition, FusionReactor includes a suite of low overhead, production safe and secure analysis tools which would typically only be available in a development environment. These include an IDE style debugger, code profiler, and memory analyser. These tools provide developers and DevOPS with a unique level of insight into what’s really happening in production as issues and performance problems unfold. This capability will ensure that issues can be addressed and fixed in the shortest possible time.

Staying Alert With Fusion Reactor

When something goes wrong in your production applications, it will often happen when your back is turned. So I checked what kind of notification functions are available. With it it’s possible to generate threshold alerts for many of the metrics FusionReactor instruments. The alert engine can be seamlessly integrated with other industry standard alerting platforms, such as PagerDuty, Slack, VictorOps, and HipChat. There is also support for alerts via email and HTTP web hooks. Both the on-premise and cloud versions include a dashboard which provides real-time health and monitoring information on your active servers. The visual alerting functions on a traffic light system, changing from blue to orange then red, based on the severity of what’s taking place.  Servers can be grouped together to form application or cluster perspectives.

Image title

Image title

What Typically Goes Wrong in Production Applications? 

We’ve all had to work all-nighters after finding something happening in production. The two main reasons you would want to use FusionReactor are: 

  1. Monitoring Performance – "Why is my application not performing as it should be?"
  2. Root Cause Analysis – "Where and why does my application break?"

From a performance perspective, the most common issues are often found in the database/SQL queries. FusionReactor provides a comprehensive breakdown of all the queries performed within a transaction, showing # rows returned, total execution time for each query, memory allocated, etc. Another area causing performance issues is very often anything which is accessed externally via API’s. Again such remote calls are automatically tracked by FusionReactor.

With root cause analysis, it can be anything from logic issues in your application to poorly configured Garbage Collection algorithms. With the added built-in debugger, profiler, and analyzer tooling, FusionReactor is able to uncover issues which would typically be almost impossible to detect. Running out of memory is also one of the most common issues experienced. It’s difficult to get a good 'handle' on where exactly memory is being used, which makes identification of memory leaks particularly challenging. Another problem is that all too often, the memory issues are not apparent until an application is actually deployed to production. When testing locally or in a development environment, memory leaks remain elusive because you tend to reboot your server on a regular basis. Plus, you have so much memory available that for a single user, it’s difficult to even run out of memory unless something catastrophic happens. For this reason, having the ability to profile memory in a production environment is a critical element.

Should You Use It? 

"FusionReactor’s ability to provide low level insight is exactly what developers need and results in faster issue identification, less application downtime, more stability, and happier customers. The knock-on effect is that developers are turned into super heroes when they have FusionReactor available to them."
- David Tattersall, CEO of Intergral GmbH, makers of FusionReactor.  

With free alternatives like VisualVM available, which give you low level detail, is it worth investing in FusionReactor? Well, VisualVM works great pre-production, but it can be hard to configure and incurs a system overhead. FusionReactor is built and streamlined for production, focusing on simplicity of use, seamless integration, and minimal performance impact. Considering that it is now in version 7.0, having started out with it’s v1.0 release in 2005, it’s a well-established and proven tool. 

Will FusionReactor work on your own setup? As a Java agent that doesn’t do anything inside the engine, that doesn’t work on a standard Java environment, it will work on any JVM and any application server. There will be complete support for Java 9 available in the upcoming 7.2 version, due around the end of Q1. While it works fine on any Java application, I have yet to test it on an Android application as a means of doing some performance monitoring before production. However, this is outside the core mission of FusionReactor, and there are enough performance and memory analysis tools available already for Android. 

For DZone readers, FusionReactor have given a 10% promo code to use, valid until 30th April 2018, for any edition of the product. Simply use the code GETFR4JAVA at the purchasing page.

The 2018 roadmap looks promising too with new features such as:

  • issue collaboration 
  • Automatic root cause identification 
  • Support for new agents such as Node.js 
performance ,java ,root cause analysis ,monitoring tools ,fusionreactor ,java monitoring solutions

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}