问题描述
我观察到,从设置诊断(较新的产品仍处于预览阶段)到 Queue Message Count
指标从 0 移动到队列中的实际消息总数大约需要 6 个小时。其他容量指标 Queue Capacity
和 Queue Count
需要大约 1 小时才能反映实际值。
谁能解释一下这些指标是如何更新的?最好知道如何预测图表的准确性。
我很担心,因为如果这些指标的延迟通常如此之大,那么基于队列指标的警报可能需要很长时间才能发出。
解决方法
更新:
还有'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#):
然后获取所有队列名称。
然后获取每个队列中消息的数量。
3、对得到的数字求和。
4、发送自定义提醒。
原答案:
起初,当我向队列存储中的一个队列发送消息后,“队列消息计数”在我这边也顽固地保持为零,但几个小时后它可以得到“队列消息计数”:
我认为这会是一个错误,但现在似乎运行良好。