One of the most valuable methods of monitoring VDI and application performance is through end-user perspective...
performance monitoring. There are two ways you can gather data -- passive and synthetic monitoring -- and most shops benefit from using both.
The importance of monitoring your environment goes without saying, though how to best tackle that process can be a matter of corporate will and resources. Most virtual desktop infrastructure (VDI) implementations start out as -- or quickly morph into -- mission-critical services that end users rely on to get their jobs done and generate revenue. Therefore, properly monitoring the performance of that infrastructure is just as important as the infrastructure itself.
End-user perspective performance monitoring relies on a software agent installed on an end-user computer. That computer can be an actual user's computer or a simulated one. The best way to provide end-user perspective performance monitoring is to install a monitoring agent on a subset of users' virtual desktops. These agents use internal stopwatches to track how long specific end-user actions and transactions take to complete.
The positive side of using an agent to monitor live transactions is that you monitor real-world activity from the end-user's perspective. The downside to using an agent to monitor end-user performance is that the agent itself increases overhead on the computers it runs on. You run the risk of adversely affecting user performance through the very act of monitoring it.
Passively monitoring VDI end-user performance
One way to implement end-user perspective performance monitoring is via a passive agent that resides on a sample of actual users' virtual desktops. It's relatively simple to configure and deploy.
Including the passive performance agent in virtual desktop images makes it so you can activate monitoring on an as-needed basis when you're troubleshooting a specific user complaint. You can also choose to enable those passive agents on a continuous basis for certain groups of end users. For instance, if your help desk notices a pattern of complaints from a specific location or office, you can enable passive performance monitoring for any or all of the affected end users. The ability to remotely enable and disable the performance monitoring agent is a key benefit for VDI images that include the agent software.
Passive end-user perspective performance monitoring is great for gathering data to use when you're troubleshooting specific performance issues because you know that the data is real-world: It was collected while an end user was doing actual work. But the downside to passive performance monitoring is that you will not see well-defined performance data collection because it isn't taken at a regular and fixed interval. That makes it hard to use passive monitoring as a method to figure out the baseline of end-user performance. Passive monitoring also makes it harder to spot time-based performance trends because a specific user may not access the same application at the same time, and he may not do the same work every day while you're collecting performance data.
Monitoring performance with synthetic transactions
Another strategy for monitoring end-user performance is to use dedicated robot computers that do nothing but run a predefined set of scripts called synthetic user transactions. These scripts mimic typical user activities and gather those performance statistics for alerting, service-level computations or further data analysis.
The upside to synthetic user transaction monitoring is that you can run those transactions on a regular schedule that gives you uniform performance data samples. The downside is that your synthetic user transactions must be developed and managed as the use of your VDI applications changes over time. For example, if you install a new CRM tool in your VDI environment, you'll have to remember to update your synthetic transaction scripts to include tests of that new application.
Though it is technically feasible to run synthetic transactions in the background of a real-world user's computer, my experience indicates that this is risky. A frozen or ill-behaving synthetic transaction could severely affect users' perceived performance. The last thing you want to do when trying to measure and monitor end-user performance is let the measuring and monitoring slow down a user's computer.
Either strategy is better than no strategy
There is value in using both agent-based user performance monitoring and synthetic user transaction monitoring in your VDI environment.
When one user calls to complain about a performance issue that no one else seems to be experiencing, that's a perfect time to enable a passive performance agent to try to troubleshoot exactly what that user is doing and seeing. But when your CIO asks for a report with graphs plotting VDI application performance from an end-user perspective, the regular sample intervals offered by monitoring synthetic transactions produces the best, most meaningful data. There are no data dropouts or missing transactions when monitoring synthetic transactions, compared to passive performance monitoring.
Both end-user perspective approaches offer value for the intended uses of each. If your budget allows, you will be best served by both synthetic and passive end-user performance monitoring in your VDI implementation.