One of the biggest gaps I’ve noticed in most environments is an effective tool for monitoring performance of Citrix applications. The reason why is clear:
Today, applications are more and more interconnected. For example, in healthcare any EMR installation must communicate with outside imaging applications and third party billing systems. Education applications must integrate with ERP, and any form must feed from a database
Because of Citrix’s smart streaming protocol, the performance of applications running on Citrix is especially challenging to monitor. The slick interface of Citrix masks the layers, presenting a clean front end to the users. Multiple protocols and lack of open API’s makes it complicated to monitor at the protocol level. Nowadays, traditional monitoring tools are no longer effective at monitoring end to end performance.
As a result, performance monitoring of Citrix applications becomes too challenging for many and is ignored, resulting in undetected problems with failures and slow response time, which end up costing much in terms of downtime, and support, helpdesk, and IT resources when end users are affected.
So how can we avoid this problem? What do we look for when choosing a performance monitoring tool?
These are the 5 most important features we’ve found:
1. For Accuracy, Monitor from the User Standpoint - the true metric
Citrix cleanly delivers pages with images to users, masking the the means by which they arrive there. It makes perfect sense then that Citrix should be monitored by this metric: by how these images appear to the end user.
The clearest way to monitor the behavior of an application running through Citrix is to view it from the screen as a user would.
For example, a monitoring tool should be able to click on an icon when it appears, as a person would.
Traditional tools cannot capture the overall picture of the application behavior. To monitor performance of a Citrix application, an effective tool has to replicate exactly how a person accesses the application, and get results the way the he/she would. This includes seeing what user sees when there are failures (such as error messages or the wrong screen), and waiting on slow response times the same way the a real user experiences them.
To give the simplest example, a performance monitoring tool must be able to open an application through Citrix, search for a record, and close the application.
It must run this on a consistent schedule (every 5 min or 30 min depending on your requirements), record all response times, and capture screen shots of failures for troubleshooting.
2. Look for intelligent technology
The caveat in finding an effective front end monitoring tool is that must do more than simply record and replay scenarios. We all know that too many things can go wrong in this instance (screens resize, variance in colors in different monitors, small changes in the application) giving false failures.
Look for an “intelligent” monitoring tool. It must be able to adapt as a person would to changes on a screen. For example, it must be able to find an image even if it moved in the screen, and recognize it even if the color has changed.
An effective Citrix performance monitoring tool must do more than record/replay. It must be able to navigate intelligently.
3. Choose a Flexible tool (One that lets you decide what is monitored)
A right solution should be powerful enough to monitor exactly what YOU want it to monitor. There are several tools in the market that will repeatedly open specific applications (Outlook, MS Word, and Notepad) and report response times to open. But in order to monitor true performance of business IT health, you will need to test scenarios and applications outside the cookie cutter mold.
For a monitoring scenario, you should decide which application to open, what pages and forms the user would access, what they would enter and where they would click.
A tool should make it easy to monitor ANY user actions relevant to your business requirements.
And this should be possible without any programming knowledge or involving programmers. (which is the next point!)
4. No coding required
If you need to learn programming or pay a programmer every time you need to create or edit a scenario script, you will probably be less inclined to monitor your apps or keep the scripts current.
Choose a tool that uses simple language to build a scenario. The ideal tool will allow you to list actions such as clicks and keystrokes in response to images on a screen. One such tool is AppsWatch that is smart enough to write most of the script for you by watching you run through the application, and then makes it easy to edit line actions to modify the script.
5. Choose a monitoring solution that uses Synthetic Transactions in order to be Proactive
Some APM tools monitor real users and what they are doing at all times. These may be good for code debugging and “pinpointing the root cause” after problems occur, but this type of monitoring does not provide the power to act before problems are noticed by users, or to gain the same level of insight on the behavior of a single application. Synthetic monitoring holds that advantage over other types of monitoring because it does not rely on users to uncover problems. This type of monitoring runs the same tests at the same frequency over long periods of time. This will allow you to:
- Find problems before users notice them
When a backup is run overnight, sometimes the app doesn’t come back up. Because a synthetic tool is running scenarios before users come in, it would alert the IT dept to restart the application before users notice. Instead of waiting for users to attempt log in and call support, the issue would already have been recognized and rectified.
- Give Actionable results
A good performance monitoring tool will capture Screenshots when errors occur. Debugging is easier when the exact error message can be seen that shows up after a known set of actions.
- See Trends
Synthetic transaction monitoring is consistent. It runs the same tests at the same frequency over long periods of time, allowing trends to show up.
With consistent data, important information can be gleaned such as slowness that occurs at certain times of day, times of week, or year.
This long term data can also correlate performance of applications as they occur together. And we can see how certain locations are affected more than others.
As opposed to tools that monitor real users, a synthetic monitoring tool does not rely on what they are accessing to see how an app is performing. It can give ultra important information due to its consistent testing schedule.
When you choose a tool for monitoring your Citrix application, make sure it
- monitors from the front end
- uses image recognition that is intelligent
- gives you the flexibility to monitor exactly what you want
- does not require scripting
- uses synthetic transactions
We have used AppsWatch for years as it satisfies all these requirements, (and is very easy to use). The same scripts can be used for load testing and regression testing with its related products for Citrix: AppLoader and AppVerify.