Analyzing Extension Lifecycle Trace Telemetry

INTRODUCED IN: Business Central 2020 release wave 1, version 16.3. Extension-level support introduced in 2020 release wave 2, version 17.1.

Note

Azure Active Directory is now Microsoft Entra ID. Learn more

Extension lifecycle telemetry gathers data about the success or failure of the following extension-related operations:

  • Compiling an extension
  • Synchronizing an extension
  • Publishing an extension
  • Installing an extension
  • Updating an extension
  • Uninstalling an extension
  • Unpublishing an extension

Failed operations result in a trace log entry that includes a reason for the failure.

Traces are recorded for operations started initiated from any of the following components, depending whether you have Business Central online or on-premises:

Component Online On-premises
Extension Management page in the Business Central client. check mark for feature. check mark for feature.
Manage Apps page in the Business Central admin center. check mark for feature.
App Management API of the Business Central admin center. check mark for feature.
Extension management PowerShell cmdlets from the Business Central Administration Shell check mark for feature.
Business Central control plane, which is the online service managed by Microsoft. check mark for feature.

Note

For some operations, you might experience that certain custom dimensions aren't available. The reason is that custom dimensions are added to the signal gradually, as the information is retrieved. If the operation fails before the custom dimension is retrieved, it isn't included in the result. For example, if you try to uninstall an extension using the Ininstall-NAVApp cmdlet, and the specified extension name is wrong, the operation fails. In this case, the extensionid and extensionVersion will be excluded from the results.

ENVIRONMENT/SERVER TRACES

The traces in this section are recorded for extensions that are published to the environment/server in the tenant scope only.

  • For on-premises, it includes extensions that are published by running the Publish-NAVApp cmdlet with the -Scope Tenant parameter.

  • For online, it includes per-tenant extensions uploaded from the Extension Management page in the client. It doesn't include Microsoft extensions or AppSource extensions.

Extension compiled successfully

Occurs when an extension compiles successfully on the service. An extension compiles when it's published or when it's repaired by using the Repair-NAVApp cmdlet.

General dimensions

Dimension Description or value
message Extension compiled successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0020
extensionCompilationDependencyList Specifies details about the extensions on which the compiled extension has dependencies.

Note: If the value exceeds 8000 characters, one or two additional dimensions will be included in the trace to cover the complete dependency list. For more information, see About Custom Dimensions.
extensionCompilationResult Compilation succeeded without errors or warnings.
extensionName Specifies the name of the extension that was compiled.
extensionId Specifies the ID of the extension/app.
extensionPublishedAs Specifies whether the compiled extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the compiled extension.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
telemetrySchemaVersion Specifies the version of the Business Central telemetry schema.

Common custom dimensions

The following table explains custom dimensions that are common to all traces.

Dimension Description or value
aadTenantId 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.
component Dynamics 365 Business Central Server.
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
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.
telemetrySchemaVersion Specifies the version of the Business Central telemetry schema.

Extension failed to compile

Occurs when an extension failed to compile on the service. An extension compiles when it's published or when it's repaired by using the Repair-NAVApp cmdlet.

General dimensions

Dimension Description or value
message Extension failed to compile: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
eventId LC0021
extensionCompilationDependencyList Specifies details about the extensions on which the compiled extension has dependencies.

Note: If the value exceeds 8000 characters, one or two additional dimensions will be included in the trace to cover the complete dependency list. For more information, see About Custom Dimensions.
extensionCompilationResult Specifies details about the error that occurred during compilation.
extensionName Specifies the name of the extension that failed to compile.
extensionId Specifies the ID of the extension/app.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the compiled extension.
failureReason Specifies the error that occurred when compiling the extension.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension published successfully

Occurs when an extension published successfully on the service.

General dimensions

Dimension Description or value
message Extension published successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0014
extensionIsRad Specifies whether the extension that was RAD published. True indicates the extension was RAD published. False indicates normal publishing.

RAD (Rapid Application Development) publishing is done from the AL development environment. RAD publishing is a partial publishing operation that only publishes objects application objects that have changed during development. For more information, see Work with Rapid Application Development.
extensionName Specifies the name of the extension that published.
extensionId Specifies the ID of the extension/app.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the published extension.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension failed to publish

Occurs when an extension failed publish on the service.

General dimensions

Dimension Description or value
message Extension failed to publish: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
eventId LC0015
extensionIsRad Specifies whether the extension that was RAD published. True indicates the extension was RAD published. False indicates normal publishing.

RAD (Rapid Application Development) publishing is done from the AL development environment. RAD publishing only is a partial publishing operation that only publishes objects application objects that have changed during development. For more information, see Work with Rapid Application Development.
extensionName Specifies the name of the extension that published.
extensionId Specifies the ID of the extension/app.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the published extension.
failureReason Specifies the error that occurred when publishing.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension unpublished successfully

Occurs when an extension was unpublished successfully on the service.

General dimensions

Dimension Description or value
message Extension unpublished successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0018
extensionName Specifies the name of the extension that was unpublished.
extensionId Specifies the ID of the extension/app.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the unpublished extension.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension failed to un-publish

Occurs when an extension fails to unpublish on the service.

General dimensions

Dimension Description or value
message Extension failed to un-publish: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
eventId LC0019
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that failed to unpublish.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the unpublished extension.
failureReason Specifies the error that occurred when unpublishing.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

TENANT TRACES

The traces in this section are recorded for synchronizing, installing and updating extensions on a tenant.

  • Synchronizing extensions

    • For on-premises, data for this operation is recorded when an extension is synchronized by using the Sync-NAVApp cmdlet.

    • For online, data is recorded when an extension is installed from the Extension Management page in the client. Or, when upgraded from the Manage Apps page in the Business Central administration center.

  • Installing and uninstalling extensions

    • For on-premises, data for these operations is recorded when an extension is installed or uninstalled by using the Install-NAVApp cmdlet or Uninstall-NAVApp cmdlet. Or, when an extension is installed or uninstalled from the Extension Management page in the client.

    • For online, data for these operations is recorded when an extension is installed or uninstalled from the Extension Management page in the client.

  • Updating an extension

    • For on-premises, data for this operation is recorded when an extension is upgraded by using the Start-NAVAppDataUpgrade cmdlet.

    • For online, data is recorded when an extension is updated from the Manage Apps page in the Business Central administration center.

Extension synchronized successfully

Occurs when an extension synchronizes successfully on the tenant.

General dimensions

Dimension Description or value
message Extension synchronized successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0012
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was synchronized.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionSynchronizationMode Specifies whether the extension was synchronized in one of the following modes:
  • Add - The database schema defined by the objects in the extension are added to the database schema of the tenant database. This mode is typically used mode after you publish an extension for the first time.
  • Clean - The database schema defined by all versions of the extension will be removed from the database and all data is lost. This mode is typically used when an extension will no longer be used and all versions unpublished.
  • Development - This mode is acts similar to Add, except it's intended for use during development. It lets you sync the same version of an extension that is already published. However, to run this mode, only one version the App can be currently published.
  • ForceSync - This mode like Add except it supports destructive schema changes (like removing fields, renaming them, changing their datatypes, and more). it's typically used during development, and is the mode used when an extension is published and installed from the AL development environment.
For more information about the modes, see Sync-NAVApp cmdlet -Mode.
extensionVersion Specifies the version of the extension was synchronized.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension synchronized failed

Occurs when an extension fails to synchronize on the tenant.

General dimensions

Dimension Description or value
message Extension failed to synchronize: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0013
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that failed to synchronize.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionSynchronizationMode Specifies whether the extension was synchronized in one of the following modes:
  • Add - The database schema defined by the objects in the extension are added to the database schema of the tenant database. This mode is typically used mode after you publish an extension for the first time.
  • Clean - The database schema defined by all versions of the extension will be removed from the database and all data is lost. This mode is typically used when an extension will no longer be used and all versions unpublished.
  • Development - This mode is acts similar to Add, except it's intended for use during development. It lets you sync the same version of an extension that is already published. However, to run this mode, only one version the App can be currently published.
  • ForceSync - This mode like Add except it supports destructive schema changes (like removing fields, renaming them, changing their datatypes, and more). it's typically used during development, and is the mode used when an extension is published and installed from the AL development environment.
For more information about the modes, see Sync-NAVApp cmdlet -Mode.
extensionVersion Specifies the version of the extension was synchronized.
failureReason Specifies the error that occurred when synchronizing the extension.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension is already synchronized

Occurs when an extension was already synchronized on the tenant. Added in version 21.1.

General dimensions

Dimension Description or value
message Extension is already synchronized: {extensionName}
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0056
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that failed to synchronize.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionSynchronizationMode Specifies whether the extension was synchronized in one of the following modes:
  • Add - The database schema defined by the objects in the extension are added to the database schema of the tenant database. This mode is typically used mode after you publish an extension for the first time.
  • Clean - The database schema defined by all versions of the extension will be removed from the database and all data is lost. This mode is typically used when an extension will no longer be used and all versions unpublished.
  • Development - This mode is acts similar to Add, except it's intended for use during development. It lets you sync the same version of an extension that is already published. However, to run this mode, only one version the App can be currently published.
  • ForceSync - This mode like Add except it supports destructive schema changes (like removing fields, renaming them, changing their datatypes, and more). it's typically used during development, and is the mode used when an extension is published and installed from the AL development environment.
For more information about the modes, see Sync-NAVApp cmdlet -Mode.
extensionVersion Specifies the version of the extension was synchronized.
failureReason Specifies the error that occurred when synchronizing the extension.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension installed successfully

Occurs when an extension installs successfully on a tenant.

General dimensions

Dimension Description or value
message Extension installed successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0010
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was installed.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the extension that was installed.
extensionAvailability Specifies the availability of an AppSource extension:
  • Public - The version is public and can be installed on any environment.
  • Preview - The version is in preview and can be installed on selected Sandbox environments using a preview key provided by the AppSource publisher.
extensionPreviewKeyProvided Specifies whether a preview key was specified when installing the extension. A preview key is required to install preview versions.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Dependent extension installed successfully

Occurs when an extension is installed because another extension that depends on it was installed. This event is only available from version 18.1 and later.

General dimensions

Dimension Description or value
message Dependent Extension installed successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0026
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was installed.
extensionPublisher Specifies the extension's publisher.
extensionVersion Specifies the version of the extension that was installed.
parentExtensionId Specifies the ID of the other extension that required the installation this extension.
See common custom dimensions

Extension failed to install

Occurs when an extension failed to install on a tenant.

General dimensions

Dimension Description or value
message Extension failed to install: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
eventId LC0011
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that failed to uninstall.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the extension that was installed.
failureReason Specifies the error that occurred when the extension was installed.
extensionAvailability Specifies the availability of an AppSource extension:
  • Public - The version is public and can be installed on any environment.
  • Preview - The version is in preview and can be installed on selected Sandbox environments using a preview key provided by the AppSource publisher.
extensionPreviewKeyProvided Specifies whether a preview key was specified when installing the extension. A preview key is required to install preview versions.
result Failed
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension un-installed successfully

Occurs when an extension is successfully uninstalled from a tenant.

General dimensions

Dimension Description or value
message Extension un-installed successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0016
doNotSaveData Specifies whether the uninstall operation was run with option not to save the data in database table fields that are added by the extension. When using the Uninstall-NAVApp cmdlet, this condition is set with the -DoNotSaveData switch parameter.
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was uninstalled.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the extension was uninstalled.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Dependent extension un-installed successfully

Occurs when an extension is uninstalled because an extension that it's dependent on was uninstalled. This event is only available from version 18.1 and later.

General dimensions

Dimension Description or value
message Dependent extension un-installed successfully: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 1

Custom dimensions

Dimension Description or value
eventId LC0027
doNotSaveData Specifies whether the uninstall operation on the parent extension was run with option not to save the data in database table fields that are added by the extension. When using the Uninstall-NAVApp cmdlet, this condition is set with the -DoNotSaveData switch parameter.
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the dependent extension that was uninstalled.
extensionPublisher Specifies the dependent extension's publisher.
extensionVersion Specifies the version of the dependent extension was uninstalled.
parentExtensionId Specifies the ID of the extension that the uninstalled extension is dependent on.
See common custom dimensions

Extension failed to un-install

Occurs when an extension failed to uninstall on a tenant.

General dimensions

Dimension Description or value
message Extension failed to un-install: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
eventId LC0017
doNotSaveData Specifies whether the uninstall operation was run with option not to save the data in database table fields that are added by the extension. When using the Uninstall-NAVApp cmdlet, this condition is set with the -DoNotSaveData switch parameter.
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
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that failed to uninstall.
extensionPublishedAs Specifies whether the extension was published as one of the following options:
  • Dev - published from the AL development environment.
  • Global - published to the global scope.
  • Tenant - published to the tenant scope.
extensionPublisher Specifies the extension's publisher.
extensionScope Specifies whether the extension was published to one of the following scopes:
  • Global - the extension can be installed on all tenants connected the service instance.
  • Tenant - the extension can only be installed on the tenant to which it was published.
extensionVersion Specifies the version of the extension that failed to uninstall.
failureReason Specifies the error that occurred when the extension was uninstalled.
result Failure
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension updated successfully

Occurs when an extension updates successfully on the service.

Note

Data is also recorded for any upgrade code that was run. For more information, see Analyzing Extension Update Trace Telemetry.

General dimensions

Dimension Description or value
message Extension updated successfully: {extensionName} version {extensionVersion} by {extensionPublisher}
severityLevel 1

Custom dimensions

Dimension Description or value
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 LC0022
extensionCulture Specifies the language version for which the extension that was upgraded. The value is a language culture name, such as en-US or da-DK. If a language wasn't specified when the extension was installed, then en-US is used by default.
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was being upgraded.
extensionPublisher Specifies the extension's publisher.
extensionVersion Specifies the new version of the extension being upgraded.
extensionVersionFrom Specifies the old version of the extension being upgraded.
extensionAvailability Specifies the availability of an AppSource extension:
  • Public - The version is public and can be installed on any environment.
  • Preview - The version is in preview and can be installed on selected Sandbox environments using a preview key provided by the AppSource publisher.
extensionPreviewKeyProvided Specifies whether a preview key was specified when installing the extension. A preview key is required to install preview versions.
result Success
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

Extension failed to update

Occurs when an extension failed to update on the service.

Note

Data is also recorded for any upgrade code that was run. For more information, see Analyzing Extension Update Trace Telemetry.

General dimensions

Dimension Description or value
message Extension failed to update: {extensionName} version {extensionVersion} by {extensionPublisher} ({extensionId})
severityLevel 3

Custom dimensions

Dimension Description or value
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 LC0023
extensionCulture Specifies the language version for which the extension that was upgraded. The value is a language culture name, such as en-US or da-DK. If a language wasn't specified when the extension was installed, then en-US is used by default.
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension that was being upgraded.
extensionPublisher Specifies the extension's publisher.
extensionVersion Specifies the new version of the extension being upgraded.
extensionVersionFrom Specifies the old version of the extension being upgraded.
failureReason Specifies the error that occurred during upgrade.
result Failure
extensionAvailability Specifies the availability of an AppSource extension:
  • Public - The version is public and can be installed on any environment.
  • Preview - The version is in preview and can be installed on selected Sandbox environments using a preview key provided by the AppSource publisher.
extensionPreviewKeyProvided Specifies whether a preview key was specified when installing the extension. A preview key is required to install preview versions.
serverExecutionTime Specifies the amount of time it took the server to complete the request. The time has the format hh:mm:ss.sssssss.
sqlExecutes Specifies the number of SQL statements that the request executed.
sqlRowsRead Specifies the number of table rows that were read by the SQL statements.
totalTime Specifies the amount of time it took to process the request. The time has the format hh:mm:ss.sssssss.
See common custom dimensions

CONTROL PLANE TRACES

APPLIES TO: Business Central online

The traces in this section are emitted by the Business Central control plane service during the installation or update operation of an extension/app. Theses traces compliment the tenant traces described above and help you identify the origin or cause of the extension's installation or update. The traces are recorded when:

  • The extension is explicitly installed or updated
  • The extension is installed or updated because an extension that's dependant on it was installed or updated.
  • A hotfix is applied to the extension by Microsoft or ISV embed partner.

The following table illustrates the traces you can expect to see with the installation or update of an extension, in the order that they'll occur. The trace messages have been simplified for illustration purposes.

Extension install lifecycle Extension update lifecycle Trace source
Environment app version install scheduled Environment app version update scheduled Control plane
Environment app version install started Environment app version update started Control plane
Environment app version install/update requires dependency app Environment app version install/update requires dependency app Control plane
Extension synchronized: version Extension synchronized: version Tenant
Extension installed: version Extension updated: version Tenant
Environment app version installed Environment app version updated Control plane

Environment app version installation scheduled for environment

Occurs when scheduling the installation of a new extension/app has completed successfully.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionDestinationVersion} installation scheduled for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0161
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app version installation scheduling failed for environment

Occurs when scheduling the installation of a new extension/app has failed.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionDestinationVersion} installation scheduling failed for environment: {environmentName}
severityLevel 3

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0162
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
failureReason Specifies the reason for the failure. Use this for troubleshooting.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app version installation started for environment

Occurs when installing a new extension/app has started.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionDestinationVersion} installation started for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0163
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app version installation succeeded for environment

Occurs when installing a new extension/app has completed successfully.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionVersion} installation succeeded for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0164
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
totalTime Specifies the total time the operation ran for.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app version installation failed for environment

Occurs when installing a new extension/app has failed.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionDestinationVersion} installation failed for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependentsUninstall A boolean that specifies whether dependent extensions will be uninstalled.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0165
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionSourceVersion Specifies the current version of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app version installation/update requires automatically installing a new dependency app for environment

Occurs when the extension/app that's being installed or updated has a dependency on another extension/app that must be installed first.

General dimensions

Dimension Description or value
message Environment app {extensionName}, version {extensionDestinationVersion} installation/update requires automatically installing a new dependency app {dependencyExtensionName}, version {dependencyExtensionDestinationVersion} for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
dependencyExtensionDestinationVersion Specifies the version of the dependency extension.
dependencyExtensionId Specifies the ID of the dependency extension/app.
dependencyExtensionName Specifies the name of the dependency extension/app.
dependencyExtensionPublisher Specifies the publisher of the dependency extension/app.
dependencyExtensionScope Specifies whether the dependency extension/app is published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0166
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app update to version scheduled for environment

Occurs when scheduling the update of an existing extension/app to another version has succeeded.

General dimensions

Dimension Description or value
message Environment app {extensionName} update to version {extensionDestinationVersion} scheduled for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0167
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionSourceVersion Specifies the current version of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app update to version scheduling failed for environment

Occurs when scheduling the update of an existing extension/app to another version has failed.

General dimensions

Dimension Description or value
message Environment app {extensionId} update to version {extensionDestinationVersion} scheduling failed for environment: {environmentName}
severityLevel 3

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0168
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
extensionSourceVersion Specifies the current version of the extension/app.
failureReason Specifies the reason for the failure. Use this for troubleshooting.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app update to version started for environment

Occurs when updating of an existing extension/app to another version has started.

General dimensions

Dimension Description or value
message Environment app {extensionId} update to version {extensionDestinationVersion} started for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0169
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
extensionSourceVersion Specifies the current version of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app update to version succeeded for environment

Occurs when updating of an existing extension/app to another version has completed successfully.

General dimensions

Dimension Description or value
message Environment app {extensionId} update to version {extensionDestinationVersion} succeeded for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0170
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
extensionSourceVersion Specifies the current version of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
totalTime Specifies the total time the operation ran for.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app update to version failed for environment

Occurs when updating an existing extension/app to another version has failed.

General dimensions

Dimension Description or value
message Environment app {extensionId} update to version {extensionDestinationVersion} failed for environment: {environmentName}
severityLevel 3

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0171
extensionDestinationVersion Specifies the version of the extension/app to be installed or updated to.S
extensionId Specifies the ID of the extension/app.
extensionScope Specifies whether the extension/app was published to one of the following scopes:
Global - the extension can be installed on all tenants connected the service instance.
Tenant - the extension can only be installed on the tenant to which it was published.
extensionSourceVersion Specifies the current version of the extension/app.
failureReason Specifies the reason for the failure. Use this for troubleshooting.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
totalTime Specifies the total time the operation ran for.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app uninstall scheduled for environment

Occurs when scheduling the uninstallation of an extension/app has completed successfully.

General dimensions

Dimension Description or value
message Environment app {extensionName} uninstall scheduled for environment: {environmentName}
severityLevel 1

Custom dimensions

Dimension Description or value
allowDependencyUpdate A boolean that specifies whether dependent extensions will be updated
allowPreviewVersion A boolean that specifies whether preview versions are allowed.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0173
extensionId Specifies the ID of the extension/app.
extensionName Specifies the name of the extension/app.
extensionPublisher Specifies the publisher of the extension/app.
extensionSourceVersion Specifies the current version of the extension/app.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Environment app uninstall scheduling failed for environment

Occurs when scheduling the uninstallation of an extension/app has failed.

General dimensions

Dimension Description or value
message Environment app {extensionId} uninstall scheduling failed for environment: {environmentName}
severityLevel 3

Custom dimensions

Dimension Description or value
allowDependentsUninstall A boolean that specifies whether dependent extensions will be uninstalled.
applicationFamily Specifies the application family for the environment, such as BusinessCentral. For environments in the ISV embed program, other values might show up here.
countryCode Specifies the localization for the environment, such as US or DK.
deleteData A boolean that specifies whether data will be deleted.
environmentName Specifies the name of the tenant environment. Learn more in Managing Environments.
environmentType Specifies the version of the tenant environment.
environmentVersion Specifies the version of the tenant environment.
eventId LC0174
extensionId Specifies the ID of the extension/app.
failureReason Specifies the reason for the failure. Use this for troubleshooting.
runAfterDateUtc Specifies the date and time (in UTC) after which the hotfix can be applied.
useEnvironmentUpdateWindow A boolean value (true or false) that specifies whether to use the update window that's defined in the Business Central admin center.
See common custom dimensions -

Upgrading Extensions
Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights