mirror of
https://github.com/matthansen0/Azure-VM-Diagnostics-Pruning.git
synced 2025-07-17 08:46:29 +00:00
init
This commit is contained in:
25
README.md
25
README.md
@ -1,2 +1,23 @@
|
|||||||
# Azure-VM-Diagnostics-Pruning
|
# Azure VM Diagnostic Metric Pruning
|
||||||
This repo has a script that automates mass pruning of old Azure VM Diagnostic Metrics data in Azure Table Storage.
|
This repo has a script that automates mass pruning of old Azure VM Diagnostic Metrics data in Azure Table Storage. Across a fleet of VMs that are running for multiple years, diagnostic metrics can consume significant table storage capacity. This script is targeted at clearing a year's-worth of those metrics at a time for a particular storage account.
|
||||||
|
|
||||||
|
I have personally run this against a storage account used by a single VM and cleared almost 300 GB of storage from metrics that I no longer need to store.
|
||||||
|
|
||||||
|
**Prerequisites:**
|
||||||
|
|
||||||
|
1. Tenant ID
|
||||||
|
2. Subscription ID
|
||||||
|
3. Resource Group Name
|
||||||
|
4. Storage Account Name
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome, please submit an issue or PR!
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
|
||||||
|
This script is provided as-is without any warranty or support. Use this script at your own risk. I am not responsible for any damages or data loss that may occur as a result of running this script. Before running this script, make sure to read and understand the code, and test it in a non-production environment.
|
||||||
|
BIN
images/screen01.png
Normal file
BIN
images/screen01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
images/screen02.png
Normal file
BIN
images/screen02.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
BIN
images/screen03.png
Normal file
BIN
images/screen03.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
38
tableMetricsMaintenance.ps1
Normal file
38
tableMetricsMaintenance.ps1
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
## Set information & Connect
|
||||||
|
$TenantId = Read-Host -Prompt "Input the primary tenant ID"
|
||||||
|
$SubscriptionId = Read-Host -Prompt "Input the primary subscription ID"
|
||||||
|
Connect-AzAccount
|
||||||
|
Set-AzContext -Tenant $TenantId -Subscription $SubscriptionId
|
||||||
|
|
||||||
|
$resourceGroup = Read-Host -Prompt "Resource Group Name"
|
||||||
|
$storageAccountName = Read-Host -Prompt "Storage Account Name"
|
||||||
|
$storageAccount = get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName
|
||||||
|
$ctx = $storageAccount.Context
|
||||||
|
|
||||||
|
# List & Count all tables & capacity in context
|
||||||
|
Get-AzStorageTable -Context $ctx
|
||||||
|
Write-Host "Total tables in this storage account:"
|
||||||
|
(Get-AzStorageTable -Context $ctx -Name "WADMetrics*").count
|
||||||
|
|
||||||
|
# Filter the results by year and retrieve count
|
||||||
|
$year = Read-Host -Prompt "Filter by year (e.g. 2018)"
|
||||||
|
$year = "WADMetrics*" + $year + "*"
|
||||||
|
$tables = Get-AzStorageTable -Context $ctx -Name $year
|
||||||
|
$count = $tables.Count
|
||||||
|
Write-Host "Total tables when filtering by specified year: $count"
|
||||||
|
|
||||||
|
# Prompt the user to continue with deletion or cancel
|
||||||
|
Write-Host "Do you want to remove all of the table entries for the specified year? Press 'y' to continue, otherwise press 'n' to cancel this script." -ForegroundColor Yellow
|
||||||
|
$key = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
|
||||||
|
if ($key.Character -eq "y") {
|
||||||
|
Write-Host "Continuing with script..." -ForegroundColor Green
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Host "Cancelling script..." -ForegroundColor Red
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove all WADMetrics tables with the year in their name without confirmation, then re-count
|
||||||
|
$deletedTables = Get-AzStorageTable -Context $ctx -Name $year
|
||||||
|
$deletedTables | Remove-AzStorageTable -Force
|
||||||
|
Write-Host "Total tables after deleting specified year: $count"
|
Reference in New Issue
Block a user