首页 > 解决方案 > 使用 Log Analytics 日志获取 cosmosDb 的总请求数

问题描述

在 Azure 中,您可以在 cosmosDb的概览选项卡中查看针对CosmosDB发出了多少请求。我想使用 Log Analytics 诊断日志获得相同的数量(总请求),但我无法知道要计算哪些日志,因为日志比总请求多。

大约在 3 月,我使用了一个逻辑,即如果日志在 requestResourceId_s 字段中有完整的自链接(带有数据库 ID/名称和集合 ID/名称),那么我会计算它。这似乎有效,并且数字加起来了,但是当我不久前重新访问时,我注意到这不再有效了。然后我尝试使用collectionName_s != "", requestLength_s != "0",过滤日志,requestCharge_s != "0.000000"在 activityId 上使用 distinct 运算符,并将提到的过滤器组合成不同的组合。但它总是返回错误的数字,我似乎无法找到总请求数。

AzureDiagnostics
| extend requestDatabaseId = extract("(^(/dbs/.*?)/)", 1, requestResourceId_s) 
| extend requestCollectionId = extract("((/colls/.*?)/)", 1, requestResourceId_s)
| where requestDatabaseId != "" and requestCollectionId != ""

这是我用来获取总请求数的查询的要点。例如,它将计算具有 /dbs/master/colls/master/docs" in requestResourceId_s

例如,如果我看到总共有 97 个请求,按照我的旧逻辑,现在有 326 个日志被计算在内。

任何帮助表示赞赏。

标签: azure-cosmosdbazure-log-analytics

解决方案


欢迎来到堆栈溢出。

AFAIK 你应该使用下面的 Kusto 查询来获取请求的总数。

AzureMetrics | where MetricName == "TotalRequests"

上述工作的先决条件是使用文档中解释的诊断设置打开日志记录。确保勾选 Metric 部分下的“Requests”框,如下面的屏幕截图中突出显示的那样。

在此处输入图像描述

请参阅文档以了解当前支持的所有指标。如果将来支持任何 Azure 资源更改的指标,那么这方面的信息可能会更新。

希望这可以帮助!!干杯!!


推荐阅读