如何使用PowerShell查询Azure Service Plan过去24/12/1小时总连接数
Azure Service Plan总连接次数自动化统计方案
你已经完成了Azure账号登录的代码封装,仅需补充指标拉取、汇总逻辑即可完成需求,核心是调用Azure Monitor公开的指标接口获取数据,不需要额外改造现有应用。
前置准备
- 安装PowerShell Az监控模块:
Install-Module -Name Az.Monitor -Scope CurrentUser -Force - 确保登录账号持有目标Service Plan所属资源组的监控数据读取权限
完整实现代码
# 原有登录逻辑 function connectionMenthod($AzureUserName,$AzureP,$AzureTenantID,$AzureSubscriptionID) { $username = $AzureUserName; $password = ConvertTo-SecureString $AzureP -AsPlainText -Force; $creds = New-Object System.Management.Automation.PSCredential -ArgumentList ($username, $password); Connect-AzAccount -Credential $creds -Tenant $AzureTenantID # 切换到目标订阅 Set-AzContext -Subscription $AzureSubscriptionID } function upgradeNFREnvironment () { $AzureTenantID = "<Azure_tenant_id>" $AzureSubscriptionID = "<Azure_Subscription_Id>" $AzureUserName = "<User_Name>" $AzureP = "<Password>" connectionMenthod $AzureUserName $AzureP $AzureTenantID $AzureSubscriptionID } # 执行登录 upgradeNFREnvironment # --------------------------以下为新增统计逻辑-------------------------- # 配置参数:替换为你要统计的Service Plan信息 $servicePlanName = "<你的Service Plan名称>" $resourceGroupName = "<Service Plan所在资源组名称>" # 配置统计时间范围:示例为统计过去24小时的总连接次数,可自行调整 $endTime = Get-Date $startTime = $endTime.AddHours(-24) $timeGrain = [TimeSpan]::FromHours(1) $totalConnections = 0 # 获取目标Service Plan下关联的所有App Service应用 $apps = Get-AzWebApp | Where-Object {$_.ServerFarmId -like "*$servicePlanName*" -and $_.ResourceGroup -eq $resourceGroupName} foreach ($app in $apps) { # 拉取单个应用的连接数指标,聚合方式为总和 $metric = Get-AzMetric -ResourceId $app.Id -MetricName "AppConnections" -StartTime $startTime -EndTime $endTime -TimeGrain $timeGrain -AggregationType Total # 累加该应用统计周期内的总连接数 $appTotal = ($metric.Data | Measure-Object -Property Total -Sum).Sum $totalConnections += $appTotal Write-Host "应用$($app.Name) 统计周期内连接数:$appTotal" } Write-Host "=====================================" Write-Host "Service Plan[$servicePlanName] 统计周期[$startTime ~ $endTime] 总连接次数:$totalConnections"
定时自动化执行配置
如果需要定期自动执行统计,可以把脚本托管到Azure自动化账户的Runbook中,配置定时触发器即可自动运行,运行结果可以输出到Azure日志或者自定义通知逻辑。
内容的提问来源于stack exchange,提问作者user16991483
相关产品推荐
相关产品推荐

