Application Insight Analytics: Schema updates

已于 十月 17, 2016 发布

Senior Program Manager, Cloud + Enterprise

We have enhanced the schema of Analytics, the powerful query language of Visual Studio Application Insights. We’ve separated metrics into performanceCounters and customMetrics, and we’ve introduced browserTimings to show page load data from the client side. These changes improve the discoverability of the data, simplifying your queries and exposing new metrics and dimensions of your telemetry.


performanceCounters schema

This schema is the single place where you should look for any performance counter that is reported from your application. Whether the performance counter is automatically collected by Application Insights SDK or you have configured the application to send other performance counters, the data can be found in this schema.

For example, to find out what performance counters are being reported:


To get a chart of available memory over the recent period:


The performanceCounters schema exposes the category, counter name, and instance name of each performance counter. Counter instance names are only applicable to some performance counters, and typically indicate the name of the process to which the count relates. In the telemetry for each application, you’ll see only the counters for that application. Let’s see what counters are available in our sample telemetry:


Like other telemetry, performanceCounters also has a column cloud_RoleInstance that indicates the identity of the host machine on which your app is running. For example, to compare the performance of your app on the different machines:


customMetrics schema

If you are using TrackMetric() to send your own telemetry, you’ll find that in the customMetrics schema. For example:


browserTimings schema

At last we expose client side metrics. Many of you have asked for this and we are happy to support your request.

Set up your app for client-side telemetry in order to see these metrics.

The new schema includes the following metrics: networkDuration, sendDuration, receiveDuration, processingDuration and totalDuration. These metrics indicate the lengths of different stages of the page loading process. (They don’t indicate the length of time your users read a page.)

name can be used to filter by page name, and there are also properties such as client_OS and client_Browser. We also provide you with the performanceBucket property to quickly analyze and group the client side metrics by buckets.

For example, to find out which pages on your site are most popular, and how long they take to load:


Tell us what you think

We hope these changes help you to understand your application’s usage and performance better. The data is there - all you have to do is just query it.

As always, feel free to send us your questions or feedback by using one of the following channels: