使用Log Analytics日志将总请求计数获取到cosmosDb

时间:2019-07-26 11:50:57

标签: azure-cosmosdb azure-log-analytics

在Azure中,您可以在 cosmosDb 的概述选项卡中查看针对 CosmosDB 发出的请求数量。我想使用Log Analytics Diagnostic日志获得相同的数目(总请求数),但是由于要记录的日志数超过请求总数,因此我无法确定要计数的日志数。

3月前后,我使用了一种逻辑,即如果日志在requestResourceId_s字段中具有完整的自链接(具有数据库ID /名称和集合ID /名称),那么我将对其进行计数。这似乎行得通,并且数字相加,但是当我前一段时间再次回顾时,我注意到这不再起作用。然后,我尝试了使用collectionName_s != ""requestLength_s != "0"requestCharge_s != "0.000000"过滤日志,使用activityId上的不同运算符并将上述过滤器组合为不同的组合。但是它总是返回错误的数字,我似乎找不到总请求计数。

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个日志被计数。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

欢迎堆栈溢出。

AFAIK,您应该使用下面的Kusto查询来获取发出的请求总数。

AzureMetrics | where MetricName == "TotalRequests"

要执行上述操作,先决条件是按照this文档中的说明使用诊断设置打开日志记录。请确保您选中“指标”部分下的“请求”框,如下面的屏幕截图中突出显示。

enter image description here

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

希望这会有所帮助!!干杯!