Docs Menu
Docs Home
/
MongoDB Cloud Manager
/ / / /

Get Suggested Indexes at the Cluster Level

On this page

  • Resource
  • Request Path Parameters
  • Request Query Parameters
  • Request Body Parameters
  • Response
  • Example Request
  • Example Response
  • Response Header
  • Response Body

Retrieves suggested indexes as determined by the Performance Advisor.

Base URL: https://cloud.mongodb.com/api/public/v1.0

GET /groups/{PROJECT-ID}/performanceAdvisor/suggestedIndexes
Parameter
Type
Description

PROJECT-ID

string

(Required.) Unique identifier of the project that owns this MongoDB process.

The following parameters are optional unless otherwise noted.

pretty

boolean

false

envelope

boolean

Indicates whether or not to wrap the response in an envelope.

false

clusterId

string

(Conditional.) Unique identifier of the replica set or sharded cluster for which to return the suggested indexes. If you don't specify hostIds, you must specify this parameter.

If you specify hostIds, but don't specify clusterId, the query returns all the suggested indexes for the specified hosts, and the hosts must be from the same cluster (replica set or sharded cluster).

hostIds

array

(Conditional.) Lists that contains the unique indentifiers of the hosts for which to return the suggested indexes. If you don't specify clusterId, you must specify this parameter.

If you specify clusterId, but dont specify hostIds, the query returns the suggested indexes for all hosts within the specified cluster (replica set or sharded cluster).

since

long

Start point in time from which to retrieve suggested indexes, stated in milliseconds since epoch.

previous 24 hours

until

long

End point in time from which to retrieve suggested indexes, stated in milliseconds since epoch.

current timestamp

namespaces

string

Namespaces from which to retrieve suggested indexes. A namespace consists of the database and collection resource separated by a ., such as <database>.<collection>.

To specify multiple namespaces, pass the parameter multiple times using an ampersand (&) as a delimiter, once for each namespace.

For example:

?namespaces=data.stocks&namespaces=data.zips&pretty=true

all

This endpoint doesn't use HTTP request body parameters.

Name
Type
Description

shapes

array of documents

Documents with information about the query shapes that are served by the suggested indexes.

shapes[n].avgMs

number

Average duration in milliseconds for the queries examined that match this shape.

shapes[n].count

number

Number of queries examined that match this shape.

shapes[n].id

objectId

Unique identifier for this shape. Exists only for the duration of the API request.

shapes[n].inefficiencyScore

number

Average number of documents read for every document returned by the query. For more information, see Understanding the Query Inefficiency Score.

shapes[n].namespace

string

Namespace searched by the queries in this shape.

shapes[n].operations

array of documents

Documents with specific information and log lines for individual queries.

shapes[n].operations[n].predicates

array of documents

Documents containing the search criteria used by the query. Values in key-value pairs will be redacted in these predicates unless the user has Project Data Access Read Only permissions or higher.

shapes[n].operations[n].raw

string

Raw log line produced by the query.

shapes[n].operations[n].stats

document

Query statistics.

shapes[n].operations[n].stats.ms

number

Duration in milliseconds of the query.

shapes[n].operations[n].stats.nReturned

number

Number of results returned by the query.

shapes[n].stats.avgObjSize

number

Average object size.

shapes[n].stats.nScanned

number

Number of documents read by the query.

shapes[n].stats.ts

number

Query timestamp, in seconds since epoch.

suggestedIndexes

array of documents

Documents with information about the indexes suggested by the Performance Advisor.

suggestedIndexes[n].id

objectId

Unique identifier for this suggested index.

suggestedIndexes[n].impact

array of objectIds

List of unique identifiers which correspond to the query shapes in this response which pertain to this suggested index.

This field does not correspond to Impact in the Performance Advisor user interface.

suggestedIndexes[n].index

array of documents

Each array element is a document that specifies a key in the index and its sort order, ascending or descending.

  • A value of 1 indicates an ascending sort order.

  • A value of -1 indicates a descending sort order.

Keys in indexes with multiple keys appear in the same order that they appear in the index.

suggestedIndexes[n].index.<fieldname>

string

Specific field to be indexed.

suggestedIndexes[n].namespace

string

Namespace of the suggested index.

suggestedIndexes[n].weight

number

Estimated performance improvement that the suggested index would provide. Corresponds to Impact in the Performance Advisor user interface.

curl --user '{PUBLIC-KEY}:{PRIVATE-KEY}' --digest \
--header 'Accept: application/json' \
--include \
--request GET 'https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/performanceAdvisor/suggestedIndexes?clusterId={CLUSTER-ID}&pretty=true'
HTTP/1.1 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
HTTP/1.1 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
} ]
}

Back

Get Slow Query Logs