Analyzing Report Telemetry
INTRODUCED IN: Business Central 2020 release wave 1
Report telemetry gathers data about which reports are run on the environment. It provides information about whether the report succeeded, failed, or was canceled. For each report, it tells you how long it ran, how many SQL statements it executed, and how many rows it consumed.
You use this data to gather statistics on report usage or to help identify slow-running reports.
Successful report generation
Occurs when a report dataset generates without any errors.
General dimensions
The following table explains the general dimensions of this trace.
| Dimension | Description or value |
|---|---|
| operation_Name | Success report generation Note: The use of the operation_Name column was deprecated in version 16.1. In future versions, data won't be stored in this column. So in version 16.1 and later, use the custom dimension column eventID column custom in Kusto queries instead of operation_Name. |
| message | Version 16.1 and later: Report rendered: {report ID} - {report name} Before version 16.1: The report {report ID} '{report name}' rendered successfully |
| severityLevel | 1 |
Custom dimensions
| Dimension | Description or value |
|---|---|
| aadTenantId | Specifies the Azure Active Directory (Azure AD) tenant ID used for Azure AD authentication. For on-premises, if you aren't using Azure AD authentication, this value is common. |
| alObjectId | Specifies the ID of the report object that was run. |
| alObjectName | Specifies the name of the report object that was run. |
| alObjectType | Report. |
| alStackTrace | The stack trace in AL. |
| clientType | Specifies the type of client that executed the SQL Statement, such as Background or Web. For a list of the client types, see ClientType Option Type. |
| companyName | Specifies the display name of the Business Central company for which the report was run. |
| component | Dynamics 365 Business Central Server. |
| componentVersion | Specifies the version number of the component that emits telemetry (see the component dimension.) |
| deprecatedKeys | Specifies 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. |
| documentFormat | Specifies the format of the report outputs as a result of the report action. See documentFormat. This dimension was added in version 20.0. |
| environmentName | Specifies the name of the tenant environment. See Managing Environments. |
| environmentType | Specifies the environment type for the tenant, such as Production, Sandbox, Trial. See Environment Types |
| eventId | RT0006 This dimension was introduced in Business Central 2020 release wave 1, version 16.1. |
| extensionId | Specifies the appID of the extension that the report object belongs to. |
| extensionName | Specifies the name of the extension that the report object belongs to. |
| extensionVersion | Specifies the version of the extension that the report object belongs to. |
| numberOfRows | Specifies the number of rows/records generated for the report dataset. |
| reportAction | Specifies the action that was done on the report. See reportAction. This dimension was added in version 20.0. |
| reportingEngine | Specifies the reporting engine used to generate the report, such as ProcessingOnly, Rdlc, or Word. This dimension was added in version 17.3 |
| result | Success |
| serverExecutionTime | Specifies the amount of time it took the service to complete the request[1]. The time has the format hh:mm:ss.sssssss. |
| sqlDatabaseAccessIntent | Specifies the database access intent used to read data for the report, such as ReadOnly, or ReadWrite. This dimension was added in version 19.1. |
| sqlExecutes | Specifies the number of SQL statements that the report executed[1]. |
| sqlRowsRead | Specifies the number of table rows that were read by the SQL statements[1]. |
| telemetrySchemaVersion | Specifies the version of the Business Central telemetry schema. |
| totalTime | Specifies the amount of time it took for the system to generate the dataset and render the report[1]. The time has the format hh:mm:ss.sssssss. |
1From telemetrySchemaVersion 0.6 and onwards, this value also includes the CompanyOpen operation.
reportAction
The reportAction dimension shows actions taken to generate a report. The action can be taken from the report request page, for example, from the Send To menu, or from AL code.
| Value | Description |
|---|---|
| None | There were no results from the request page, for example, the user canceled. |
| The user selected to print the report. | |
| Preview | The user selected to preview the report from the request page. |
| Save | The report was saved to a file by a call to the SaveAs method in AL code. |
| Schedule | The user selected to schedule the report from the request page. |
| Download | The user downloaded the report as a file from the request page. |
| Parameters | Parameters and filters were collected from the request page without rendering the output. |
documentFormat
The documentFormat dimension shows the output of the generated report as a result of the report action. The action can be taken from the report request page, for example, from the Send To menu, or from AL code.
| Value | Description |
|---|---|
| None | There was no output, for example, the user canceled. |
| Rdlc | The output was a .rdlc file type. |
| Word | The output was a .docx file type. |
| Excel | The output was a .xlsx file type that included the layout and dataset. |
| ExcelDataset | The output was a .xlsx file type that contained the dataset only. |
| Custom | The output was an custom file type. |
| ProcessingOnly | The action was for processing report without any kind of layout. |
Failed report generation
This operation occurs when the report dataset couldn't be generated because of an error.
General dimensions
The following table explains the general dimensions of the Failed report generation operation.
| Dimension | Description or value |
|---|---|
| message | Version 16.1 and later: Report rendering failed: {report ID} - {report name} Before version 16.1: The report {report ID} '{report name}' couldn't be rendered |
| operation_Name | Failed report generation Note: The use of the operation_Name column was deprecated in version 16.1. In future versions, data won't be stored in this column. So in version 16.1 and later, use the custom dimension column eventID column custom in Kusto queries instead of operation_Name. |
| severityLevel | 3 |
Custom dimensions
| Dimension | Description or value |
|---|---|
| aadTenantId | Specifies the Azure Active Directory (Azure AD) tenant ID used for Azure AD authentication. For on-premises, if you aren't using Azure AD authentication, this value is common. |
| alObjectId | Specifies the ID of the report object that was run. |
| alObjectName | Specifies the name of the report object that was run. |
| alObjectType | Report. |
| alStackTrace | The stack trace in AL. |
| cancelReason[2] | Specifies why the report was canceled. |
| clientType | Specifies the type of client that executed the SQL Statement, such as Background or Web. For a list of the client types, see ClientType Option Type. |
| companyName | Specifies the display name of the Business Central company for which the report was run. |
| component | Dynamics 365 Business Central Server. |
| componentVersion | Specifies the version number of the component that emits telemetry (see the component dimension.) |
| deprecatedKeys | Specifies 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. |
| documentFormat | Specifies the format of the report outputs as a result of the report action. See documentFormat. This dimension was added in version 20.0. |
| environmentName | Specifies the name of the tenant environment. See Managing Environments. |
| environmentType | Specifies the environment type for the tenant, such as Production, Sandbox, Trial. See Environment Types |
| eventId | RT0006 This dimension was introduced in Business Central 2020 release wave 1, version 16.1. |
| extensionId | Specifies the appID of the extension that the report object belongs to. |
| extensionName | Specifies the name of the extension that the report object belongs to. |
| extensionVersion | Specifies the version of the extension that the report object belongs to. |
| numberOfRows | Specifies the number of rows/records generated for the report dataset. |
| reportAction | Specifies the action that was done on the report. See reportAction. This dimension was added in version 20.0. |
| reportingEngine | Specifies the reporting engine used to generate the report, such as ProcessingOnly, Rdlc, or Word. This dimension was added in version 17.3 |
| result | Specifies the title of the exception that was thrown, such as NavNCLDialogException. |
| serverExecutionTime | Specifies the amount of time used by service on the request. The time has the format hh:mm:ss.sssssss. |
| sqlExecutes | Specifies the number of SQL statements that the report executed. |
| sqlRowsRead | Specifies the number of table rows that were read by the SQL statements. |
| telemetrySchemaVersion | Specifies the version of the Business Central telemetry schema. |
| totalTime | Specifies the amount of time used to generate the dataset and render the report before it failed. The time has the format hh:mm:ss.sssssss. |
2 Available in Business Central 2020 release wave 2 and later only.
Analyzing report generation failures
When a report fails to generate, the result column in the CustomDimensions will include the title of the exception that was thrown by the service or the AL code.
Cancellation report generation
This operation occurs when the report dataset generation was canceled. There are various conditions that can cancel a report. The Cancellation report generation operation emits different trace messages for each condition.
General dimensions
The following table explains the general dimensions of the Cancellation report generation operation.
| Dimension | Description or value |
|---|---|
| operation_Name | Cancellation report generation Note: The use of the operation_Name column was deprecated in version 16.1. In future versions, data won't be stored in this column. So in version 16.1 and later, use the custom dimension column eventID column custom in Kusto queries instead of operation_Name. |
| message | Specifies the reason why the report was canceled. See Analyzing cancellation messages section for details. |
| severityLevel | 2 |
Custom dimensions
| Dimension | Description or value |
|---|---|
| aadTenantId | Specifies the Azure Active Directory (Azure AD) tenant ID used for Azure AD authentication. For on-premises, if you aren't using Azure AD authentication, this value is common. |
| alObjectId | Specifies the ID of the report object that was run. |
| alObjectName | Specifies the name of the report object that was run. |
| alObjectType | Report. |
| alStackTrace | The stack trace in AL. |
| clientType | Specifies the type of client that executed the SQL Statement, such as Background or Web. For a list of the client types, see ClientType Option Type. |
| companyName | Specifies the display name of the Business Central company for which the report was run. |
| component | Dynamics 365 Business Central Server. |
| componentVersion | Specifies the version number of the component that emits telemetry (see the component dimension.) |
| deprecatedKeys | Specifies 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. |
| environmentName | Specifies the name of the tenant environment. See Managing Environments. |
| environmentType | Specifies the environment type for the tenant, such as Production, Sandbox, Trial. See Environment Types |
| eventId | RT0007 This dimension was introduced in Business Central 2020 release wave 1, version 16.1. |
| extensionId | Specifies the appID of the extension that the report object belongs to. |
| extensionName | Specifies the name of the extension that the report object belongs to. |
| extensionVersion | Specifies the version of the extension that the report object belongs to. |
| telemetrySchemaVersion | Specifies the version of the Business Central telemetry schema. |
Analyzing report cancellations
The cancellation messages indicate events that caused the report to be canceled. The telemetry can help identify slow-running reports - reports that take longer than expected to run and generate a large number of rows.
Note
The service evaluates cancellation events in a specific order, and the evaluation is done every five seconds. For more information, see Report Generation and Cancellation Flow.
Cancellation event received. Requesting cancellation of the action.
This message occurs when the session canceled a report as it was being generated.
Received a cancellation request from the user. Requesting cancellation of the action.
This message occurs when a user canceled a report in the client as it was being generated.
The action took longer to complete ({0}) than the specified threshold ({1}). Requesting cancellation of the action.
The service is configured to cancel reports if they take longer to generate than a set amount of time. With Business Central online, you can't change the threshold. With Business Central on-premises, you change the threshold by setting the Max Execution Timeout parameter on the Business Central Server instance. There's no timeout for on-premises by default. For more information, see Configuring Business Central Server.
The rendering of the word report has been cancelled because it took longer than the specified threshold ({0})"
This message occurs when a report that based on a Word layout takes longer to generate than the specified threshold. The event is only relevant for Business Central online. There's no timeout for on-premises.
The number of processed rows exceeded ({0} rows) the maximum number of rows ({1} rows). Requesting cancellation of the action.
The service is configured to cancel reports if they generate more than a set number of rows. With Business Central online, you can't change this threshold. With Business Central on-premises, you change the threshold by setting the Max Rows parameter on the Business Central Server instance. There's no limit on rows for on-premises by default. For more information, see Configuring Business Central Server.
Report cancelled but a commit occurred
This operation occurs when the report dataset generation was canceled but a COMMIT operation occurred before the cancellation. This pattern isn't recommended. Reconsider the report design.
General dimensions
The following table explains the general dimensions of the Report cancelled but a commit occurred operation.
| Dimension | Description or value |
|---|---|
| message | The report <ID> '<Name>' is being canceled, but a COMMIT() has been performed. This can lead to data inconsistency if the report is not idempotent |
| severityLevel | 2 |
Custom dimensions
| Dimension | Description or value |
|---|---|
| aadTenantId | Specifies the Azure Active Directory (Azure AD) tenant ID used for Azure AD authentication. For on-premises, if you aren't using Azure AD authentication, this value is common. |
| alObjectId | Specifies the ID of the report object that was run. |
| alObjectName | Specifies the name of the report object that was run. |
| alObjectType | Report. |
| alStackTrace | The stack trace in AL. |
| cancelReason | The reason why the report was cancelled |
| clientType | Specifies the type of client that executed the SQL Statement, such as Background or Web. For a list of the client types, see ClientType Option Type. |
| companyName | Specifies the display name of the Business Central company for which the report was run. |
| component | Dynamics 365 Business Central Server. |
| componentVersion | Specifies the version number of the component that emits telemetry (see the component dimension.) |
| deprecatedKeys | Specifies 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. |
| environmentName | Specifies the name of the tenant environment. See Managing Environments. |
| environmentType | Specifies the environment type for the tenant, such as Production, Sandbox, Trial. See Environment Types |
| eventId | RT0011 This dimension was introduced in Business Central 2020 release wave 1, version 16.1. |
| extensionId | Specifies the appID of the extension that the report object belongs to. |
| extensionName | Specifies the name of the extension that the report object belongs to. |
| extensionPublisher | Specifies the name of the extension publisher that the report object belongs to. |
| extensionVersion | Specifies the version of the extension that the report object belongs to. |
| telemetrySchemaVersion | Specifies the version of the Business Central telemetry schema. |
See also
Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights
Feedback
Submit and view feedback for