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.
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-]*$.
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.
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.
Minimum value is 1199145600000.
Process IDs 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 (mongod or mongos). The port must be the IANA port on which the MongoDB process listens for requests. To include multiple processId, pass the parameter multiple times delimited with an ampersand (&) between each processId.
Not more than 10 elements. 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 10 elements.
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 3 elements. Values are find, distinct, or aggregate.
Maximum number of query statistic summaries to return.
Minimum value is 1, maximum value is 100. Default value is 100.
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 14 elements. Values are TOTAL_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, or P99_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 10 elements. Format of each should match the following pattern: ^([a-fA-F0-9]{64})$.
Flag that indicates whether Application wraps the response in an envelope JSON 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.
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"
}