In App Analytics you can slice and dice on your App Insights custom dimensions and measurements just as easily as any of the so-called “standard” properties.
The only thing that’s a little bit tricky is extracting them first.
It’s tricky because of 2 things:
- You have to explicitly set the type of the measurement/dimension after you extract it.
- Extracting properties that contain spaces and special characters is a little bit of a hassle.
Here is an example of me doing both:
| where timestamp > ago(3h)
| where name == "Query"
| extend query_time = todouble(customMeasurements.['Query Time'])
| extend query_name = tostring(customDimensions.['Query Name'])
| project query_time, query_name
| summarize avg(query_time) by query_name
| render barchart
If you liked this, check out some other cool analytics queries:
So you’re on-boarded to App Insights.
But to really get the most of it, you really need to make sure that all the telemetry you’re sending – requests, views, events, exceptions are correlated – meaning you can easily see what happened on single operation in your service.
For web applications, events in App Insights are correlated out-of-the-box using operation id. Meaning that everything in your app does on single operation can be viewed easily in one view. This is why on a lot of blades in app insights you’ll see this button:
Operation correlates all telemetry on a server request.
If you’d like to correlate everything that happens from a user session, you can also correlate using session id.
Unfortunately, this does not come ready to use for worker roles.
If you want all of your telemetry correlated on a worker role, you should implement a telemetry initializer.
An initializer will ANY TIME any piece of telemtery is ent to app insight. You can update the context of that telemetry – including the operation id.