Features.NET Progress Telerik Platform Analytics Monitor Documentation, API Reference, Online Help | WPF, Silverlight, WinForms, Windows Phone Application Analytics

Analytics provide a number of features for you and your application

Feature Tracking

By integrating the Analytics monitor library into your application you are able to track how users are actually utilizing your application instead of simply trying to guess the usage from random feedback. You can track usage by calling the TrackFeature  with a named feature and the Analytics servers will summarize the usage of this feature across all application sessions. Each call to this method will increment the usage of the feature by one for the current monitor session.

When tracking features it is strongly recommended to utilize simple one-level dot-notation when naming features. This dot notation is recognized by the Analytics servers and provide a way for you to group similar features together.

The following shows an example of how two features are tracked by name with a dot-notation that allows the Analytics servers to easily visualize how the usage is distributed across these features.

...
if (exportToFile)
{
  monitor.TrackFeature("Export.ToFile");
  // perform the data export to file
}
else if (exportToPDF)
{
  monitor.TrackFeature("Export.ToPDF");
  // perform the data export to pdf format
}
...
Feature Timing

While feature tracking will increment the usage count of a single named feature by one when called the Analytics monitor library also supports tracking the duration of a feature by utilizing the TrackFeatureStart  and TrackFeatureStop  methods. Surrounding your logic with these timing methods will allow you to obtain valuable information about what distribution of time the users are experiencing in the real world. You can even cancel an ongoing feature timing if e.g. the logic you are timing terminates unexpectedly by calling TrackFeatureCancel .

The following shows an example of how you can track the timing of a specific chunk of logic within an application to obtain the specific time for the feature to complete and track this time with the Analytics monitor.

...
try
{
  monitor.TrackFeatureStart("Export.ToFile");
  // exporting logic here which may take some time...
  monitor.TrackFeatureStop("Export.ToFile");
}
catch(Exception exc)
{
  monitor.TrackFeatureCancel("Export.ToFile");
  throw;
}
...
Feature Values

The Analytics monitor library allows you to track discrete values as well by utilizing the TrackFeatureValue  method. By tracking discrete values in your application you will be able to obtain an understanding of the variability and distribution of these values that your users are encountering in the real world. This can prove helpful both in understanding the scenarios faced by your users and for troubleshooting and evaluating issues that arise for certain users such as working with an unexpectedly high or low value.

The following shows an example of how you can track a discrete value within an application with the Analytics monitor.

...
FileInfo[] files = GetFilesToImport();
monitor.TrackFeatureValue("Import.FileCount", files.Length);
...
Exception Tracking

The Analytics monitor library offer a way for you to track exceptions within your application and obtain information on this exception from the Analytics servers. You track an exception from within your application by utilizing the TrackException  method and the Analytics servers will aggregate the data on exceptions encountered by your users. The exceptions are group and correlated in order to mimize the number of exception occurences and lets you focus on the exception data while still providing you with detailed information on the individual occurences and their contex.

The following shows an example of how you can track an exception within an application with the Analytics monitor.

...
try
{
  // some application logic
}
catch(Exception exc)
{
  //general exception handling omitted
  monitor.TrackException(exc, "Context Information for this exception")
}
...
Execution Environment

The Analytics monitor by default determines a number of characteristics about the execution environment of you application. This is done without the need for any explicit calls, the data is sampled and tracked as soon as you start the monitor.

The following is a list of some of the data points being sample from the client execution environment:

  • Operating system name and version
  • Memory, processors and bitness
  • Language settings
  • Application version