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. Learn more in 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

Specifies the Microsoft Entra tenant ID used for Microsoft Entra authentication. For on-premises, if you aren't using Microsoft Entra authentication, this value is common.
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.
  • None
    The page wasn't opened in a design mode. This value is shown when the hostType dimension is a value other than Designer
  • Personalization
    The page opened in the personalizing mode for tailoring the page in the user's workspace only. See Personalize Your Workspace.
  • Configuration
    The page opened in customizing mode for tailoring the page for all users of a specific profile. See Customizing Pages for Profiles.
  • Development
    The page opened in design mode for developing and modifying the page from the client for all users. See Use Designer.
  • Inspector
    The page opened in page inspection mode for viewing page information like source table, source extension, and filters. See Inspecting Pages.
  • All - the page was opened in the personalization, configuration, development, and inspector modes.
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. Learn more in Managing Environments.
environmentType Specifies the environment type for the tenant, such as Production or Sandbox. Learn more in 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.
  • Device App
    The page was loaded by a Business Central mobile app, from a desktop, tablet, or phone.
  • Office add-in
    The page was loaded by Office application, like Excel or Outlook.
  • Designer
    The page was loaded by the in-client designer, used for changing page layout. The designer has different modes. Each mode provides a different level of page customization, as specified in the designerLevel dimension.
  • Shim Browser
    The page was loaded by the UWP (Universal Windows Platform) application.
  • Browser
    The page was loaded by web browser, like Microsoft Edge or Google Chrome.
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:
  • View indicates the page was opened for viewing only
  • Edit indicates the page was opened for making changes
  • Create indicates the page was opened for creating a new entity.
  • Select indicates the page was opened for selecting an existing entity.
  • Delete indicates the page was opened for deleting an entity.
The mode in which a page opened determined by different things, like the RunPageMode Property or the URL used to open the page.
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

Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights