Analyzing Report Generation Telemetry

INTRODUCED IN: Business Central 2020 release wave 1

Report generation telemetry gathers data about reports that are run on the service. It provides information about whether the report dataset generation 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 to help identify slow-running reports.

Success 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 that 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 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.
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.
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.

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