2017-09-13 5 views
1

私は基本的な情報のみを取得CosmosDB - 消費されたRU/sをプログラム的にクエリしますか?

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

のようなコードで、残念ながら私はNode.jsのdocumentdbモジュールと収集情報を照会するとき、コレクションレベルでRU /秒の情報について消費を取得しようとしています以下のように

{ 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消費情報を得る他の方法はありますか?このデータは、ポータルのメトリクス - >スループットブレードで入手できますが、APIを使用する方法は私にとって謎です。 Azure Monitorは、データベース全体の平均値しか提供していないため、Azure Monitor APIを使用することもできません。

答えて

2

これは実際のシナリオでは実現できないかもしれませんが、他のAzure製品を使用して独自のソリューションを展開することは間違いありません。私は、RU消費を引き出すためのネイティブAPIがはるかに理想的であることに同意します。

独自のロールを作成したい場合は、イベントハブとストリームアナリティクスを使用します。 RUコストをイベント・ハブに公開するCosmos照会の周りに小さなラッパーを作成します(RUコストは、実行する操作ごとにCosmosから返されます)。そこから、Stream Analyticsには、ハブからのメッセージを取り込むための統合機能が組み込まれています。これは、1秒のバケットでRUコストを集計する簡単なクエリを作成する問題です。コスモスのコストを最適化するために、リアルタイムの使用状況に応じて自動的にスケール操作をトリガするなど、あらゆる種類のクールな作業を行うことができます。

スパムキーワークロードをどれだけ重視するかによって、インテリジェントスケーリングのコスト削減は、イベントハブ+ストリームアナリティクスの追加費用を上回るものになります。

+0

面白いアイデアは、狂った複雑な音ですが、これが唯一の選択肢であれば... :)興味深いのは、これらのメトリックはポータルダッシュボードを通じて表示されるため、システムに含まれているということです。それは、APIとAzure Monitorのものです。私はそれらが公開されていないと表示しています... –

+0

構造的に少し複雑に聞こえるかもしれませんが、実装すれば、どれくらい簡単かつ簡単に驚かれるでしょう。このようなユースケースのために比較的シンプルなAPIを備えた強力なツールです。これらのメトリックはどこかではっきりと利用できますが、このアプローチの利点は、はるかにリアルタイムかつ実用的な洞察になります。ポータルのメトリックは、最大の粒度を提供せず、少し遅れる可能性があります。 –

関連する問題