Azure 存储队列指标多久更新一次?

问题描述

我观察到,从设置诊断(较新的产品仍处于预览阶段)到 Queue Message Count 指标从 0 移动到队列中的实际消息总数大约需要 6 个小时。其他容量指标 Queue CapacityQueue Count 需要大约 1 小时才能反映实际值。

谁能解释一下这些指标是如何更新的?最好知道如何预测图表的准确性。

我很担心,因为如果这些指标的延迟通常如此之大,那么基于队列指标的警报可能需要很长时间才能发出。

解决方法

更新:

Platform metrics are created by Azure resources and give you visibility into their health and performance. Each type of resource creates a distinct set of metrics without any configuration required. Platform metrics are collected from Azure resources at one-minute frequency unless specified otherwise in the metric's definition.

还有'Queue Message Count' is platform metrics.

所以它应该每 1 分钟更新一次数据。

但它没有。而且这不是只发生在门户上的问题。即使你使用rest api来获取QueueMessageCount,它仍然在1分钟后没有更新:

https://management.azure.com/subscriptions/xxx-xxx-xxx-xxx-xxx/resourceGroups/0730BowmanWindow/providers/Microsoft.Storage/storageAccounts/0730bowmanwindow/queueServices/default/providers/microsoft.insights/metrics?interval=PT1H&metricnames=QueueMessageCount&aggregation=Average&top=100&orderby=Average&api-version=2018-01-01&metricnamespace=Microsoft.Storage/storageAccounts/queueServices

{
    "cost": 59,"timespan": "2021-05-17T08:57:56Z/2021-05-17T09:57:56Z","interval": "PT1H","value": [
        {
            "id": "/subscriptions/xxx-xxx-xxx-xxx-xxx/resourceGroups/0730BowmanWindow/providers/Microsoft.Storage/storageAccounts/0730bowmanwindow/queueServices/default/providers/Microsoft.Insights/metrics/QueueMessageCount","type": "Microsoft.Insights/metrics","name": {
                "value": "QueueMessageCount","localizedValue": "Queue Message Count"
            },"displayDescription": "The number of unexpired queue messages in the storage account.","unit": "Count","timeseries": [
                {
                    "metadatavalues": [],"data": [
                        {
                            "timeStamp": "2021-05-17T08:57:00Z","average": 1.0
                        }
                    ]
                }
            ],"errorCode": "Success"
        }
    ],"namespace": "Microsoft.Storage/storageAccounts/queueServices","resourceregion": "centralus"
}

这可能是需要向 azure 团队报告的问题。它是如此缓慢,甚至失去了实用性。我认为基于此发送警报是一件坏事(太慢了)。

也许您可以通过代码设计自己的逻辑来检查 QueueMessageCount。

只是一个示例(C#):

1,Get Queues

然后获取所有队列名称。

2,Get Properties

然后获取每个队列中消息的数量。

3、对得到的数字求和。

4、发送自定义提醒。

原答案:

起初,当我向队列存储中的一个队列发送消息后,“队列消息计数”在我这边也顽固地保持为零,但几个小时后它可以得到“队列消息计数”:

enter image description here

我认为这会是一个错误,但现在似乎运行良好。