gpt4 book ai didi

azure - 是否可以使用 powershell 或任何编程语言获取日志分析工作区的摄取量?

转载 作者:行者123 更新时间:2023-12-03 01:13:16 24 4
gpt4 key购买 nike

我正在获取公司日志分析工作区的摘要,其中包括每个工作区中使用的表以及其他数据,例如摄取量。

最接近“获取”的方法是在 PowerShell 中使用此命令

Get-AzOperationalInsightsWorkspaceUsage -ResourceGroupName "RG_name" -Name "WS_name"

它向我显示了以下信息:

Id            : DataAnalyzed
CurrentValue : 0
Unit : Bytes
Limit : -1
NextResetTime : 7/24/2023 8:00:00 AM
QuotaPeriod : 1.00:00:00

这还不够,我正在寻找这个:

image with the data I am looking to get through powershell or any other language

我搜索了类似的内容,但没有找到其他内容。希望有一个我缺少的解决方案。

最佳答案

假设您将使用您的用户帐户来查询 Log Analytics Rest API并且您可以访问 Az Module 加上目标 Log Analytics 工作区的读者角色,您可以通过查询 Usage table 来获取摄取量。 .

# connect impersonating user
Connect-AzAccount
# the GUID of the LAW goes here
$workspaceId = 'xxxxx-xxxxx-xxxxx...'
$resource = 'https://api.loganalytics.io'
# get a token with permissions to query the LAW API
$token = Get-AzAccessToken -ResourceUrl $resource

$invokeRestMethodSplat = @{
Headers = @{
Authorization = '{0} {1}' -f $token.Type, $token.Token
}
Uri = '{0}/v1/workspaces/{1}/query' -f $resource, $workspaceId
ContentType = 'application/json'
Method = 'Post'
Body = @{
query = '
Usage
| where TimeGenerated > ago(24h)
| summarize ["TotalIngestionVolume(GB)"] = sum(Quantity) / 1024.0 by DataType
| order by ["TotalIngestionVolume(GB)"]
'
} | ConvertTo-Json
}
$response = Invoke-RestMethod @invokeRestMethodSplat

到目前为止,在 $response 中,您将在 Log Analytics 工作区中获得每个表的摄取量,问题是此 API 的响应非常糟糕,因此您必须枚举列和行像这样从中取出对象:

$columns = @($response.tables.columns.name)
$result = [ordered]@{}

foreach ($row in $response.tables.rows) {
for ($i = 0; $i -lt $columns.Count; $i++) {
$result[$columns[$i]] = $row[$i]
}

[pscustomobject] $result
$result.Clear()
}
<小时/>

如果使用服务主体而不是模拟我们的用户帐户,逻辑几乎是相同的,唯一的变化是我们获取 token 的方式:

$clientId = 'xxxxx-xxxx-xxxx....'
$tenantId = 'xxxxx-xxxx-xxxx....'
$secret = 'fo0B4rB4z'

$cred = [pscredential]::new(
$clientId,
(ConvertTo-SecureString $secret -AsPlainText -Force))

Connect-AzAccount -ServicePrincipal -Tenant $tenantId -Credential $cred

$resource = 'https://api.loganalytics.io'
# get a token with permissions to query the LAW API
$token = Get-AzAccessToken -ResourceUrl $resource

# rest stays the same

关于azure - 是否可以使用 powershell 或任何编程语言获取日志分析工作区的摄取量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76757256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com