CosmosDB – 以编程方式查询消耗的RU / s?

我试图得到关于消费RU /第二集合水平的信息 ,不幸的是,当我查询与node.js documentdb模块的集合信息,与代码

var client = new DocumentDBClient(host, { masterKey: masterKey }); client.readCollection(collection._self, function(err, item) { if (err) { console.log(err); } else { console.log(item); } }); 

我只获得如下的基本信息

 { id: 'myCollection', indexingPolicy: { indexingMode: 'consistent', automatic: true, includedPaths: [ [Object] ], excludedPaths: [] }, _rid: 'ku8SANRCfwA=', _ts: 1505295711, _self: 'dbs/ku8SAA==/colls/ku8SANRCfwA=/', _etag: '"00008b00-0000-0000-0000-59b8fd5f0000"', _docs: 'docs/', _sprocs: 'sprocs/', _triggers: 'triggers/', _udfs: 'udfs/', _conflicts: 'conflicts/' } 

有没有其他的方式来获得每个集合的RU消费信息? 这些数据在Metrics – >吞吐量刀片的门户中可用,但是如何通过API获取它对我来说是个谜。 Azure Monitor仅提供整个数据库级别上的平均值,因此使用Azure Monitor API也不是一种方法。

在您的情况下,这可能不太可行,但是您可以使用其他一些Azure产品来自定义解决scheme。 我同意用于拉动RU消费的本机API会更理想。

如果您想推出自己的产品,可以通过使用事件中心和stream分析来实现。 在您的Cosmos查询中写一个小的包装,将其RU费用发布到您的事件中心(RU费用从您执行的每个操作的Cosmos中返回)。 从这里开始,Stream Analytics已经集成了从您的集线器接收消息。 这将是一个创build一个简单的查询,在一秒钟桶聚合RU成本的问题。 从那里你可以做各种各样的很酷的东西,包括在给定的阈值发送警报,甚至触发自动缩放操作,以响应您的实时使用,以优化您的Cosmos成本。

根据您使用Cosmos的程度,如果您观察spikey工作负载,智能扩展的成本节省将大大抵消事件中心+stream分析的额外支出。