Analyzing Page View Telemetry
INTRODUCED IN: Business Central 2020 release wave 1, version 16.3. Available in extension telemetry from version 18.0. Available in on-premises environments from version 21.0. Query telemetry available from version 23.0.
Page view telemetry gathers data about the pages that users open in the Business Central client. Each page view tells you how long it took to open the page, information about the user's environment, and more.
Use the data to gather statistics about system usage and also troubleshoot performance issues caused by the users' environments.
Note
In Application Insights, telemetry about page views is logged to the pageViews table and not the traces table like other Business Central traces. This also means that you can use the built-in pages in the Usage feature of the Application Insights to investigate how users interact with the Business Central environment. For more information, see Usage analysis with Application Insights.
Page opened: {alObjectName}
Occurs when a page has been opened in the client.
General dimensions
The pageViews table is a built-in table in Application Insights. Here are some of the fields most used in analysis of the signal:
Field | Description or value |
---|---|
client_Browser | Browser running on the client device. |
client_OS | Operating system of the client device. |
client_Type | Type of the client device. |
duration | Number of milliseconds it took the application to handle the page view. |
url | URL of the page view. |
name | Name of the page opened in the client |
session_id | An identifier for the session. Can be used to create a timeline of page views happening in the session |
user_Id | The user telemetry ID for the user. From the user card, you can use user_Id to identify the user who triggered this telemetry event. For more information, see Assign a telemetry ID to users. Data in user_Id from the User card was introduced in version 24 for page view telemetry. |
All fields are documented here: Application Insights PageViews Schema
Custom dimensions
Dimension | Description or value |
---|---|
aadTenantId |
Note Azure Active Directory is now Microsoft Entra ID. Learn more |
alObjectId | Specifies the ID of the page object that was opened. |
alObjectName | Specifies the name of the page object that was opened. |
alObjectType | Page |
appId | Specifies the Id of the app/extension that was opened. |
appName | Specifies the name of the app/extension that the page belongs to. |
appPublisher | Specifies the publisher of the app/extension that the page belongs to. |
appVersion | Specifies the version of the app/extension that the page belongs to. |
clientType | Specifies the type of client that opened the session, such as Background or Web. For a list of the client types, see ClientType Option Type. |
companyName | The current company name. |
component | Dynamics 365 Business Central Server. |
componentVersion | Specifies the version number of the component that emits telemetry (see the component dimension.) |
deprecatedKeys | A comma-separated list of all the keys that have been deprecated. The keys in this list are still supported but will eventually be removed in the next major release. We recommend that update any queries that use these keys to use the new key name. |
designerLevel | Specifies the design level in which the page was opened. This dimension provides additional insight when the hostType dimension is Designer.
|
deviceLocale | Specifies the preferred language that's configured for the device that opened the page. For example, this dimension could show the language setting of a browser used to view the page. The value is a language code, such as en-US or da-DK. |
deviceScreenResolution | Specifies the display resolution of the device that opened the page. The value is given as {width}×{height}, with the units in pixels. For example, 1024×768 means the width is 1024 pixels and the height is 768 pixels. |
environmentName | Specifies the name of the tenant environment. See Managing Environments. |
environmentType | Specifies the environment type for the tenant, such as Production or Sandbox. See Environment Types. |
eventID | CL0001 (note that this is different from other signals where the dimension is called eventId) |
expandedFastTabs | Specifies the FastTabs on the page that were expanded when the page opened. |
factboxExpanded | Specifies whether the FactBox area was shown or hidden when the page was opened. true indicates that the FactBox was shown. false indicates that the FactBox was hidden. |
hostType | Specifies the host that loads the page.
|
message | Page opened: {alObjectName} |
pageIsModal | Specifies whether the page was opened as a modal page. true indicates that the page was opened as a modal page; otherwise, false. |
pageMode | Specifies whether the page was opened in one of the following modes:
|
pageType | Specifies the type of page, such as Card, List, Document, and more. For a complete list of page types and descriptions, see Page Types and Layouts. |
refUri | Specifies the URI of the page. |
telemetrySchemaVersion | Specifies the version of the Business Central telemetry schema. |
Sample KQL code (page views)
This KQL code can help you get started analyzing which pages users use:
// Page views (normal pages)
pageViews
| where timestamp > ago(7d) // adjust as needed
| where customDimensions.pageDataSourceType != 'Query'
| parse kind=regex client_Browser with browserName:string ' ' browserVersion:string
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// in which extension/app
, appId = customDimensions.appId
, appName = customDimensions.appName
, appPublisher = customDimensions.appPublisher
, appVersion = customDimensions.appVersion
// in which object
, alObjectId = customDimensions.alObjectId
, alObjectName = customDimensions.alObjectName
, alObjectType = customDimensions.alObjectType
// which client (browser, tablet, phone, ...)
, clientType = customDimensions.clientType
// device info
, deviceLocale = customDimensions.deviceLocale
, deviceScreenResolution = customDimensions.deviceScreenResolution
// page details
, designerLevel = customDimensions.designerLevel
, expandedFastTabs = customDimensions.expandedFastTabs
, factboxExpanded = customDimensions.factboxExpanded
, hostType = customDimensions.hostType
, pageIsModal = customDimensions.pageIsModal
, pageMode = customDimensions.pageMode
, pageType = customDimensions.pageType
, refUri = customDimensions.refUri
// all of this data is not stored in customDimensions
, browserName = iff(browserName=='Edg', 'Edge', browserName)
, browserVersion = browserVersion
, clientBrowser = client_Browser
, clientOS = client_OS
, durationInMs = duration
, location = client_CountryOrRegion
Query opened
Occurs when a query has been opened in the client.
INTRODUCED IN: Business Central 2023 release wave 2, version 23.0.
Custom dimensions
Query usage telemetry use the same dimensions as normal page views. The only difference is that the custom dimension pageDataSourceType is set to the value Query.
Sample KQL code (query usage)
This KQL code can help you get started analyzing which queries users use to analyze data:
// Page views (for queries)
pageViews
| where timestamp > ago(7d) // adjust as needed
| where customDimensions.pageDataSourceType == 'Query'
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// in which extension/app
, appId = customDimensions.appId
, appName = customDimensions.appName
, appPublisher = customDimensions.appPublisher
, appVersion = customDimensions.appVersion
// in which object
, alObjectId = customDimensions.alObjectId
, alObjectName = customDimensions.alObjectName
, alObjectType = 'Query'
// copy KQL code on client type, device info, page details etc. from the KQL sample code on normal page views above
See also
Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights