Return Query Statistic Summaries
Returns a list of query shape statistics summaries for a given cluster. Query shape statistics provide performance insights about MongoDB queries, helping users identify problematic query patterns and potential optimizations.
Path parameters
-
Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
NOTE: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group/project id remains the same. The resource and corresponding endpoints use the term groups.
Format should match the following pattern:
^([a-f0-9]{24})$. -
Human-readable label that identifies the cluster.
Format should match the following pattern:
^[a-zA-Z0-9][a-zA-Z0-9-]*$.
Query parameters
-
Date and time from which to retrieve query shape statistics. This parameter expresses its value in the number of milliseconds that have elapsed since the UNIX epoch.
- If you don't specify the until parameter, the endpoint returns data covering from the since value and the current time.
- If you specify neither the since nor the until parameters, the endpoint returns data from the previous 24 hours.
Minimum value is
1199145600000. -
Date and time up until which to retrieve query shape statistics. This parameter expresses its value in the number of milliseconds that have elapsed since the UNIX epoch.
- If you specify the until parameter, you must specify the since parameter.
- If you specify neither the since nor the until parameters, the endpoint returns data from the previous 24 hours.
Minimum value is
1199145600000. -
ProcessIds from which to retrieve query shape statistics. A processId is a combination of host and port that serves the MongoDB process. The host must be the hostname, FQDN, IPv4 address, or IPv6 address of the host that runs the MongoDB process (
mongodormongos). The port must be the IANA port on which the MongoDB process listens for requests. To include multiple processIds, pass the parameter multiple times delimited with an ampersand (&) between each processId.Not more than
10elements. Format of each should match the following pattern:^([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-f]{1,4}\:){7}([0-9a-f]{1,4})|(([a-z0-9]+\.){1,10}[a-z]+)?(\:[0-9]{4,5})$. -
Namespaces from which to retrieve query shape statistics. A namespace consists of one database and one collection resource written as
.:<database>.<collection>. To include multiple namespaces, pass the parameter multiple times delimited with an ampersand (&) between each namespace. Omit this parameter to return results for all namespaces.Not more than
10elements. -
Retrieve query shape statistics matching specified MongoDB commands. To include multiple commands, pass the parameter multiple times delimited with an ampersand (
&) between each command. The currently supported parameters are find, distinct, and aggregate. Omit this parameter to return results for all supported commands.Not more than
3elements. Values arefind,distinct, oraggregate. -
Maximum number of query statistic summaries to return.
Minimum value is
1, maximum value is100. Default value is100. -
Query shape statistics data series to retrieve. A series represents a specific metric about query execution. To include multiple series, pass the parameter multiple times delimited with an ampersand (
&) between each series. Omit this parameter to return results for all available series.Not more than
14elements. Values areTOTAL_EXECUTION_TIME,AVG_EXECUTION_TIME,EXECUTION_COUNT,KEYS_EXAMINED,DOCS_EXAMINED,DOCS_RETURNED,TOTAL_TIME_TO_RESPONSE,BYTES_READ,KEYS_EXAMINED_RETURNED,DOCS_EXAMINED_RETURNED,LAST_EXECUTION_TIME,P50_EXECUTION_TIME,P90_EXECUTION_TIME, orP99_EXECUTION_TIME. -
A list of SHA256 hashes of desired query shapes, output by MongoDB commands like $queryStats and $explain or slow query logs. To include multiple series, pass the parameter multiple times delimited with an ampersand (
&) between each series. Omit this parameter to return results for all available series.Not more than
10elements. Format of each should match the following pattern:^([a-fA-F0-9]{64})$. -
Flag that indicates whether Application wraps the response in an
envelopeJSON object. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. Endpoints that return a list of results use the results object as an envelope. Application adds the status parameter to the response body.Default value is
false. -
Flag that indicates whether the response body should be in the prettyprint format.
Default value is
false.Prettyprint
atlas api queryShapeInsights listQueryShapeSummaries --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.ListGroupClusterQueryShapeInsightSummariesApiParams{}
sdkResp, httpResp, err := client.QueryShapeInsightsApi.
ListGroupClusterQueryShapeInsightSummariesWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
-X GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/queryShapeInsights/summaries?pretty=true"
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
-X GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/clusters/{clusterName}/queryShapeInsights/summaries?pretty=true"
{
"summaries": [
{
"avgWorkingMillis": 42.0,
"bytesRead": 42.0,
"command": "find",
"docsExamined": 42.0,
"docsExaminedRatio": 42.0,
"docsReturned": 42.0,
"execCount": 42.0,
"keysExamined": 42.0,
"keysExaminedRatio": 42.0,
"lastExecMicros": 42.0,
"namespace": "string",
"p50ExecMicros": 42.0,
"p90ExecMicros": 42.0,
"p99ExecMicros": 42.0,
"queryShape": "string",
"queryShapeHash": "string",
"systemQuery": true,
"totalTimeToResponseMicros": 42.0,
"totalWorkingMillis": 42.0
}
]
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 429,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Too Many Requests",
"errorCode": "RATE_LIMITED"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}