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.
Print 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