Get-AzMetric MetricNamespace问题/错误? [英] Get-AzMetric MetricNamespace issue/bug?

查看:119
本文介绍了Get-AzMetric MetricNamespace问题/错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好, 


一直在使用Azure Metrics处理一些自定义报告并遇到问题(两个环境都相同)

环境A:

Az.Monitor 1.0.0

PowerShell 6.1.0



环境B:

AzureRM.Insights  5.1.4     

PowerShell 5.1.17134


1)我想要实现的是 - 容器中的blob数量。它可以从度量命名空间中的UI"Blob"获得。 Gel-AzStorageBlob不是一个选项,因为每个容器中有超过1000000个blob。



2)但是,就像我一样got - powershell命令应该是这样的:

 Get-AzMetric` 
-ResourceId / subscriptions / {SubscriptionID} / resourceGroups / {rgNname} /providers/Microsoft.Storage/storageAccounts/{storageAccountName}`
-MetricNames BlobCount`
-MetricNamespace" blobServices /默认"




然而它什么都不返回。



* --- *所以我试着调试它并且请求是:


Absolute Uri:

 https:// management。 azure.com//subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/providers/microsoft.insights/metrics?timespan=2019-02-12T07:00:53.9500008Z% 2F2019-02-12T08:00:53.9500008Z&安培; metricnames = blobServices&安培; api-version = 2018-01-01& metricnamespace = blobServices%2Fdefault 




我试过了不同metricnamespaces像斑点,blobservices和等

将  - 的。MetricNamespace" Microsoft.Storage/storageAccounts/blobServices/default"
它返回:

" message":"检测无效值:Microsoft.Storage/storageAccounts/blobServices/default查询参数:'metricnamespace',值必须为:Microsoft.Storage/storageAccounts如果提供了查询参数,您还可以

跳过此可选查询参数。"



但是,根据指南,请求应为:


Absolute Uri:

 https://management.azure.com//subscriptions/ {SubscriptionID} / resourceGroups / {rgName} / providers / Microsoft.Storage/storageAccounts/{storageAccountName}/blobServices/default/providers/microsoft.insights/metrics?timespan=2019-02-12T07:03:00.3461219Z%2F2019-02-12T08:03:00.3461219Z&metricnames=BlobCount& api-version = 2018-01-01 



所以要获得正确回应我要跑:


<预类= "prettyprint">获取-AzMetric`
-ResourceId /subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountname } / blobServices / default`
-MetricNames BlobCount



这是一个功能还是一个错误,或者我做错了什么?

解决方案

Hello Artem,


感谢您在此发布!


在metricnamespace参数的位置,您需要为您的要求提供'blob'。


你可以比较你在OP中提到的以下两个脚本。

 ##在这里你指定存储帐户的资源ID 

Get-AzMetric`

-ResourceId / subscriptions / {SubscriptionID} / resourceGroups / {rgNname} /providers/Microsoft.Storage/storageAccounts/ { storageAccountName}`

-MetricNames BlobCount`

-MetricNamespace" blobServices / default"

##这里你指定了blob的资源ID

Get-AzMetric`

-ResourceId / subscriptions / {SubscriptionID} / resourceGroups / { rgName} /providers/Microsoft.Storage/storageAccounts/ {storageAccountname} / blobServices /默认`

-MetricNames BlobCount




如果您专门检查存储帐户Azure门户下的属性磁贴,有不同类型的资源ID。


例如,存储帐户资源ID将是这样的


" /subscriptions/xxxxxx-xxxx-xx-b5ba-xxxxx/resourceGroups/yashfilesyncrg/providers/Microsoft.Storage/storageAccounts/yashfilestg"


有关团块资源ID将是这样的


"/ subscriptions / xxxxx-xxxx-xxx-b5ba-xxxxx / resourceGroups / yashfilesyncrg / providers / Microsoft.Storage / storageAccounts / yashfilestg / blobServices / default"


但是当您使用Get-AzMetric cmdlet时,对于'resourceId'参数,您可能必须提供'度量标准的资源ID',而不是存储帐户或blob的资源ID。如需参考,请查看
。如果您需要任何进一步的帮助,请告诉我们。





Hi guys, 

Been working with Azure Metrics for some custom reports and faced with an issue (same for both env)
Environment A:
Az.Monitor 1.0.0
PowerShell 6.1.0

Environment B:
AzureRM.Insights 5.1.4     
PowerShell 5.1.17134

1) What I'm trying to achieve is - number of blobs in container. It's available from UI in Metric Namespace "Blob". Gel-AzStorageBlob is not an option as there are more then 1000000 blobs in each container

2) However, as I got - powershell command should be like:

Get-AzMetric `
 -ResourceId /subscriptions/{SubscriptionID}/resourceGroups/{rgNname}/providers/Microsoft.Storage/storageAccounts/{storageAccountName} `
 -MetricNames BlobCount `
 -MetricNamespace "blobServices/default"


However it returns nothing.

*---* So I've tried to debug it and the request is:

Absolute Uri:

https://management.azure.com//subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/providers/microsoft.insights/metrics?timespan=2019-02-12T07:00:53.9500008Z%2F2019-02-12T08:00:53.9500008Z&metricnames=blobServices&api-version=2018-01-01&metricnamespace=blobServices%2Fdefault


I've tried different metricnamespaces like blob , blobservices and etc.
With -MetricNamespace "Microsoft.Storage/storageAccounts/blobServices/default" it returns:
"message": "Detect invalid value: Microsoft.Storage/storageAccounts/blobServices/default for query parameter: 'metricnamespace', the value must be: Microsoft.Storage/storageAccounts if the query parameter is provided, you can also 
skip this optional query parameter."

However, according to the guide the request should be:

Absolute Uri:

https://management.azure.com//subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/blobServices/default/providers/microsoft.insights/metrics?timespan=2019-02-12T07:03:00.3461219Z%2F2019-02-12T08:03:00.3461219Z&metricnames=BlobCount&api-version=2018-01-01


So to get the right respond I've to run:

Get-AzMetric `
  -ResourceId /subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountname}/blobServices/default `
  -MetricNames BlobCount


Is it a feature or a bug or I'm doing something wrong?

解决方案

Hello Artem,

Thanks for posting here !

In the place of metricnamespace parameter, you need to give ‘blob’ for your requirement.

You can compare the both below scripts which you mentioned in the OP.

##Here you specified the resource id of storage account

Get-AzMetric `

-ResourceId /subscriptions/{SubscriptionID}/resourceGroups/{rgNname}/providers/Microsoft.Storage/storageAccounts/{storageAccountName} `

-MetricNames BlobCount `

-MetricNamespace "blobServices/default"

##Here you specified the resource id of blob

Get-AzMetric `

  -ResourceId /subscriptions/{SubscriptionID}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/{storageAccountname}/blobServices/default `

  -MetricNames BlobCount

If you check specifically in the storage account properties tile under Azure portal, there are different type of resource id’s.

For example, the storage account resource id will be something like this

"/subscriptions/xxxxxx-xxxx-xx-b5ba-xxxxx/resourceGroups/yashfilesyncrg/providers/Microsoft.Storage/storageAccounts/yashfilestg"

For blob resource id will be like this

"/subscriptions/xxxxx-xxxx-xxx-b5ba-xxxxx/resourceGroups/yashfilesyncrg/providers/Microsoft.Storage/storageAccounts/yashfilestg/blobServices/default"

But as you are using Get-AzMetric cmdlet so for the ‘resourceId’ parameter you may have to give ‘resource id of the metric’ but not the resource id of storage account or blob. For reference please check https://docs.microsoft.com/en-us/powershell/module/azurerm.insights/get-azurermmetric?view=azurermps-6.13.0#required-parameters

In the metricnames parameter you should give the type of blob, file, table, queue or storageaccount as per your requirement. In the Azure portal UI, if you check the metric namespace and metric name, you need to specify the resource type as shown below.

To get more info on this, you can refer the following document on Azure metrics for Storage Account. Kindly let us know if you need any further assistance on this.



这篇关于Get-AzMetric MetricNamespace问题/错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆