Analyzing changelog configuration changes telemetry
INTRODUCED IN: Business Central 2023 release wave 2, version 23.0.
Note
Azure Active Directory is now Microsoft Entra ID. Learn more
The Business Central changelog feature lets you track direct modifications a user makes to data in the database. You specify each table and field that you want the system to log, and then you activate the changelog. The changelog is based on changes that are made to data in the tables that you track.
For more information about the changelog feature, see Auditing changes in Business Central.
Telemetry is logged for the following changes to the configuration of the changelog:
- When a field is added to be tracked in the changelog.
- When changelog configuration for a field is changed.
- When a field is removed for being tracked in the changelog.
Field added to changelog configuration
Occurs when a field is added to be tracked in the changelog.
General dimensions
Dimension | Description or value |
---|---|
message | Field added to changelog configuration |
user_Id | The user telemetry ID for the user. From the user card, you can use user_Id to identify the user who triggered this telemetry event. Learn more in Assign a telemetry ID to users. |
Custom dimensions
Dimension | Description or value |
---|---|
aadTenantId |
Note Azure Active Directory is now Microsoft Entra ID. Learn more |
environmentName | Specifies the name of the tenant environment. Learn more in Managing Environments. |
environmentType | Specifies the environment type for the tenant, such as Production or Sandbox. Learn more in Environment Types. |
eventId | AL0000LA2 |
alTableNumber | Specifies the ID of the table where the changed field is included. |
alTableCaption | Specifies the name of the table where the changed field is included. |
alFieldNumber | Specifies the ID of the field to be logged. |
alFieldCaption | Specifies the name of the field to be logged. |
alLogInsertion | Are insertions logged? (Yes or No) |
alLogModification | Are data modifications logged? (Yes or No) |
alLogDeletion | Are deletions logged? (Yes or No) |
Sample KQL code (field added)
This KQL code can help you get started analyzing change log telemetry for added fields or if you want to alert on these changes.
// Field added to change log configuration
traces
| where timestamp > ago(60d) // adjust as needed
| where customDimensions has 'AL0000LA2' // for performance
| where customDimensions.eventId == 'AL0000LA2'
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// on which field in which table
, alTableNumber = customDimensions.alTableNumber
, alTableCaption = customDimensions.alTableCaption
, alFieldNumber = customDimensions.alFieldNumber
, alFieldCaption = customDimensions.alFieldCaption
// what was the configuration change
, alLogInsertion = customDimensions.alLogInsertion
, alLogModification = customDimensions.alLogModification
, alLogDeletion = customDimensions.alLogDeletion
// which user made the configuration change
, UsertelemetryId = user_Id
Field logging changed in changelog configuration
Occurs when changelog configuration for a field is changed.
General dimensions
Dimension | Description or value |
---|---|
message | Field logging changed in changelog configuration |
user_Id | The user telemetry ID for the user. From the user card, you can use user_Id to identify the user who triggered this telemetry event. Learn more in Assign a telemetry ID to users. |
Custom dimensions
Dimension | Description or value |
---|---|
aadTenantId |
Note Azure Active Directory is now Microsoft Entra ID. Learn more |
environmentName | Specifies the name of the tenant environment. Learn more in Managing Environments. |
environmentType | Specifies the environment type for the tenant, such as Production or Sandbox. Learn more in Environment Types. |
eventId | AL0000LA1 |
alTableNumber | Specifies the ID of the table where the changed field is included. |
alTableCaption | Specifies the name of the table where the changed field is included. |
alFieldNumber | Specifies the ID of the field to be logged. |
alFieldCaption | Specifies the name of the field to be logged. |
alLogInsertion | Are insertions logged? (Yes or No) |
alLogInsertionOld | Were insertions logged before? (Yes or No) |
alLogModification | Are data modifications logged? (Yes or No) |
alLogModificationOld | Were data modifications logged before? (Yes or No) |
alLogDeletion | Are deletions logged? (Yes or No) |
alLogDeletionOld | Were deletions logged before? (Yes or No) |
Sample KQL code (field logging changed)
This KQL code can help you get started analyzing change log telemetry for changed logging of fields or if you want to alert on these changes.
// Field logging changed in changelog configuration
traces
| where timestamp > ago(60d) // adjust as needed
| where customDimensions has 'AL0000LA1' // for performance
| where customDimensions.eventId == 'AL0000LA1'
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// on which field in which table
, alTableNumber = customDimensions.alTableNumber
, alTableCaption = customDimensions.alTableCaption
, alFieldNumber = customDimensions.alFieldNumber
, alFieldCaption = customDimensions.alFieldCaption
// what was the configuration change
, alLogDeletion = customDimensions.alLogDeletion
, alLogInsertionOld = customDimensions.alLogInsertionOld
, alLogInsertion = customDimensions.alLogInsertion
, alLogDeletionOld = customDimensions.alLogDeletionOld
, alLogModification = customDimensions.alLogModification
, alLogModificationOld = customDimensions.alLogModificationOld
// which user made the configuration change
, UsertelemetryId = user_Id
Field removed from changelog configuration
Occurs when a field is removed for being tracked in the changelog.
General dimensions
Dimension | Description or value |
---|---|
message | Field removed from changelog configuration |
user_Id | The user telemetry ID for the user. From the user card, you can use user_Id to identify the user who triggered this telemetry event. Learn more in Assign a telemetry ID to users. |
Custom dimensions
Dimension | Description or value |
---|---|
aadTenantId |
Note Azure Active Directory is now Microsoft Entra ID. Learn more |
environmentName | Specifies the name of the tenant environment. Learn more in Managing Environments. |
environmentType | Specifies the environment type for the tenant, such as Production or Sandbox. Learn more in Environment Types. |
eventId | AL0000LA3 |
alTableNumber | Specifies the ID of the table where the changed field is included. |
alTableCaption | Specifies the name of the table where the changed field is included. |
alFieldNumber | Specifies the ID of the field to no longer be logged. |
alFieldCaption | Specifies the name of the field to no longer be logged. |
Sample KQL code (field removed)
This KQL code can help you get started analyzing change log telemetry for removed fields or if you want to alert on these changes.
// Field removed from changelog configuration
traces
| where timestamp > ago(60d) // adjust as needed
| where customDimensions has 'AL0000LA3' // for performance
| where customDimensions.eventId == 'AL0000LA3'
| project timestamp
// in which environment/company did it happen
, aadTenantId = customDimensions.aadTenantId
, environmentName = customDimensions.environmentName
, environmentType = customDimensions.environmentType
, companyName = customDimensions.companyName
// on which field in which table
, alTableNumber = customDimensions.alTableNumber
, alTableCaption = customDimensions.alTableCaption
, alFieldNumber = customDimensions.alFieldNumber
, alFieldCaption = customDimensions.alFieldCaption
// which user made the configuration change
, UsertelemetryId = user_Id
Performance effect of enabling change logging on a table
There's a performance overhead involved in having change log enabled on a table. First, there are extra writes to the database when inserting, modifying, or deleting data. Each of these operations triggers an insert statement per field that's enabled change logging. Second, the size of the change log table can impact the performance of admin operations such as copy company, export, and backup/restore of environments.
It's recommended to critically evaluate what fields should be tracked in the change log and also to do extra testing with realistic data before rolling out configuration changes to the setup of the change log.
For more information, see Change log.
Related information
Auditing Changes in Business Central
Field monitoring telemetry
Monitoring and Analyzing Telemetry
Enable Sending Telemetry to Application Insights
Alert on telemetry