使用REST和PowerShell查询ServiceBus指标会返回空值

时间:2017-05-19 14:06:24

标签: powershell azureservicebus servicebus azure-eventhub azure-servicebus-queues

我正在尝试使用REST API和PowerShell检索Azure Service Bus队列/事件中心的长度和大小等指标

问题1: 我使用下面的代码来调用REST API。 虽然它确实返回响应,但值始终为空。 我尝试在ASM和ARM门户中创建队列和eventhub,结果相同

Invoke-RestMethod -Method GET -Uri https://management.core.windows.net/mysubscriberid/services/servicebus/Namespaces/maxsb2/Queues/maxqueue2/Metrics `
-CertificateThumbprint mycertthumbprint `
-Headers @{"x-ms-version" = "2015-08-01";'Content-Type'='application/json'}

输出如下所示,空值

Name               : size
Unit               : bytes
PrimaryAggregation : Max
Rollups            : {@{TimeGrain=00:05:00; Retention=02:00:00; Values=}, @{TimeGrain=01:00:00; Retention=7.00:00:00; Values=}, @{TimeGrain=1.00:00:00; Retention=60.00:00:00; 
                     Values=}, @{TimeGrain=7.00:00:00; Retention=730.00:00:00; Values=}}
DisplayName        : Size


Name               : length
Unit               : Messages
PrimaryAggregation : Max
Rollups            : {@{TimeGrain=00:05:00; Retention=02:00:00; Values=}, @{TimeGrain=01:00:00; Retention=7.00:00:00; Values=}, @{TimeGrain=1.00:00:00; Retention=60.00:00:00; 
                     Values=}, @{TimeGrain=7.00:00:00; Retention=730.00:00:00; Values=}}
DisplayName        : Length

PROBLEM2: 我遇到的第二个问题是使用过滤器关键字。

https://management.core.windows.net/mysubscriptionID/services/servicebus/Namespaces/MaxServiceBus/EventHubs/maxevent/Metrics/requests.total/Rollups/PT5M/Values?$filter=Timestamp%20le%20datetime'2017-05-19T21:00:00Z'

PowerShell将$ filter解释为变量并导致问题。我试过使用`来逃避,也尝试使用单/双引号但这些最终会引发误导性的身份验证错误。

如果我尝试使用以下语法来解决$ filter问题,

$uri = 'https://management.core.windows.net/{}/services/ServiceBus/Namespaces/maxeventhub/eventhubs/maxevent/Metrics/Rollups/P1D/Values/?$' + 'filter=Timestamp%20gt%20datetime' + '2017-04-09T00:00:00.0000000Z' + '&api-version=2015-08-01'

Invoke-RestMethod -Method GET -Uri $uri `
-Headers @{"Authorization" ="Bearer $($authv.access_token)";"x-ms-version" = "2015-08-01";'Content-Type'='application/json'} `
-CertificateThumbprint {}

我得到了一个不同的错误。 enter image description here

Invoke-RestMethod : Request to a downlevel service failed.

似乎auth工作正常,因为我现在得到响应,将证书上传到门户网站,只是值为null。 有什么想法吗?

0 个答案:

没有答案