Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
---
ms.service: resource-graph
ms.topic: include
ms.date: 05/30/2023
author: jaspkaur28
ms.author: jaspkaur
---
### Changes in health of virtual machines and annotations in Virtual Instance for SAP
This query fetches the historical changes in availability health and corresponding annotations of all virtual machines of an SAP system given the SID of a [Virtual Instance for SAP](/azure/sap/center-sap-solutions/overview). Replace `mySubscriptionId` with your subscription ID, and replace `myResourceId` with the resource ID of your Virtual Instance for SAP.
```kusto
Resources
| where subscriptionId == 'mySubscriptionId'
| where type startswith 'microsoft.workloads/sapvirtualinstances/'
| where id startswith 'myResourceId'
| mv-expand d = properties.vmDetails
| project VmId = tolower(d.virtualMachineId)
| join kind = leftouter (
HealthResourceChanges
| where subscriptionId == 'mySubscriptionId'
| where id !has '/virtualMachineScaleSets/'
| where id has '/virtualMachines/'
| extend timestamp = todatetime(properties.changeAttributes.timestamp)
| extend VmId = tolower(tostring(split(id, '/providers/Microsoft.ResourceHealth/')[0]))
| where properties has 'properties.availabilityState' or properties has 'properties.annotationName'
| extend HealthChangeType = iff(properties has 'properties.availabilityState', 'Availability', 'Annotation')
| extend ChangeType = tostring(properties.changeType)
| where ChangeType == 'Update' or ChangeType == 'Delete')
on $left.VmId == $right.VmId
| extend Changes = parse_json(tostring(properties.changes))
| extend AvailabilityStateJson = parse_json(tostring(Changes['properties.availabilityState']))
| extend AnnotationNameJson = parse_json(tostring(Changes['properties.annotationName']))
| extend AnnotationSummary = parse_json(tostring(Changes['properties.summary']))
| extend AnnotationReason = parse_json(tostring(Changes['properties.reason']))
| extend AnnotationImpactType = parse_json(tostring(Changes['properties.impactType']))
| extend AnnotationContext = parse_json(tostring(Changes['properties.context']))
| extend AnnotationCategory = parse_json(tostring(Changes['properties.category']))
| extend AvailabilityStatePreviousValue = tostring(AvailabilityStateJson.previousValue)
| extend AvailabilityStateCurrentValue = tostring(AvailabilityStateJson.newValue)
| extend AnnotationNamePreviousValue = tostring(AnnotationNameJson.previousValue)
| extend AnnotationNameCurrentValue = tostring(AnnotationNameJson.newValue)
| extend AnnotationSummaryCurrentValue = tostring(AnnotationSummary.newValue)
| extend AnnotationReasonCurrentValue = tostring(AnnotationReason.newValue)
| extend AnnotationImpactTypeCurrentValue = tostring(AnnotationImpactType.newValue)
| extend AnnotationContextCurrentValue = tostring(AnnotationContext.newValue)
| extend AnnotationCategoryCurrentValue = tostring(AnnotationCategory.newValue)
| project id = VmId, timestamp, ChangeType, AvailabilityStateCurrentValue, AnnotationNameCurrentValue, AnnotationSummaryCurrentValue, AnnotationReasonCurrentValue, AnnotationImpactTypeCurrentValue, AnnotationContextCurrentValue, AnnotationCategoryCurrentValue, Changes
| order by id, timestamp asc
| project-rename ['Virtual Machine ID'] = id, UTCTimeStamp = timestamp, ['Change Type'] = ChangeType, ['Availability State'] = AvailabilityStateCurrentValue, ['Summary'] = AnnotationSummaryCurrentValue, ['Reason'] = AnnotationReasonCurrentValue, ['Impact Type'] = AnnotationImpactTypeCurrentValue, Category = AnnotationCategoryCurrentValue, Context = AnnotationContextCurrentValue
```
# [Azure CLI](#tab/azure-cli)
```azurecli-interactive
az graph query -q "Resources | where subscriptionId == 'mySubscriptionId' | where type startswith 'microsoft.workloads/sapvirtualinstances/' | where id startswith 'myResourceId' | mv-expand d = properties.vmDetails | project VmId = tolower(d.virtualMachineId) | join kind = leftouter (HealthResourceChanges | where subscriptionId == 'mySubscriptionId' | where id !has '/virtualMachineScaleSets/' | where id has '/virtualMachines/' | extend timestamp = todatetime(properties.changeAttributes.timestamp) | extend VmId = tolower(tostring(split(id, '/providers/Microsoft.ResourceHealth/')[0])) | where properties has 'properties.availabilityState' or properties has 'properties.annotationName' | extend HealthChangeType = iff(properties has 'properties.availabilityState', 'Availability', 'Annotation') | extend ChangeType = tostring(properties.changeType) | where ChangeType == 'Update' or ChangeType == 'Delete') on \$left.VmId == \$right.VmId | extend Changes = parse_json(tostring(properties.changes)) | extend AvailabilityStateJson = parse_json(tostring(Changes['properties.availabilityState'])) | extend AnnotationNameJson = parse_json(tostring(Changes['properties.annotationName'])) | extend AnnotationSummary = parse_json(tostring(Changes['properties.summary'])) | extend AnnotationReason = parse_json(tostring(Changes['properties.reason'])) | extend AnnotationImpactType = parse_json(tostring(Changes['properties.impactType'])) | extend AnnotationContext = parse_json(tostring(Changes['properties.context'])) | extend AnnotationCategory = parse_json(tostring(Changes['properties.category'])) | extend AvailabilityStatePreviousValue = tostring(AvailabilityStateJson.previousValue) | extend AvailabilityStateCurrentValue = tostring(AvailabilityStateJson.newValue) | extend AnnotationNamePreviousValue = tostring(AnnotationNameJson.previousValue) | extend AnnotationNameCurrentValue = tostring(AnnotationNameJson.newValue) | extend AnnotationSummaryCurrentValue = tostring(AnnotationSummary.newValue) | extend AnnotationReasonCurrentValue = tostring(AnnotationReason.newValue) | extend AnnotationImpactTypeCurrentValue = tostring(AnnotationImpactType.newValue) | extend AnnotationContextCurrentValue = tostring(AnnotationContext.newValue) | extend AnnotationCategoryCurrentValue = tostring(AnnotationCategory.newValue) | project id = VmId, timestamp, ChangeType, AvailabilityStateCurrentValue, AnnotationNameCurrentValue, AnnotationSummaryCurrentValue, AnnotationReasonCurrentValue, AnnotationImpactTypeCurrentValue, AnnotationContextCurrentValue, AnnotationCategoryCurrentValue, Changes | order by id, timestamp asc | project-rename ['Virtual Machine ID'] = id, UTCTimeStamp = timestamp, ['Change Type'] = ChangeType, ['Availability State'] = AvailabilityStateCurrentValue, ['Summary'] = AnnotationSummaryCurrentValue, ['Reason'] = AnnotationReasonCurrentValue, ['Impact Type'] = AnnotationImpactTypeCurrentValue, Category = AnnotationCategoryCurrentValue, Context = AnnotationContextCurrentValue"
```
# [Azure PowerShell](#tab/azure-powershell)
```azurepowershell-interactive
Search-AzGraph -Query "Resources | where subscriptionId == 'mySubscriptionId' | where type startswith 'microsoft.workloads/sapvirtualinstances/' | where id startswith 'myResourceId' | mv-expand d = properties.vmDetails | project VmId = tolower(d.virtualMachineId) | join kind = leftouter (HealthResourceChanges | where subscriptionId == 'mySubscriptionId' | where id !has '/virtualMachineScaleSets/' | where id has '/virtualMachines/' | extend timestamp = todatetime(properties.changeAttributes.timestamp) | extend VmId = tolower(tostring(split(id, '/providers/Microsoft.ResourceHealth/')[0])) | where properties has 'properties.availabilityState' or properties has 'properties.annotationName' | extend HealthChangeType = iff(properties has 'properties.availabilityState', 'Availability', 'Annotation') | extend ChangeType = tostring(properties.changeType) | where ChangeType == 'Update' or ChangeType == 'Delete') on `$left.VmId == `$right.VmId | extend Changes = parse_json(tostring(properties.changes)) | extend AvailabilityStateJson = parse_json(tostring(Changes['properties.availabilityState'])) | extend AnnotationNameJson = parse_json(tostring(Changes['properties.annotationName'])) | extend AnnotationSummary = parse_json(tostring(Changes['properties.summary'])) | extend AnnotationReason = parse_json(tostring(Changes['properties.reason'])) | extend AnnotationImpactType = parse_json(tostring(Changes['properties.impactType'])) | extend AnnotationContext = parse_json(tostring(Changes['properties.context'])) | extend AnnotationCategory = parse_json(tostring(Changes['properties.category'])) | extend AvailabilityStatePreviousValue = tostring(AvailabilityStateJson.previousValue) | extend AvailabilityStateCurrentValue = tostring(AvailabilityStateJson.newValue) | extend AnnotationNamePreviousValue = tostring(AnnotationNameJson.previousValue) | extend AnnotationNameCurrentValue = tostring(AnnotationNameJson.newValue) | extend AnnotationSummaryCurrentValue = tostring(AnnotationSummary.newValue) | extend AnnotationReasonCurrentValue = tostring(AnnotationReason.newValue) | extend AnnotationImpactTypeCurrentValue = tostring(AnnotationImpactType.newValue) | extend AnnotationContextCurrentValue = tostring(AnnotationContext.newValue) | extend AnnotationCategoryCurrentValue = tostring(AnnotationCategory.newValue) | project id = VmId, timestamp, ChangeType, AvailabilityStateCurrentValue, AnnotationNameCurrentValue, AnnotationSummaryCurrentValue, AnnotationReasonCurrentValue, AnnotationImpactTypeCurrentValue, AnnotationContextCurrentValue, AnnotationCategoryCurrentValue, Changes | order by id, timestamp asc | project-rename ['Virtual Machine ID'] = id, UTCTimeStamp = timestamp, ['Change Type'] = ChangeType, ['Availability State'] = AvailabilityStateCurrentValue, ['Summary'] = AnnotationSummaryCurrentValue, ['Reason'] = AnnotationReasonCurrentValue, ['Impact Type'] = AnnotationImpactTypeCurrentValue, Category = AnnotationCategoryCurrentValue, Context = AnnotationContextCurrentValue"
```
# [Portal](#tab/azure-portal)
- Azure portal: <a href="https://portal.azure.com/#blade/HubsExtension/ArgQueryBlade/query/Resources%0D%0A%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%7C%20where%20type%20startswith%20%27microsoft.workloads%2Fsapvirtualinstances%2F%27%0D%0A%7C%20where%20id%20startswith%20%27myResourceId%27%0D%0A%7C%20mv-expand%20d%20%3D%20properties.vmDetails%0D%0A%7C%20project%20VmId%20%3D%20tolower%28d.virtualMachineId%29%0D%0A%7C%20join%20kind%20%3D%20leftouter%20%28%0D%0A%20%20HealthResourceChanges%0D%0A%20%20%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%20%20%7C%20where%20id%20%21has%20%27%2FvirtualMachineScaleSets%2F%27%0D%0A%20%20%7C%20where%20id%20has%20%27%2FvirtualMachines%2F%27%0D%0A%20%20%7C%20extend%20timestamp%20%3D%20todatetime%28properties.changeAttributes.timestamp%29%0D%0A%20%20%7C%20extend%20VmId%20%3D%20tolower%28tostring%28split%28id%2C%20%27%2Fproviders%2FMicrosoft.ResourceHealth%2F%27%29%5B0%5D%29%29%0D%0A%20%20%7C%20where%20properties%20has%20%27properties.availabilityState%27%20or%20properties%20has%20%27properties.annotationName%27%0D%0A%20%20%7C%20extend%20HealthChangeType%20%3D%20iff%28properties%20has%20%27properties.availabilityState%27%2C%20%27Availability%27%2C%20%27Annotation%27%29%0D%0A%20%20%7C%20extend%20ChangeType%20%3D%20tostring%28properties.changeType%29%0D%0A%20%20%7C%20where%20ChangeType%20%3D%3D%20%27Update%27%20%20or%20ChangeType%20%3D%3D%20%27Delete%27%29%0D%0Aon%20%24left.VmId%20%3D%3D%20%24right.VmId%0D%0A%7C%20extend%20Changes%20%3D%20parse_json%28tostring%28properties.changes%29%29%0D%0A%7C%20extend%20AvailabilityStateJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.availabilityState%27%5D%29%29%0D%0A%7C%20extend%20AnnotationNameJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.annotationName%27%5D%29%29%0D%0A%7C%20extend%20AnnotationSummary%20%3D%20parse_json%28tostring%28Changes%5B%27properties.summary%27%5D%29%29%0D%0A%7C%20extend%20AnnotationReason%20%3D%20parse_json%28tostring%28Changes%5B%27properties.reason%27%5D%29%29%0D%0A%7C%20extend%20AnnotationImpactType%20%3D%20parse_json%28tostring%28Changes%5B%27properties.impactType%27%5D%29%29%0D%0A%7C%20extend%20AnnotationContext%20%3D%20parse_json%28tostring%28Changes%5B%27properties.context%27%5D%29%29%0D%0A%7C%20extend%20AnnotationCategory%20%3D%20parse_json%28tostring%28Changes%5B%27properties.category%27%5D%29%29%0D%0A%7C%20extend%20AvailabilityStatePreviousValue%20%3D%20tostring%28AvailabilityStateJson.previousValue%29%0D%0A%7C%20extend%20AvailabilityStateCurrentValue%20%3D%20tostring%28AvailabilityStateJson.newValue%29%0D%0A%7C%20extend%20AnnotationNamePreviousValue%20%3D%20tostring%28AnnotationNameJson.previousValue%29%0D%0A%7C%20extend%20AnnotationNameCurrentValue%20%3D%20tostring%28AnnotationNameJson.newValue%29%0D%0A%7C%20extend%20AnnotationSummaryCurrentValue%20%3D%20tostring%28AnnotationSummary.newValue%29%0D%0A%7C%20extend%20AnnotationReasonCurrentValue%20%3D%20tostring%28AnnotationReason.newValue%29%0D%0A%7C%20extend%20AnnotationImpactTypeCurrentValue%20%3D%20tostring%28AnnotationImpactType.newValue%29%0D%0A%7C%20extend%20AnnotationContextCurrentValue%20%3D%20tostring%28AnnotationContext.newValue%29%0D%0A%7C%20extend%20AnnotationCategoryCurrentValue%20%3D%20tostring%28AnnotationCategory.newValue%29%0D%0A%7C%20project%20id%20%3D%20VmId%2C%20timestamp%2C%20ChangeType%2C%20AvailabilityStateCurrentValue%2C%20AnnotationNameCurrentValue%2C%20AnnotationSummaryCurrentValue%2C%20AnnotationReasonCurrentValue%2C%20AnnotationImpactTypeCurrentValue%2C%20AnnotationContextCurrentValue%2C%20AnnotationCategoryCurrentValue%2C%20Changes%0D%0A%7C%20order%20by%20id%2C%20timestamp%20asc%0D%0A%7C%20project-rename%20%5B%27Virtual%20Machine%20ID%27%5D%20%3D%20id%2C%20UTCTimeStamp%20%3D%20timestamp%2C%20%5B%27Change%20Type%27%5D%20%3D%20ChangeType%2C%20%5B%27Availability%20State%27%5D%20%3D%20AvailabilityStateCurrentValue%2C%20%5B%27Summary%27%5D%20%3D%20AnnotationSummaryCurrentValue%2C%20%5B%27Reason%27%5D%20%3D%20AnnotationReasonCurrentValue%2C%20%5B%27Impact%20Type%27%5D%20%3D%20AnnotationImpactTypeCurrentValue%2C%20Category%20%3D%20AnnotationCategoryCurrentValue%2C%20Context%20%3D%20AnnotationContextCurrentValue" target="_blank">portal.azure.com</a>
- Azure Government portal: <a href="https://portal.azure.us/#blade/HubsExtension/ArgQueryBlade/query/Resources%0D%0A%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%7C%20where%20type%20startswith%20%27microsoft.workloads%2Fsapvirtualinstances%2F%27%0D%0A%7C%20where%20id%20startswith%20%27myResourceId%27%0D%0A%7C%20mv-expand%20d%20%3D%20properties.vmDetails%0D%0A%7C%20project%20VmId%20%3D%20tolower%28d.virtualMachineId%29%0D%0A%7C%20join%20kind%20%3D%20leftouter%20%28%0D%0A%20%20HealthResourceChanges%0D%0A%20%20%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%20%20%7C%20where%20id%20%21has%20%27%2FvirtualMachineScaleSets%2F%27%0D%0A%20%20%7C%20where%20id%20has%20%27%2FvirtualMachines%2F%27%0D%0A%20%20%7C%20extend%20timestamp%20%3D%20todatetime%28properties.changeAttributes.timestamp%29%0D%0A%20%20%7C%20extend%20VmId%20%3D%20tolower%28tostring%28split%28id%2C%20%27%2Fproviders%2FMicrosoft.ResourceHealth%2F%27%29%5B0%5D%29%29%0D%0A%20%20%7C%20where%20properties%20has%20%27properties.availabilityState%27%20or%20properties%20has%20%27properties.annotationName%27%0D%0A%20%20%7C%20extend%20HealthChangeType%20%3D%20iff%28properties%20has%20%27properties.availabilityState%27%2C%20%27Availability%27%2C%20%27Annotation%27%29%0D%0A%20%20%7C%20extend%20ChangeType%20%3D%20tostring%28properties.changeType%29%0D%0A%20%20%7C%20where%20ChangeType%20%3D%3D%20%27Update%27%20%20or%20ChangeType%20%3D%3D%20%27Delete%27%29%0D%0Aon%20%24left.VmId%20%3D%3D%20%24right.VmId%0D%0A%7C%20extend%20Changes%20%3D%20parse_json%28tostring%28properties.changes%29%29%0D%0A%7C%20extend%20AvailabilityStateJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.availabilityState%27%5D%29%29%0D%0A%7C%20extend%20AnnotationNameJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.annotationName%27%5D%29%29%0D%0A%7C%20extend%20AnnotationSummary%20%3D%20parse_json%28tostring%28Changes%5B%27properties.summary%27%5D%29%29%0D%0A%7C%20extend%20AnnotationReason%20%3D%20parse_json%28tostring%28Changes%5B%27properties.reason%27%5D%29%29%0D%0A%7C%20extend%20AnnotationImpactType%20%3D%20parse_json%28tostring%28Changes%5B%27properties.impactType%27%5D%29%29%0D%0A%7C%20extend%20AnnotationContext%20%3D%20parse_json%28tostring%28Changes%5B%27properties.context%27%5D%29%29%0D%0A%7C%20extend%20AnnotationCategory%20%3D%20parse_json%28tostring%28Changes%5B%27properties.category%27%5D%29%29%0D%0A%7C%20extend%20AvailabilityStatePreviousValue%20%3D%20tostring%28AvailabilityStateJson.previousValue%29%0D%0A%7C%20extend%20AvailabilityStateCurrentValue%20%3D%20tostring%28AvailabilityStateJson.newValue%29%0D%0A%7C%20extend%20AnnotationNamePreviousValue%20%3D%20tostring%28AnnotationNameJson.previousValue%29%0D%0A%7C%20extend%20AnnotationNameCurrentValue%20%3D%20tostring%28AnnotationNameJson.newValue%29%0D%0A%7C%20extend%20AnnotationSummaryCurrentValue%20%3D%20tostring%28AnnotationSummary.newValue%29%0D%0A%7C%20extend%20AnnotationReasonCurrentValue%20%3D%20tostring%28AnnotationReason.newValue%29%0D%0A%7C%20extend%20AnnotationImpactTypeCurrentValue%20%3D%20tostring%28AnnotationImpactType.newValue%29%0D%0A%7C%20extend%20AnnotationContextCurrentValue%20%3D%20tostring%28AnnotationContext.newValue%29%0D%0A%7C%20extend%20AnnotationCategoryCurrentValue%20%3D%20tostring%28AnnotationCategory.newValue%29%0D%0A%7C%20project%20id%20%3D%20VmId%2C%20timestamp%2C%20ChangeType%2C%20AvailabilityStateCurrentValue%2C%20AnnotationNameCurrentValue%2C%20AnnotationSummaryCurrentValue%2C%20AnnotationReasonCurrentValue%2C%20AnnotationImpactTypeCurrentValue%2C%20AnnotationContextCurrentValue%2C%20AnnotationCategoryCurrentValue%2C%20Changes%0D%0A%7C%20order%20by%20id%2C%20timestamp%20asc%0D%0A%7C%20project-rename%20%5B%27Virtual%20Machine%20ID%27%5D%20%3D%20id%2C%20UTCTimeStamp%20%3D%20timestamp%2C%20%5B%27Change%20Type%27%5D%20%3D%20ChangeType%2C%20%5B%27Availability%20State%27%5D%20%3D%20AvailabilityStateCurrentValue%2C%20%5B%27Summary%27%5D%20%3D%20AnnotationSummaryCurrentValue%2C%20%5B%27Reason%27%5D%20%3D%20AnnotationReasonCurrentValue%2C%20%5B%27Impact%20Type%27%5D%20%3D%20AnnotationImpactTypeCurrentValue%2C%20Category%20%3D%20AnnotationCategoryCurrentValue%2C%20Context%20%3D%20AnnotationContextCurrentValue" target="_blank">portal.azure.us</a>
- Microsoft Azure operated by 21Vianet portal: <a href="https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade/query/Resources%0D%0A%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%7C%20where%20type%20startswith%20%27microsoft.workloads%2Fsapvirtualinstances%2F%27%0D%0A%7C%20where%20id%20startswith%20%27myResourceId%27%0D%0A%7C%20mv-expand%20d%20%3D%20properties.vmDetails%0D%0A%7C%20project%20VmId%20%3D%20tolower%28d.virtualMachineId%29%0D%0A%7C%20join%20kind%20%3D%20leftouter%20%28%0D%0A%20%20HealthResourceChanges%0D%0A%20%20%7C%20where%20subscriptionId%20%3D%3D%20%27mySubscriptionId%27%0D%0A%20%20%7C%20where%20id%20%21has%20%27%2FvirtualMachineScaleSets%2F%27%0D%0A%20%20%7C%20where%20id%20has%20%27%2FvirtualMachines%2F%27%0D%0A%20%20%7C%20extend%20timestamp%20%3D%20todatetime%28properties.changeAttributes.timestamp%29%0D%0A%20%20%7C%20extend%20VmId%20%3D%20tolower%28tostring%28split%28id%2C%20%27%2Fproviders%2FMicrosoft.ResourceHealth%2F%27%29%5B0%5D%29%29%0D%0A%20%20%7C%20where%20properties%20has%20%27properties.availabilityState%27%20or%20properties%20has%20%27properties.annotationName%27%0D%0A%20%20%7C%20extend%20HealthChangeType%20%3D%20iff%28properties%20has%20%27properties.availabilityState%27%2C%20%27Availability%27%2C%20%27Annotation%27%29%0D%0A%20%20%7C%20extend%20ChangeType%20%3D%20tostring%28properties.changeType%29%0D%0A%20%20%7C%20where%20ChangeType%20%3D%3D%20%27Update%27%20%20or%20ChangeType%20%3D%3D%20%27Delete%27%29%0D%0Aon%20%24left.VmId%20%3D%3D%20%24right.VmId%0D%0A%7C%20extend%20Changes%20%3D%20parse_json%28tostring%28properties.changes%29%29%0D%0A%7C%20extend%20AvailabilityStateJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.availabilityState%27%5D%29%29%0D%0A%7C%20extend%20AnnotationNameJson%20%3D%20parse_json%28tostring%28Changes%5B%27properties.annotationName%27%5D%29%29%0D%0A%7C%20extend%20AnnotationSummary%20%3D%20parse_json%28tostring%28Changes%5B%27properties.summary%27%5D%29%29%0D%0A%7C%20extend%20AnnotationReason%20%3D%20parse_json%28tostring%28Changes%5B%27properties.reason%27%5D%29%29%0D%0A%7C%20extend%20AnnotationImpactType%20%3D%20parse_json%28tostring%28Changes%5B%27properties.impactType%27%5D%29%29%0D%0A%7C%20extend%20AnnotationContext%20%3D%20parse_json%28tostring%28Changes%5B%27properties.context%27%5D%29%29%0D%0A%7C%20extend%20AnnotationCategory%20%3D%20parse_json%28tostring%28Changes%5B%27properties.category%27%5D%29%29%0D%0A%7C%20extend%20AvailabilityStatePreviousValue%20%3D%20tostring%28AvailabilityStateJson.previousValue%29%0D%0A%7C%20extend%20AvailabilityStateCurrentValue%20%3D%20tostring%28AvailabilityStateJson.newValue%29%0D%0A%7C%20extend%20AnnotationNamePreviousValue%20%3D%20tostring%28AnnotationNameJson.previousValue%29%0D%0A%7C%20extend%20AnnotationNameCurrentValue%20%3D%20tostring%28AnnotationNameJson.newValue%29%0D%0A%7C%20extend%20AnnotationSummaryCurrentValue%20%3D%20tostring%28AnnotationSummary.newValue%29%0D%0A%7C%20extend%20AnnotationReasonCurrentValue%20%3D%20tostring%28AnnotationReason.newValue%29%0D%0A%7C%20extend%20AnnotationImpactTypeCurrentValue%20%3D%20tostring%28AnnotationImpactType.newValue%29%0D%0A%7C%20extend%20AnnotationContextCurrentValue%20%3D%20tostring%28AnnotationContext.newValue%29%0D%0A%7C%20extend%20AnnotationCategoryCurrentValue%20%3D%20tostring%28AnnotationCategory.newValue%29%0D%0A%7C%20project%20id%20%3D%20VmId%2C%20timestamp%2C%20ChangeType%2C%20AvailabilityStateCurrentValue%2C%20AnnotationNameCurrentValue%2C%20AnnotationSummaryCurrentValue%2C%20AnnotationReasonCurrentValue%2C%20AnnotationImpactTypeCurrentValue%2C%20AnnotationContextCurrentValue%2C%20AnnotationCategoryCurrentValue%2C%20Changes%0D%0A%7C%20order%20by%20id%2C%20timestamp%20asc%0D%0A%7C%20project-rename%20%5B%27Virtual%20Machine%20ID%27%5D%20%3D%20id%2C%20UTCTimeStamp%20%3D%20timestamp%2C%20%5B%27Change%20Type%27%5D%20%3D%20ChangeType%2C%20%5B%27Availability%20State%27%5D%20%3D%20AvailabilityStateCurrentValue%2C%20%5B%27Summary%27%5D%20%3D%20AnnotationSummaryCurrentValue%2C%20%5B%27Reason%27%5D%20%3D%20AnnotationReasonCurrentValue%2C%20%5B%27Impact%20Type%27%5D%20%3D%20AnnotationImpactTypeCurrentValue%2C%20Category%20%3D%20AnnotationCategoryCurrentValue%2C%20Context%20%3D%20AnnotationContextCurrentValue" target="_blank">portal.azure.cn</a>
---