Albert Schaffer

Horizon Agent Remote Experience Console

— PROJECT NAME

Horizon Agent Remote Experience Console


— CLIENT

VMware Intern Program


— ROLE

Intern, Sole Designer and Developer


— DATE

May 2021 – July 2021


— TECHNOLOGIES USED

C# WPF

The Horizon Agent Remote Experience Console is a prototype application within an Agent virtual machine that expands on the existing Performance Tracker application and provides the end user extensive insights into the configuration, health, and performance of the VM using data provided by Horizon Monitoring Service Agent.


This project was my internship project with VMware, which I recovered from the archived codebase. Any missing data in the images or video is due to the project relying on old data structures that have been modified after finishing the project.

Project Justification

VMware Horizon uses lots of components to provide users the best digital workspace experience, but no in-house software exists to get insight into its core services and features. The existing Performance Tracker app provides limited data for end users. So, customers must use third-party tools to analyze, monitor, and troubleshoot issues. To resolve this issue, Remote Experience Console leverages the existing Horizon features to provide a single view into all metrics.

Use Cases

“As a support engineer or administrator, I want to view the key metrics, telemetry, or events for the guest OS and Horizon Agent.”


“As a Horizon Agent developer, I want to send key metrics and events to support troubleshooting and performance analysis of the Agent deployments.”


“As an end user, I want to have insights into my VM’s health so I can quickly identify issues within my VM.”

Existing Performance Tracker

While the existing Horizon Performance Tracker provides some real-time performance data as well as info on the Client machine, the information provided is limited and does not convey all of the Horizon Monitor metrics. With this implementation, admins, developers, and end users would need to use another app such as Grafana to view the VM’s metrics.


The Remote Experience Console would instead allow users to view the data within the VM itself, providing extensive information about the VM in a convenient location.

Final Product

The goal for the Remote Experience Console App is to expand on the existing Performance Tracker app. Rather than reading a subset of the Horizon Monitoring Service Agent metrics, the Remote Experience Console lets users view all data being sent by the API. This data is received in JSON format and then converted to C#, where it will then be formatted depending on the type of data received. For instance, boolean data is converted to icons in the view, while enumerated data is color-coded to aid the user in understanding the data presented. The data presented in the app is organized into several sections based on the metrics that are being received by Horizon Monitoring Service Agent.

Client Feedback

Client was pleased with the outcome, and I was successfully able to convey the value of being able to display all of the Horizon Monitoring Service Agent metrics within a desktop app in a virtual machine. As a result of this internship project, I was given a full-time offer at VMware.


A roadmap for suggested future improvements were identified with the product. These included:

  • - Replacing the service used to receive the data with a service that calls the API directly
  • - Updating the chart UI to be less clunky to use
  • - Enhancing the Recommendations tab to produce recommendations for all necessary metrics for any user
  • - Provide system tray functionality to ensure buttons work
  • - Including CPU and RAM consumer information
  • - UI changes as necessary to fit with VMware’s branding
  • - Optionally, functionality could be introduced such that admins and support engineers have more access to metrics than other users