推奨インデックスの取得
MongoDB Ops Manager v6.0 は 1 月 2025 で EOL になります。 可能な限りすぐに MongoDB Ops Manager の上位バージョンにアップグレードしてください。
Performance Advisor によって決定された推奨インデックスを取得します。
ベース URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
Resource
GET /groups/{PROJECT-ID}/hosts/{HOST-ID}/performanceAdvisor/suggestedIndexes
リクエスト パス パラメーター
Parameter | タイプ | 説明 |
---|---|---|
プロジェクトID | string | (必須。) この MongoDB プロセスを所有するプロジェクトの一意の識別子。 |
ホスト ID | string | (必須。) MongoDB プロセスのホストの一意の識別子です。 |
リクエスト クエリ パラメータ
すべてのパラメーターは任意です。
pretty | ブール値 | レスポンス本体を pretty-print に含めるかどうかを示します 形式。 | false | |
envelope | ブール値 | 応答をエンベロープでラップするかどうかを示します。 | false | |
以来 | long | 推奨インデックスを検索する時点( UNIXエポックからのミリ秒単位 ) 。 | 以前の24時間 | |
duration | long | クラスター内の管理対象名前空間から推奨インデックスを検索する時間の長さ(ミリ秒単位)。 | 現在まで | |
名前空間 | string | 推奨されたインデックスを検索する名前空間。 名前空間は、 複数の名前空間を指定するには、アンパサンド( 以下に例を挙げます。
| すべて | |
nIndexes | long | 推奨するインデックスの最大数。 | 無制限 | |
nExamples | long | 推奨インデックスによって改善される、提供するクエリ例の最大数。 | 5 |
リクエスト ボディ パラメータ
このエンドポイントは、HTTP リクエスト本体パラメータを使用しません。
応答
名前 | タイプ | 説明 |
---|---|---|
shapes | ドキュメントの配列 | 推奨されるインデックスによって提供されるクエリシェイプに関する情報を含むドキュメント。 |
shapes[n].avgMs | 数値 | このシェイプに一致するクエリの平均実行時間(ミリ秒単位)。 |
shapes[n].count | 数値 | このシェイプに一致することが検査されたクエリの数。 |
shapes[n].id | objectId | このシェイプの一意の ID。 API リクエストの実行中のみ存在します。 |
shapes[n].inefficiencyScore | 数値 | クエリによって返されたドキュメント 1 件ごとの平均読み取りドキュメント数。 詳細については、 「 クエリ非効率スコアの理解 」を参照してください。 |
shapes[n].namespace | string | このシェイプ内のクエリによって検索される名前空間。 |
shapes[n].operations | ドキュメントの配列 | 特定の情報を含むドキュメントと、個々のクエリのログ行。 |
shapes[n].operations[n].predicates | ドキュメントの配列 | クエリで使用される検索条件を含むドキュメント。 これらの述語では、ユーザーがプロジェクトデータへのアクセスについて読み取り専用以上の権限を持っている場合を除き、キーと値のペア内の値は編集されます。 |
shapes[n].operations[n].raw | string | クエリによって生成された未加工のログ行。 |
shapes[n].operations[n].stats | ドキュメント | クエリ統計。 |
shapes[n].operations[n].stats.ms | 数値 | クエリの期間(ミリ秒単位)。 |
shapes[n].operations[n].stats.nReturned | 数値 | クエリによって返された結果の数。 |
shapes[n].stats.nScanned | 数値 | クエリによって読み取られたドキュメントの数。 |
shapes[n].stats.ts | 数値 | クエリ タイムスタンプ( エポックからの秒数 )。 |
suggestedIndexes | ドキュメントの配列 | Performance Advisor によって提案されるインデックスに関する情報を含むドキュメント。 |
suggestedIndexes[n].id | objectId | この推奨インデックスの一意の ID。 |
suggestedIndexes[n].impact | objectId の配列 | この推奨インデックスに関連するこの応答内のクエリシェイプに対応する一意の識別子のリスト。 このフィールドは、 Performance Advisorユーザー インターフェースの Impactに対応していません。 |
suggestedIndexes[n].index | ドキュメントの配列 | 各配列要素は、インデックス内のキーとそのソート順序(昇順または降順)を指定するドキュメントです。
複数のキーを持つインデックス内のキーは、インデックス内で表示されるのと 同じ順序 で表示されます。 |
suggestedIndexes[n].index.<fieldname> | string | インデックスを作成する特定のフィールド。 |
suggestedIndexes[n].namespace | string | 推奨されたインデックスの名前空間。 |
suggestedIndexes[n].weight | 数値 | 推奨インデックスによって提供される推定割合のパフォーマンス向上。 Performance Advisor ユーザー インターフェースの 影響度 に対応します。 |
リクエストの例
curl --user '{PUBLIC-KEY}:{PRIVATE-KEY}' --digest \ --header 'Accept: application/json' \ --include \ --request GET 'https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0/groups/{PROJECT-ID}/hosts/{HOST-ID}/performanceAdvisor/suggestedIndexes?pretty=true'
応答例
応答ヘッダー
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
200 OK Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
レスポンス本体
{ "shapes" : [ { "avgMs" : 42, "count" : 2, "id" : "5b74689a80eef53f3388897e", "inefficiencyScore" : 50000, "namespace" : "test.users", "operations" : [ { "predicates" : [{ "find" : { "emails" : "la@sa.kp" } }], "raw" : "2018-08-15T17:14:11.115+0000 I COMMAND [conn4576] command test.users appName: \"MongoDB Shell\" command: find { find: \"users\", filter: { emails: \"la@sa.kp\" }, lsid: { id: UUID(\"1a4e71d3-9b67-4e9c-b078-9fdf3fae9091\") }, $clusterTime: { clusterTime: Timestamp(1534353241, 1), signature: { hash: BinData(0, AB91938B7CF7BC87994A2909A98D87F29101EFA0), keyId: 6589681559618453505 } }, $db: \"test\" } planSummary: COLLSCAN keysExamined:0 docsExamined:50000 cursorExhausted:1 numYields:391 nreturned:1 reslen:339 locks:{ Global: { acquireCount: { r: 784 } }, Database: { acquireCount: { r: 392 } }, Collection: { acquireCount: { r: 392 } } } protocol:op_msg 34ms", "stats" : { "ms" : 34, "nReturned" : 1, "nScanned" : 50000, "ts" : 1534353251147 } }, { "predicates" : [{ "find" : { "emails" : "tocde@fijoow.to" } }], "raw" : "2018-08-15T17:14:18.665+0000 I COMMAND [conn4576] command test.users appName: \"MongoDB Shell\" command: find { find: \"users\", filter: { emails: \"tocde@fijoow.to\" }, lsid: { id: UUID(\"1a4e71d3-9b67-4e9c-b078-9fdf3fae9091\") }, $clusterTime: { clusterTime: Timestamp(1534353241, 1), signature: { hash: BinData(0, AB91938B7CF7BC87994A2909A98D87F29101EFA0), keyId: 6589681559618453505 } }, $db: \"test\" } planSummary: COLLSCAN keysExamined:0 docsExamined:50000 cursorExhausted:1 numYields:390 nreturned:1 reslen:342 locks:{ Global: { acquireCount: { r: 782 } }, Database: { acquireCount: { r: 391 } }, Collection: { acquireCount: { r: 391 } } } protocol:op_msg 36ms", "stats" : { "ms" : 36, "nReturned" : 1, "nScanned" : 50000, "ts" : 1534353258697 } } ] } ], "suggestedIndexes" : [ { "id" : "5b74689a80eef53f3388897f", "impact" : [ "5b74689a80eef53f3388897e" ], "index" : [ { "emails" : 1 } ], "namespace" : "test.users", "weight" : 37.220480901815623 }, { "id" : "5b74689a80eef53f33888980", "impact" : [ "5b74689a80eef53f3388897d" ], "index" : [ { "email" : 1 } ], "namespace" : "test.inventory", "weight" : 19.037578309966488 } ] }