Application Insights Export Data Model
This table lists the properties of telemetry sent from the Application Insights SDKs to the portal. You'll see these properties in data output from Continuous Export. They also appear in property filters in Metric Explorer and Diagnostic Search.
Points to note:
[0]in these tables denotes a point in the path where you have to insert an index; but it isn't always 0.- Time durations are in tenths of a microsecond, so 10000000 == 1 second.
- Dates and times are UTC, and are given in the ISO format
yyyy-MM-DDThh:mm:ss.sssZ
Example
// A server report about an HTTP request
{
"request": [
{
"urlData": { // derived from 'url'
"host": "contoso.org",
"base": "/",
"hashTag": ""
},
"responseCode": 200, // Sent to client
"success": true, // Default == responseCode<400
// Request id becomes the operation id of child events
"id": "fCOhCdCnZ9I=",
"name": "GET Home/Index",
"count": 1, // 100% / sampling rate
"durationMetric": {
"value": 1046804.0, // 10000000 == 1 second
// Currently the following fields are redundant:
"count": 1.0,
"min": 1046804.0,
"max": 1046804.0,
"stdDev": 0.0,
"sampledValue": 1046804.0
},
"url": "/"
}
],
"internal": {
"data": {
"id": "7f156650-ef4c-11e5-8453-3f984b167d05",
"documentVersion": "1.61"
}
},
"context": {
"device": { // client browser
"type": "PC",
"screenResolution": { },
"roleInstance": "WFWEB14B.fabrikam.net"
},
"application": { },
"location": { // derived from client ip
"continent": "North America",
"country": "United States",
// last octagon is anonymized to 0 at portal:
"clientip": "168.62.177.0",
"province": "",
"city": ""
},
"data": {
"isSynthetic": true, // we identified source as a bot
// percentage of generated data sent to portal:
"samplingRate": 100.0,
"eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
},
"user": {
"isAuthenticated": false,
"anonId": "us-tx-sn1-azr", // bot agent id
"anonAcquisitionDate": "0001-01-01T00:00:00Z",
"authAcquisitionDate": "0001-01-01T00:00:00Z",
"accountAcquisitionDate": "0001-01-01T00:00:00Z"
},
"operation": {
"id": "fCOhCdCnZ9I=",
"parentId": "fCOhCdCnZ9I=",
"name": "GET Home/Index"
},
"cloud": { },
"serverDevice": { },
"custom": { // set by custom fields of track calls
"dimensions": [ ],
"metrics": [ ]
},
"session": {
"id": "65504c10-44a6-489e-b9dc-94184eb00d86",
"isFirst": true
}
}
}
Context
All types of telemetry are accompanied by a context section. Not all of these fields are transmitted with every data point.
| Path | Type | Notes |
|---|---|---|
| context.custom.dimensions [0] | object [ ] | Key-value string pairs set by custom properties parameter. Key max length 100, values max length 1024. More than 100 unique values, the property can be searched but cannot be used for segmentation. Max 200 keys per ikey. |
| context.custom.metrics [0] | object [ ] | Key-value pairs set by custom measurements parameter and by TrackMetrics. Key max length 100, values may be numeric. |
| context.data.eventTime | string | UTC |
| context.data.isSynthetic | boolean | Request appears to come from a bot or web test. |
| context.data.samplingRate | number | Percentage of telemetry generated by the SDK that is sent to portal. Range 0.0-100.0. |
| context.device | object | Client device |
| context.device.browser | string | IE, Chrome, ... |
| context.device.browserVersion | string | Chrome 48.0, ... |
| context.device.deviceModel | string | |
| context.device.deviceName | string | |
| context.device.id | string | |
| context.device.locale | string | en-GB, de-DE, ... |
| context.device.network | string | |
| context.device.oemName | string | |
| context.device.os | string | |
| context.device.osVersion | string | Host OS |
| context.device.roleInstance | string | ID of server host |
| context.device.roleName | string | |
| context.device.screenResolution | string | |
| context.device.type | string | PC, Browser, ... |
| context.location | object | Derived from clientip. |
| context.location.city | string | Derived from clientip, if known |
| context.location.clientip | string | Last octagon is anonymized to 0. |
| context.location.continent | string | |
| context.location.country | string | |
| context.location.province | string | State or province |
| context.operation.id | string | Items that have the same operation id are shown as Related Items in the portal. Usually the request id. |
| context.operation.name | string | url or request name |
| context.operation.parentId | string | Allows nested related items. |
| context.session.id | string | Id of a group of operations from the same source. A period of 30 minutes without an operation signals the end of a session. |
| context.session.isFirst | boolean | |
| context.user.accountAcquisitionDate | string | |
| context.user.accountId | string | |
| context.user.anonAcquisitionDate | string | |
| context.user.anonId | string | |
| context.user.authAcquisitionDate | string | Authenticated User |
| context.user.authId | string | |
| context.user.isAuthenticated | boolean | |
| context.user.storeRegion | string | |
| internal.data.documentVersion | string | |
| internal.data.id | string | Unique id that is assigned when an item is ingested to Application Insights |
Events
Custom events generated by TrackEvent().
| Path | Type | Notes |
|---|---|---|
| event [0] count | integer | 100/(sampling rate). For example 4 => 25%. |
| event [0] name | string | Event name. Max length 250. |
| event [0] url | string | |
| event [0] urlData.base | string | |
| event [0] urlData.host | string |
Exceptions
Reports exceptions in the server and in the browser.
| Path | Type | Notes |
|---|---|---|
| basicException [0] assembly | string | |
| basicException [0] count | integer | 100/(sampling rate). For example 4 => 25%. |
| basicException [0] exceptionGroup | string | |
| basicException [0] exceptionType | string | |
| basicException [0] failedUserCodeMethod | string | |
| basicException [0] failedUserCodeAssembly | string | |
| basicException [0] handledAt | string | |
| basicException [0] hasFullStack | boolean | |
basicException [0] id |
string | |
| basicException [0] method | string | |
| basicException [0] message | string | Exception message. Max length 10k. |
| basicException [0] outerExceptionMessage | string | |
| basicException [0] outerExceptionThrownAtAssembly | string | |
| basicException [0] outerExceptionThrownAtMethod | string | |
| basicException [0] outerExceptionType | string | |
| basicException [0] outerId | string | |
| basicException [0] parsedStack [0] assembly | string | |
| basicException [0] parsedStack [0] fileName | string | |
| basicException [0] parsedStack [0] level | integer | |
| basicException [0] parsedStack [0] line | integer | |
| basicException [0] parsedStack [0] method | string | |
| basicException [0] stack | string | Max length 10k |
| basicException [0] typeName | string |
Trace Messages
Sent by TrackTrace, and by the logging adapters.
| Path | Type | Notes |
|---|---|---|
| message [0] loggerName | string | |
| message [0] parameters | string | |
| message [0] raw | string | The log message, max length 10k. |
| message [0] severityLevel | string |
Remote dependency
Sent by TrackDependency. Used to report performance and usage of calls to dependencies in the server, and AJAX calls in the browser.
| Path | Type | Notes |
|---|---|---|
| remoteDependency [0] async | boolean | |
| remoteDependency [0] baseName | string | |
| remoteDependency [0] commandName | string | For example "home/index" |
| remoteDependency [0] count | integer | 100/(sampling rate). For example 4 => 25%. |
| remoteDependency [0] dependencyTypeName | string | HTTP, SQL, ... |
| remoteDependency [0] durationMetric.value | number | Time from call to completion of response by dependency |
remoteDependency [0] id |
string | |
| remoteDependency [0] name | string | Url. Max length 250. |
| remoteDependency [0] resultCode | string | from HTTP dependency |
| remoteDependency [0] success | boolean | |
| remoteDependency [0] type | string | Http, Sql,... |
| remoteDependency [0] url | string | Max length 2000 |
| remoteDependency [0] urlData.base | string | Max length 2000 |
| remoteDependency [0] urlData.hashTag | string | |
| remoteDependency [0] urlData.host | string | Max length 200 |
Requests
Sent by TrackRequest. The standard modules use this to reports server response time, measured at the server.
| Path | Type | Notes |
|---|---|---|
| request [0] count | integer | 100/(sampling rate). For example: 4 => 25%. |
| request [0] durationMetric.value | number | Time from request arriving to response. 1e7 == 1s |
request [0] id |
string | Operation id |
| request [0] name | string | GET/POST + url base. Max length 250 |
| request [0] responseCode | integer | HTTP response sent to client |
| request [0] success | boolean | Default == (responseCode < 400) |
| request [0] url | string | Not including host |
| request [0] urlData.base | string | |
| request [0] urlData.hashTag | string | |
| request [0] urlData.host | string |
Page View Performance
Sent by the browser. Measures the time to process a page, from user initiating the request to display complete (excluding async AJAX calls).
Context values show client OS and browser version.
| Path | Type | Notes |
|---|---|---|
| clientPerformance [0] clientProcess.value | integer | Time from end of receiving the HTML to displaying the page. |
| clientPerformance [0] name | string | |
| clientPerformance [0] networkConnection.value | integer | Time taken to establish a network connection. |
| clientPerformance [0] receiveRequest.value | integer | Time from end of sending the request to receiving the HTML in reply. |
| clientPerformance [0] sendRequest.value | integer | Time from taken to send the HTTP request. |
| clientPerformance [0] total.value | integer | Time from starting to send the request to displaying the page. |
| clientPerformance [0] url | string | URL of this request |
| clientPerformance [0] urlData.base | string | |
| clientPerformance [0] urlData.hashTag | string | |
| clientPerformance [0] urlData.host | string | |
| clientPerformance [0] urlData.protocol | string |
Page Views
Sent by trackPageView() or stopTrackPage
| Path | Type | Notes |
|---|---|---|
| view [0] count | integer | 100/(sampling rate). For example 4 => 25%. |
| view [0] durationMetric.value | integer | Value optionally set in trackPageView() or by startTrackPage() - stopTrackPage(). Not the same as clientPerformance values. |
| view [0] name | string | Page title. Max length 250 |
| view [0] url | string | |
| view [0] urlData.base | string | |
| view [0] urlData.hashTag | string | |
| view [0] urlData.host | string |
Availability
Reports availability web tests.
| Path | Type | Notes |
|---|---|---|
| availability [0] availabilityMetric.name | string | availability |
| availability [0] availabilityMetric.value | number | 1.0 or 0.0 |
| availability [0] count | integer | 100/(sampling rate). For example 4 => 25%. |
| availability [0] dataSizeMetric.name | string | |
| availability [0] dataSizeMetric.value | integer | |
| availability [0] durationMetric.name | string | |
| availability [0] durationMetric.value | number | Duration of test. 1e7==1s |
| availability [0] message | string | Failure diagnostic |
| availability [0] result | string | Pass/Fail |
| availability [0] runLocation | string | Geo source of http req |
| availability [0] testName | string | |
| availability [0] testRunId | string | |
| availability [0] testTimestamp | string |
Metrics
Generated by TrackMetric().
The metric value is found in context.custom.metrics[0]
For example:
{
"metric": [ ],
"context": {
...
"custom": {
"dimensions": [
{ "ProcessId": "4068" }
],
"metrics": [
{
"dispatchRate": {
"value": 0.001295,
"count": 1.0,
"min": 0.001295,
"max": 0.001295,
"stdDev": 0.0,
"sampledValue": 0.001295,
"sum": 0.001295
}
}
]
}
}
}
About metric values
Metric values, both in metric reports and elsewhere, are reported with a standard object structure. For example:
"durationMetric": {
"name": "contoso.org",
"type": "Aggregation",
"value": 468.71603053650279,
"count": 1.0,
"min": 468.71603053650279,
"max": 468.71603053650279,
"stdDev": 0.0,
"sampledValue": 468.71603053650279
}
Currently - though this might change in the future - in all values reported from the standard SDK modules, count==1 and only the name and value fields are useful. The only case where they would be different would be if you write your own TrackMetric calls in which you set the other parameters.
The purpose of the other fields is to allow metrics to be aggregated in the SDK, to reduce traffic to the portal. For example, you could average several successive readings before sending each metric report. Then you would calculate the min, max, standard deviation and aggregate value (sum or average) and set count to the number of readings represented by the report.
In the tables above, we have omitted the rarely used fields count, min, max, stdDev, and sampledValue.
Instead of pre-aggregating metrics, you can use sampling if you need to reduce the volume of telemetry.
Durations
Except where otherwise noted, durations are represented in tenths of a microsecond, so that 10000000.0 means 1 second.
See also
Povratne informacije
Pošalјite i prikažite povratne informacije za