More and more, software functions traditionally executed by the client are now pushed to the server and, moreover, to the Cloud.

One such example is media transformation, like when YouTube allows users to upload a video in one of the several formats, transforms and then serves it in number of formats and resolutions for all common video players; the resulting increase in productivity and convenience is tremendous.

Citrix is moving in the same direction and a recent XenApp/XenDesktop feature (Call Home Telemetry Service) uses Cloud-based Citrix Insight Services (CIS) to bring best experience to customers and Citrix support engineers. Here is a simplified schema of how telemetry facility is typically built:

Traditionally “Collector” and “Parser” are either built into a single entity or part/all of the “Parser” is split out into a separate tool. Former approach results in poor performance where turning on tracing significantly and negatively affects software runtime behavior. Latter approach still does not produce best performance because “Binary stream” is not optimal for a particular “Collector” but rather standardized for ubiquitous “Parser” and “Parser” (and its inputs) has to be distributed and updated/maintained for all consumers.

Better solution that was implemented by Call Home Telemetry Service – build a lightweight, performant “Collector” and offload parsing to a Cloud-based CIS platform thus enabling all kinds/sizes of “Collectors” without disturbing any consumer workflows by utilizing scalability and flexibility offered by the Cloud. This means we are now capable of executing normal production code with tracing turned on at all times without any noticeable performance impact – no more problems with hard-to-reproduce issues!