With the 2018 CF Camp in Munich inching ever closer, we now turn our sights to application performance monitoring. My good friend Charlie Arehart is going to be giving a great session on the #1 monitoring solution for CF and Lucee–FusionReactor. Charlie, along with Intergral CEO David Tattersall, will give us a breakdown on just how FusionReactor has been able to help CF’ers get to the root of their performance problems. Not only that, but to celebrate its 20th anniversary, Intergral is giving away a free developer’s copy of FusionReactor to every attendee at this year’s session! This is one of the cannot-miss sessions of the conference. Be sure to book your conference ticket before time runs out. Don’t miss out on this golden opportunity!
“Community's important. The events are important. I think it's also Adobe that's also going to put the word out and try and spread some of the ColdFusion message potentially at more at universities so where more people at work studying computer science. Maybe get some exposure to ColdFusion and that they see that actually it is a great language. I'm sure that would help. Obviously we're very strongly behind ColdFusion. We're supporting Adobe CF, Railo and Lucee.” – David Tattersall, Co-founder, Intergral
What you Need to Know as CIO
The first thing that you need to understand as CIO is what application performance monitoring actually is. As per eginnovations.com, Application performance monitoring (APM) is:
“the strategy and practice of continuously monitoring and tracking the performance of business applications and the user experience of end users as they access the applications to understand trends, isolate anomalies, and get actionable insight for problem resolution and code optimization.”
That’s a great definition, but what does it actually mean?
In simple terms, APM is an early warning system used to detect minor bugs before they become major issues. APM is one of the deepest roots of modern troubleshooting. By analyzing your application’s data and trends, you can ultimately begin to minimize the slowing of your servers and apps. Or even worse– the dreaded downed server.
Slow and Steady Does Not Win this Race
In a study performed by eginnovations.com, the following became apparent:
- Over 73% of organizations experience loss of productivity due to performance slowdown in the application.
- A 1-sec delay in website loading time can result in a 7% reduction in conversion and up to 16% decrease in customer satisfaction.
That should hardly be surprising. In today’s digital world, transactions happen almost instantaneously with the press of a button. Consumers nowadays tend to have little to no patience for slow sites and crashing applications.
This is why performance monitoring is so critical for your business. As CIO you need to be privy to certain aspects of your application because they can directly affect your bottom line.
- Your application should respond as designed.
- The applicable backend processes are being executed at the proper times.
- If there is a source of app slow, you must know where that source is.
- If there is a problem or unaccounted for issue in your application or server, you must know about it.
This is much easier said than done.
Unlike other C-suite execs, CIOs don’t always have the benefit of unified dashboard analysis and results. The information sector of many businesses is often spread throughout many teams which may only interact within their realms. Developers and coders deal strictly with constructing apps. IT personnel may deal with server upkeep and office troubleshooting. Normally, these groups have their own tools and structures specific to their area. This can make seeing the big picture quite a bit more stressful for CIOs.
One step to counter this is to be proactive about your performance monitoring strategies. As CIO you should be one of the first people to know that you are having an issue with your applications or servers.
YOUR CUSTOMERS SHOULD NEVER BE YOUR FIRST LINE OF DEFENSE!
By being proactive with your performance monitoring, you will have the ability to locate potential issues first and get a head start on tackling them.
How can all of this fit into your operational strategy?
Generally speaking, operational strategies fall into 3 separate categories.
These are the pillars in which your company will use to succeed. However, how can a pillar stand without a foundation?
The foundation for these is actually your own company infrastructure. This includes your organizational strategies, applications, servers, etc. Your foundation keeps your business stable, secure, and scalable. That is why it behooves you be proactive at monitoring your company’s application performance.
The #1 Monitoring Solution for CFML
Thankfully for CFML users (both ColdFusion and Lucee alike), we have a tool that conveniently helps to keep our application performance monitoring in check.
So, what is FusionReactor?
FusionReactor boasts to be the only APM (Application Performance Monitor) which includes high-level instrumentation combined with low-level profiling and debugging and can be used right across the whole Software Development Life Cycle (SDLC).
During our 2018 State of the CF Union Survey, almost half of all CF’ers polled use FusionReactor as their monitoring tool of choice.
“I am amazed at how well FusionReactor is working for us. In one week, we were able to move our average page request time down from 1 second to 3/10 of a second. We were also never able to view memory usage and quickly noticed that our 300 websites were maxing out the heap. We tuned the heap and are now running lightning fast. I’ve been developing ColdFusion applications for years and can’t believe how blind we’ve actually been. Fusion Reactor is exactly what we needed.”
President, Technology Reflections, Inc.
Aside from individual success stories, Adobe actually promotes and recommends using FusionReactor. FusionReactor makes bold claims, and they have the chops to back them up.
No other tool on the market can provide the insight into your ColdFusion that FR can provide. With over 40 unique CF specific metrics, you can monitor your ColdFusion in real time. Some of these metrics include:
Number of Current Sessions
App Scope Size
DB Pool Stats (Detailed Metrics for DSN’s)
And Much Much More!
Currently, ColdFusion metrics are available for ColdFusion 8, 9, 10, 11, and CF 2016. Features and metrics are also in development for ColdFusion 2018.
FR’s stacktrace feature can also specifically target ColdFusion related problems and eliminate them.
As far as CF (as well as Lucee and Railo) is concerned, FusionReactor is hands down the best monitoring option for your application performance.
What else can it do?
FusionReactor is not just an application performance monitor. It has a great number of other features to help you improve your CFML and your application output. Here are some features you can expect when using FusionReactor.
- FR comes with a fully functional IDE style debugging browser console. This tool has the ability to perform stack trace and variable context operations anywhere in your code. Simply run FR and set a breakpoint. Afterwards, you will receive an email with detailed results. It’s just that easy. This remote style debugging can be performed on any JVM or Docker container as well. This kind of flexibility makes FusionReactor one of a kind.
- With the purchase of the FusionReactor Ultimate Edition, you will receive an integrated, low-overhead Java code profiler. This tool seeks out and detects poorly operating code with your production environment. This code profiler works for any transactions running on the JVM– i.e. ColdFusion.
- The memory profiler instantly identifies memory leaks and optimizes your memory usage. Memory issues are quickly identified via FR’s Heap Snapshot tool. Snapshots can be taken at anytime and easily compared. The memory profiler also analyzes the roots of your Garbage Collector to ensure you are maintaining your highest level of memory performance.
- The Crash Protector keeps your applications safe through three key points.
- Proactive Monitoring and Request Hit Controlling
- Tracking Long Running Requests
- Limiting and Denying Requests when there is Insufficient Memory
- The Crash Protector keeps your applications safe through three key points.
End User Monitoring
- With this feature, you can monitor exactly what your customers are experiencing from the moment they enter your page until after they have left. You can get exact runtimes and delays for every request they make. This can help you locate unnecessary delays and fix accordingly.
- FusionReactor monitors your database by capturing and analyzing all data related to your SQL statements. This can not only help you monitor your SQL statements for security purposes, but help to eliminate bottlenecks and improve performance.
- This system monitoring feature helps you to keep track of the general health of your system. Ranging from CPU and memory usage to Network Traffic and Disk I/O, your system’s resources are kept under FR’s watchful eye. The system monitor will also alert you to conditions such as reaching disk space capacity.
*Note: All of these features come free with the FusionReactor Ultimate Edition. Standard and Enterprise Editions vary on provided features.
Async Function Tracking- What is This and Why?
During the release of ColdFusion 2018, Adobe introduced asynchronous functions to CF. So in order to properly monitor your ColdFusion, Intergral released Async Function Tracking as part of its FR 7.4.1 update. These async functions will be tracked as a child transaction of the web request.
This addition allows you to track whether any asynchronous calls you are making in your CFC/CFM files are slowing down your requests. In previous versions of FusionReactor, the only way this was possible was to use the debugger or profiler.
Now, each async call is tracked as a child request of the CFC/CFM script it was executed inside. This makes it visible in the relations tab of the requests details, due to the nature of the asynchronous call. It is only possible to link a transaction back to the CFC/CFM script after the async function is complete.
New Tag Support
With the advent of FusionReactor 7 came new support for more CF tags! The following tags will now be tracked as a child transaction of the web request:
This support allows you to spot if one of these tags would be slowing down a CFC / CFM call made within your CFML application. Before, you could only be able to see that a CFC / CFM call was slow. However, it did not explicitly identify what was causing this without using the production debugger and profiler.
For each tag, each attribute is tracked as a transaction property. What this means is that it allows you to see exactly what variables are being used by the tag. There is one exception to this– the password– which will not be tracked in FusionReactor.Each tag is tracked as a child request of the CFC/CFM script it was executed inside. This means it will be visible in the relations tab of the request details. The child request will be generated in FusionReactor as soon as it begins executing thus making it visible under the Requests activity page as a relation.
The ever-evolving and growing FusionReactor makes a few distinct statements.
The first being that there will always be a need for improvement and for performance monitoring. By staying up-to-date on developing tech, Intergral’s FR program can continue to reign supreme as the king of APM.
Secondly, FR is making updates to its Adobe ColdFusion platform support. This is indicative that CF is not only alive, but continuing to grow and thrive.
About the Speaker: A veteran server troubleshooter who’s worked in enterprise IT for more than three decades, Charlie Arehart (@carehart) is a longtime community contributor who as an independent consultant provides short-term, remote, on-demand troubleshooting/tuning assistance for organizations of all sizes and experience levels (carehart.org/consulting).
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.