추천 인덱스 모두 반환
Performance Advisor가 제안하는 인덱스를 반환합니다. Performance Advisor는 MongoDB가 느리다고 판단한 쿼리를 모니터링하고 쿼리 성능을 향상시키기 위해 새 인덱스를 추천합니다. 이 리소스를 사용하려면, 요청하는 서비스 계정 또는 API 키에 프로젝트 읽기 전용 역할이 있어야 합니다.
경로 매개변수
-
프로젝트 식별하는 고유한 24-16진수 문자열입니다. 인증된 사용자가 액세스 할 수 있는 모든 프로젝트를 조회 하려면 /groups 엔드포인트를 사용합니다.
참고: 그룹과 프로젝트는 동의어입니다. 그룹 ID는 프로젝트 ID와 동일합니다. 기존 그룹의 경우, 그룹/프로젝트 ID는 동일하게 유지됩니다. 리소스 및 해당 엔드포인트는 그룹이라는 용어를 사용합니다.
형식은
^([a-f0-9]{24})$
패턴 과 일치해야 합니다. -
클러스터를 식별하는 사람이 읽을 수 있는 라벨입니다.
형식은
^[a-zA-Z0-9][a-zA-Z0-9-]*$
패턴 과 일치해야 합니다.
쿼리 매개변수
-
추천 인덱스를 조회할 프로세스 ID입니다. 프로세스 ID는 MongoDB 프로세스를 제공하는 호스트와 포트의 조합입니다. 호스트는 MongoDB 프로세스(
mongod
또는mongos
)를 실행하는 호스트의 호스트 이름, FQDN, IPv4 주소 또는 IPv6 주소여야 합니다. 포트는 MongoDB 프로세스가 요청을 수신 대기하는 IANA 포트여야 합니다. 여러 프로세스 ID를 포함하려면 각 프로세스 ID 사이에 앰퍼샌드(&
)로 구분하여 매개변수를 여러 번 전달합니다.각 형식은
^([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})$
패턴 과 일치해야 합니다. -
추천 인덱스를 조회할 네임스페이스입니다. 네임스페이스는 데이터베이스 한 개와
.
:<database>.<collection>
(으)로 작성된 컬렉션 리소스 한 개로 구성됩니다. 여러 네임스페이스를 포함하려면 각 네임스페이스 사이에 앰퍼샌드(&
)로 구분하여 매개변수를 여러 번 전달합니다. 모든 네임스페이스에 대한 결과를 반환하려면 이 매개변수를 생략합니다. -
쿼리가 추천 인덱스를 조회하는 날짜 및 시간입니다. 이 매개 변수는 해당 값을 유닉스 시간 이후 경과된 밀리초 단위로 표현합니다.
- until 매개변수를 지정하지 않으면 엔드포인트는 since 값과 현재 시간을 포함하는 데이터를 반환합니다.
- since 또는 until 매개 변수를 지정하지 않으면 엔드포인트는 이전 24시간 동안의 데이터를 반환합니다.
최소값은
1199145600000
입니다. -
쿼리가 추천 인덱스를 조회하는 날짜 및 시간입니다. 이 매개 변수는 해당 값을 유닉스 시간 이후 경과된 밀리초 단위로 표현합니다.
- until 매개변수를 지정하는 경우 since 매개변수를 지정해야 합니다.
- since 또는 until 매개 변수를 지정하지 않으면 엔드포인트는 이전 24시간 동안의 데이터를 반환합니다.
최소값은
1199145600000
입니다.
atlas api performanceAdvisor listGroupClusterPerformanceAdvisorSuggestedIndexes --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.ListGroupClusterPerformanceAdvisorSuggestedIndexesApiParams{}
sdkResp, httpResp, err := client.PerformanceAdvisorApi.
ListGroupClusterPerformanceAdvisorSuggestedIndexesWithParams(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}/performanceAdvisor/suggestedIndexes?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}/performanceAdvisor/suggestedIndexes?pretty=true"
{
"shapes": [
{
"avgMs": 42,
"count": 42,
"id": "32b6e34b3d91647abb20e7b8",
"inefficiencyScore": 42,
"namespace": "string",
"operations": [
{
"predicates": [
{}
],
"stats": {
"ms": 42,
"nReturned": 42,
"nScanned": 42,
"ts": 42
}
}
]
}
],
"suggestedIndexes": [
{
"avgObjSize": 42.0,
"id": "32b6e34b3d91647abb20e7b8",
"impact": [
"string"
],
"index": [
{
"additionalProperty1": 1,
"additionalProperty2": 1
}
],
"namespace": "string",
"weight": 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"
}