by ezs | Mar 1, 2021 | evilzenscientist
Tuesday – amidst positive talk about vaccinations and decreasing positive tests and a decline in deaths; there are still huge risks of a fourth wave.
Monday – a year since the first COVID death in the US and in Washington State. It’s still a race against time – vaccinate and beat the variants. CDC/NIH tracking five variants across the US.
|
The Guardian |
The Seattle Times |
1 Mar |
here |
here |
2 Mar |
here |
here |
3 Mar |
|
|
4 Mar |
|
|
5 Mar |
|
|
6 Mar |
|
|
7 Mar |
|
|
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
by ezs | Mar 1, 2021 | evilzenscientist
“The get everything about virtual machines” script.
This brings back pretty much everything – sub second queries. Far, far easier than the old methods using PowerShell.
Resources
| where type =~ ‘microsoft.compute/virtualmachines’
| extend nics=array_length(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| where nics == 1 or nic.properties.primary =~ ‘true’ or isempty(nic)
| project subscriptionId, resourceGroup, vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id),location, tags.itowner, tags.businessowner, tags.application, tags.costcenter, tags.supportgroup, tags.[‘project’], powerstate=properties.extended.instanceView.powerState.displayStatus, os=properties.storageProfile.osDisk.osType, sku=properties.storageProfile.imageReference.sku
| join kind=leftouter (ResourceContainers | where type==’microsoft.resources/subscriptions’ | project SubName=name, subscriptionId) on subscriptionId
| join kind=leftouter (
Resources
| where type =~ ‘microsoft.network/networkinterfaces’
| extend ipConfigsCount=array_length(properties.ipConfigurations)
| mv-expand ipconfig=properties.ipConfigurations
| where ipConfigsCount == 1 or ipconfig.properties.primary =~ ‘true’
| project nicId = id, privIP = tostring(ipconfig.properties.privateIPAddress)) on nicId
| project-away subscriptionId, subscriptionId1, vmId, nicId, nicId1
by ezs | Feb 24, 2021 | evilzenscientist
Saturday – huge demand for vaccinations; this story from Portland, OR describing how 400,000 attempts to book for 3,400 slots. Washington State at around 13% first vaccination, UK is at just under 30% of the population having at least one dose. That reaches almost 40% in Wales. That’s actually quite the testament to the role of the NHS.
Track and Trace (contact tracing) is partially working, depending on location. Great results in New Zealand, missed contacts in England (with a possible Brazil variant escaped into the wild), unknown results in the US.

Usual weekend state of the State from The Seattle Times. Positive test rate is steady at around 5.4% – still a good way to go to below 2% trend.

Friday – next week I will start the “one year ago” retrospectives. The first cases of COVID in the US were in Washington State, first identified in late January. The first death was 29 February.
Thursday – reluctance over taking the AstraZeneca vaccine.
Wednesday – J&J single shot vaccine approved
Tuesday – >112M global cases, >2.5M global deaths.
Monday – officially 500,000 deaths due to Covid in the US.
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
by ezs | Feb 20, 2021 | evilzenscientist
Sigh.
Tag taxonomy cleanup.
Another great example of “hands off keyboards” and needing to deliver via automation. Avoid errors, enforce validation of metadata.

Azure Resource Graph explorer – find the scope and scale of the problem. I’ll add the usual gripe around tags being case sensitive in some places (API, PowerShell) and not in others (Azure Portal!).
Resources
| where tags.businesowner != ”
| project name, subscriptionId, resourceGroup, tags.businessowner, tags.businesowner
by ezs | Feb 15, 2021 | evilzenscientist
Weekend – half a million dead in the US.
Usual weekly update from The Seattle Times. Positive rates are down, folk are becoming complacent again. Continued discussion on back to school.

Friday – another variant in Japan, it’s a race. Dr Fauci says “back to normal by Christmas”.
Thursday – AstraZeneca vaccine reluctance. Rich/Poor divide on vaccine distribution.
Wednesday – Washington State daily cases below 600 for the first time in many months. Daily positive tests down to 6.5%. 10.7% of population have had first vaccine shot. Vaccine production is now the bottleneck. It’s a race against variants/mutations.
Tuesday – more mutations, one of these could be the escapee and massive impact. Real concern that antibiotic use during COVID is accelerating the risk of AMR.
Monday – we’re going to see a lot of “this time last year” posts in the media. Between late January 2020 and late February there was news coverage about the first case in the US – and increasing concern in China and across SE Asia about spread. My post from mid-March 2020 describing this time. Still in the office at that point.
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
by ezs | Feb 12, 2021 | evilzenscientist
Weekend – cases declining in Washington State, positive rate is relatively stable at just under 8%.
US Daily reported cases below 100k/day for the first time since the end of October 2020. Data from JHU.

Weekend numbers from The Seattle Times.

Friday – UK hits 21% of population with at least one vaccine shot.

Thursday – WHO continue to search for the origin of this coronavirus. 600M vaccines by July for US. Population should be vaccinated by summer.
Wednesday – as vaccines continue to be rolled out, counties, countries are starting to open back up.
Tuesday – “Wuhan lab leak” unlikely to be source of coronavirus. Continued border closures as governments try to extinguish spread.
Monday – UK variant of COVID-19 is rapidly spreading in the US. Slowly vaccines are getting delivered.
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
by ezs | Feb 10, 2021 | evilzenscientist
Using KQL against Azure Resource Graph; and here’s another useful snippet – it’s faster by far than PowerShell, subsecond result set.
RecoveryServicesResources
| join kind=leftouter (ResourceContainers | where type==’microsoft.resources/subscriptions’ | project SubName=name, subscriptionId) on subscriptionId
| where type == “microsoft.recoveryservices/vaults/backupjobs”
| where properties.backupManagementType == “AzureIaasVM”
| extend rsg = replace(“;[[:graph:]]*”, “”, replace(“iaasvmcontainerv2;”,””,tostring(properties.containerName)))
| extend vmname = tolower(tostring(properties.entityFriendlyName))
| extend rsvault = tolower(replace(“/[[:graph:]]*”,””, replace(“[[:graph:]]*\\/vaults\\/”,””,id)))
| extend backupage = datetime_diff(‘day’, now(), todatetime(properties.endTime))
| project SubName, rsg, vmname, rsvault, properties.operationCategory, properties.status, backupage
by ezs | Feb 7, 2021 | evilzenscientist
Back to “Azure Grim Reaper” – flagging and deleting unused storage in Azure.
There is no “nice” way to do this – the Azure Metrics help a lot.
Here’s some code that enumerates a list of subscriptions and pulls out storage accounts, transactions over a period of time, count of storage containers, tables and queues – and reads tags.
It’s generic enough for use in most places.
# setup
#import-module az
#import-module az.storage
# creds
#connect-azaccount
#
# set up array of subs
$subs= ‘<subscription ID>’, ‘<subscription ID>’
# today
$nowdate = Get-Date
#initialise output
$stgdata =@()
Write-Host “Enumerating” $subs.count “subscription(s)”
# loop through the subscription(s)
foreach ($subscription in $subs) {
# in subscription, next read the storage accounts
#set context
write-host “Switching to subscription” $subscription
set-azcontext -subscription $subscription |out-null
write-host “enumerating storage accounts”
$stgacclist = get-azstorageaccount
write-host “Total of” $stgacclist.count “storage accounts in subscription” $subscription
# loop through each storage account
foreach ($stgacc in $stgacclist) {
# in storage account, get all storage containers, tables and queues
# stgacc entity has StorageAccountNme and ResourceGroupName and tags
set-azcurrentstorageaccount -Name $stgacc.StorageAccountName -ResourceGroupName $stgacc.ResourceGroupName
write-host “enumerating storage account ” $stgacc.StorageAccountName ” in resource group” $stgacc.ResourceGroupName
write-host “storage containers”
$stgcontainers = get-azstoragecontainer
write-host “table service”
$tblservice = get-azstoragetable
write-host “queue service”
$qservice = get-azstoragequeue
#get transactions
$transactions = Get-AzMetric -ResourceId $stgacc.id -TimeGrain 0.1:00:00 -starttime ((get-date).AddDays(-60)) -endtime (get-date) -MetricNames “Transactions” -WarningAction SilentlyContinue
write-host “60 days of transactions” $(($transactions.Data | Measure-Object -Property total -Sum).sum)
#reset usage array
$lastused = @()
#loop through each blob service container
foreach ($container in $stgcontainers) {
# in blob storage container
write-host “collecting blob storage data”
$lastused += [PSCustomObject]@{
Subscription = $subscription
ResourceGroup = $stgacc.ResourceGroupName
StorageAccount = $stgacc.StorageAccountName
StorageContainer = $container.name
LastModified = $container.lastmodified.Date
Age = ($nowdate – $container.LastModified.Date).Days
}
#let’s find any unmanaged disks in the container
$allblobs = get-azstorageblob -container $container.name
$vhdblobs = $allblobs | Where-Object {$_.BlobType -eq ‘PageBlob’ -and $_.Name.EndsWith(‘.vhd’)}
}
write-host “Total of ” $stgcontainers.count “containers. Minimum age ” ($lastused.Age |Measure -Minimum).minimum “maximum age” ($lastused.Age |Measure -Maximum).maximum
#append to the array
$stgdata += [PSCustomObject]@{
Subscription = $subscription
ResourceGroup = $stgacc.ResourceGroupName
StorageAccount = $stgacc.StorageAccountName
Transactions = $(($transactions.Data | Measure-Object -Property total -Sum).sum)
ContainerCount = $stgcontainers.Count
TableCount = $tblservice.Count
QueueCount = $qservice.Count
AgingMin = ($lastused.Age |Measure -Minimum).minimum
AgingMax = ($lastused.Age |Measure -Maximum).maximum
vhd = $vhdblobs.count
blobs = $allblobs.count
#tag metadata
itowner = $stgacc.tags.itowner
businessowner = $stgacc.tags.businessowner
application =$stgacc.tags.application
costcenter = $stgacc.tags.costcenter
}
}
}
#output to csv
$stgdata | export-csv <somelocation>\storageacc.csv -force -NoTypeInformation
by ezs | Feb 2, 2021 | evilzenscientist
Weekend – much concern that the Oxford/AstraZeneca vaccine does not provide adequate protection against the “South Africa” variant. Variant breakout is a real challenge. Lockdown, vaccination are really having an effect on the UK rates. (Below, from The Guardian).

Hotspots of South Africa variant in the UK.
Weekend update for Washington State from The Seattle Times. Positive case rate is stable and is certainly trending downwards. Vaccine delivery is slow but picking up; almost 9% have first vaccine shot (compare to 18% in the UK).

Friday – UK variant now 6%+ of COVID cases; this is the more transmissible version.
Thursday – Good data from The Seattle Times on vaccine rates across the state, by race and ethnicity. (paywall) “Scarce doses of the COVID-19 vaccine have so far gone disproportionately to white Washington residents, new data from the state Department of Health (DOH) shows.”


Wednesday – Oxford/AstraZeneca vaccine being limited in multiple locations to 18-55; leaving limited choices for over 55, more at risk community.
Tuesday – another “worrying mutation” in the UK. This may be the pattern for the next year – as vaccinations roll out and some immunity builds; watching for mutations that escape.
Monday – travel bans, closed borders contrasted with re-opening and relaxed restrictions. Parts of Washington State move to “phase 2” – which means restaurants can start to re-open at 25% capacity.
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
by ezs | Jan 25, 2021 | evilzenscientist
Weekend – more discussion about how the US is somewhat blind to the new mutations and spread.
Weekly look at Washington State from The Seattle Times

Friday – more stories of vaccine restrictions and low numbers of delivery.
Thursday – EU/UK/NI spat over restrictions on vaccine deliveries.
Wednesday – more spread of the South Africa and Kent mutations; borders being closed; travel being stopped.
Tuesday – vaccine production lagging. Demand exceeds capacity.
Monday – Looking back at a year of COVID. First US cases in late January 2020. Watched the documentary 76 Days over the weekend. Today: 100M global cases, vaccines being delivered, wearing a mask is political.
https://www.theguardian.com/world/series/coronavirus-live
https://www.seattletimes.com/tag/coronavirus/
Recent Comments