This is a post I’ve been meaning to put out for quite a while. Early last year, I discovered the service when coming up with a presentation on why a client should use Azure Monitor. Azure Application Change Analysis can track changes to Azure Resources as well as your Apps. In particular it shines with App Services.
Though not totally integrated into Azure Monitor, meaning I cannot create alerts, it does fall under the Azure Monitor service. The bonus is that its completely free to use. It is still in preview and thus offers no SLA. You can find the offiicial docs here
Azure Resource Change Tracking
The Application Change Analysis service can track property and state changes to your Azure Resources without any configuration, its just there and working for you. You can audit and review changes on your Azure Resources. From someone changing tags, or a resource auto stopping and starting, it will all be under Azure Application Change Analysis.
There are a couple of ways to view Change Tracking data. One way is to simply search “Application Change Analysis” in Azure.
You’ll then be presented with some filter options for Subscription, Time Range, Resource Group and Change Level. This is great to get a quick overview of your entire subscription. You can see state changes, tag or other property changes here.
The other way to see change tracking data is in App Services and Azure Functions to click on Diagnose and Solve Problems. Then Availability and Performance.
In this view you have a ton of other troubleshooting views you can use, but you can click on Application Change Analysis.
This example is from my Solar Collection using LogicApps and Azure Functions, in which an Azure Monitor alert fires a LogicApp that starts and stops an Azure Function based on sunrise and sunset time. This will bring up changes related just to your application.
You can see it provides the state changes, the old value and the new value.
If you expand full content view you are presented with JSON comparison of old state and new state. This isn’t limited to one change either, if multiple settings or properties were changed at the same time they will all be highlighted. Full expanded view is also important for in app changes which I will cover in the next section.
Another example, I added a new application setting in my App Service and the new key and value are both captured.
Enable Azure Application Change Analysis App Services
The killer value in Applicaiton Change Analysis is it goes beyond just your Azure Resources, once enabled, you can track changes in your applications code. To enable it, under Diagnose and Solve Problems -> Application Change Analysis -> click Configure.
This will take you to a view of your App Service Plan and ask you which apps you want to enable in app change tracking for.
In App Changes
Once enabled, you can now see changes to files, code etc inside your app service. One caveat is that I have not gotten this to work for Azure Functions, only App Services.
In this example below I told WordPress running on App Services to update. This shows all the files it changed. Just like changes before expanded view will show you full JSON output of what changed, whats new. So if you had pushed new code to your app service and it was bad, you could see directly which lines of code were changed.
Additionally, you can now add Change Analysis to your workbooks.
Unfortunately its a little limited. While the service you select supports parameters, the resource type itself should support parameters. The reason being is that workbooks are incredibly powerful. As I showed in my Dynamic Monitoring post on Tech Community, Workbooks are very smart. You can have multiple resource types in one parameter and each metric or log search is smart enough to filter based on what you’ve selected.
So if Change Analysis supported resource type parameters in Workbooks, I could bring in all your resources for an application. We could do this based on tag, or resource group or groups or whatever, and dynamically show all change analysis histroy relevant to resources contained with that that tag, resource group, subscription etc.
While we can’t alert on any data within Application Change Analysis, it can still be a powerful tool for troubleshooting issues in your Azure Environment. I find it especailly avaluable with in app changes to files and code. And the best part, its a compltely free service.