PrintWebAppMetricsGallery.ps1
<#PSScriptInfo .VERSION 1.0 .GUID e94428e3-9691-436a-986c-7e6426aa4a1c .AUTHOR Manu Philip .COMPANYNAME cloudcompute.info .COPYRIGHT .TAGS .LICENSEURI .PROJECTURI .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES #> <# .DESCRIPTION Print Azure WebApp Metrics in Shell #This following PowerShell code can print Azure WebApp statistics 'DataIn, DataOut, Requests' for each days for selected number of days #The script is ready to use. Copy the code and save as PS1 file #When executing, the script will ask for the webappname and number of days needed in report #After the completing the script, you will get table formatted statics of each websites within the shell #Hope the script helps you out in your daily Azure tasks #> Param() $WebAppName = Read-Host "Please enter the WebApp Name that the Website(s) belongs to" $Days= Read-Host "Please enter Last #Days needed to be checked in the report" $WebApp= Get-AzWebApp -Name $WebAppName $RgName=$WebApp.ResourceGroup $ResourceNames = Get-AzResource -ResourceGroupName $RgName -ResourceType "Microsoft.Web/sites" foreach ($ResourceName in $ResourceNames) { $WebappName = $ResourceName.Name $URLName=(Get-AzWebApp -Name $WebappName).DefaultHostName # inputs $WarningPreference = 'SilentlyContinue' $TimeGrain = [timespan]::FromDays(1) $Start = [datetime]::Now.AddDays(-$Days) $End = [datetime]::Now # capture resource metrics $Resource = Get-AzResource -ResourceName $WebappName -ResourceGroupName $RgName -ResourceType "Microsoft.Web/sites" $ResourceID = $Resource.ResourceId $MetricName = 'Requests' $Splat = @{ ResourceId = $ResourceID MetricName = $MetricName TimeGrain = $TimeGrain StartTime = $Start EndTime = $End } $Data = Get-AzMetric @Splat $Datpoints = $data.data.average.foreach({[int]$_}) Write-Output $URLName Write-Output $MetricName Write-Output $data.data | format-table TimeStamp, Total -AutoSize $MetricName = 'BytesReceived' $Splat = @{ ResourceId = $ResourceID MetricName = $MetricName TimeGrain = $TimeGrain StartTime = $Start EndTime = $End } $Data = Get-AzMetric @Splat $Datpoints = $data.data.average.foreach({[int]$_}) Write-Output $URLName Write-Output $MetricName Write-Output $data.data | format-table TimeStamp, Total -AutoSize $MetricName = 'BytesSent' $Splat = @{ ResourceId = $ResourceID MetricName = $MetricName TimeGrain = $TimeGrain StartTime = $Start EndTime = $End } $Data = Get-AzMetric @Splat $Datpoints = $data.data.average.foreach({[int]$_}) Write-Output $URLName Write-Output $MetricName Write-Output $data.data | format-table TimeStamp, Total -AutoSize } |