Getting Started – Configuring FusionReactor APM

Performance issues in legacy Java applications – comparing different investigative techniques
Logging vs. Monitoring: How Are They Different & Why You Need Both?

This blog is going to take you through the basics of configuring FusionReactor APM to get an amazing experience out of FusionReactor.

Most configurations of FusionReactor are fine “out of the box”, but making small changes to tailor it to your application will make all the difference. You can maximize the benefits you can get from FusionReactor.

Configure Email Settings

FusionReactor uses email to send out alerts and notifications when critical situations arise, as well as sending out monitoring reports on a daily, weekly, and monthly basis. So, the first thing you need to do is configure your email settings.

To configure emails you can go to FusionReactor on the top left and then settings. Here you are required to enter the to and from address as well as your email server configuration. You can then hit send to test your settings email.

Crash Protection

FusionReactor can alert you about potential instability in your App server. It can even take action to try and prevent server crashes and downtime. We call this capability – Crash Protection.

4 types of alerting are available to warn you about things like the flooding of web requests, long-running requests, heap exhaustion, and CPU starvation.

Crash Protection Alerts

When configuring crash protection you can use the live and archive metrics within FusionReactor to configure your first alerts. To configure a crash protection alert for this, simply go to “protection”, then “settings”, and then “runtime Protection”.

Here we set the threshold, in this case of 5 seconds, and select email alert when a long request triggers. You can set this threshold higher or lower as required. You can get all the valuable information you need without being flooded with alerts.

We can then navigate to the email settings and ensure that notification emails are “enabled”, and configure the timeout to prevent email flooding. We will now receive an email if a request longer than 5 seconds occurs. This email should indicate why the request took so long.

Performance Issues

It can provide insight into transaction performance and database query performance as well as profile your code as it’s executing in production. This is to measure how much time is being spent within individual methods.

Using metrics you can determine how long your requests take on average and then use this information to set meaningful thresholds.

You can change the time for what is considered a slow request in the settings pages in the requests or JDBC menu.

Go to requests, settings, then Web request History or transaction history tab to define the slow request threshold. You can do the same in the JDBC settings under the history tab.

Code Profiler

The code profiler will continuously profile your code and identify performance bottlenecks. To make the most of the profiler, you can also configure at which point transactions will begin profiling. This will allow you to find out where your slow requests are taking the time.

You can configure the minimum transaction threshold. We find that profiles with more than 5 samples or 1 second of time provide valuable data. If the majority of the requests are under 2 seconds, then set the threshold to 2 seconds. This will provide value for any requests running over 3 or 4 seconds.

Logs

FusionReactor will by default log every web request and all metrics from FusionReactor for 31 days. To track JDBC and transactions in the logs, we need to “enable” the logging for these requests. With these logs, you will see database requests and any other tracked requests such as CF tags or HTTP requests.

To enable JDBC logging, go to JDBC settings, loggings, metrics, and then enable logging. Set a time threshold for logging to ensure that log files contain only useful debug data.

Transactional Logging

To configure the transaction logging, go to FusionReactor on the top left, then plugins, then active plugins. On this page find the Transaction Logger Plugin and click configure.

Truncation

The final thing to look at for configuring FusionReactor APM is enabling additional transaction metrics to help diagnose issues as they occur.

You can tune the truncation of statements by going to JDBC settings. You can do this by either disabling SQL text limiting or increasing the character limit.

In the settings page, you can also enable the query plan. This gives you the option to see why a query was slow without having to re-run the query yourself.

User Agent Logging

Enable user agent logging by going to request settings then request logging. This will allow you to see whether your application is being spammed or crawled by bots causing performance degradations within the request logs.

Conclusion

So there you have it. Hopefully, this blog has helped to take you through the basics of configuring FusionReactor APM to get an amazing experience out of FusionReactor. If you have further questions on how to do this, then get in touch with a member of our support team who will be happy to assist.