추천 인덱스 모두 반환
Performance Advisor가 제안하는 인덱스를 반환합니다. Performance Advisor는 MongoDB가 느리다고 판단한 쿼리를 모니터링하고 쿼리 성능을 향상시키기 위해 새 인덱스를 추천합니다. 이 리소스를 사용하려면, 요청하는 서비스 계정 또는 API 키에 프로젝트 읽기 전용 역할이 있어야 합니다.
경로 매개변수
-
프로젝트 식별하는 고유한 24-16진수 문자열입니다. 인증된 사용자가 액세스 할 수 있는 모든 프로젝트를 조회 하려면 /groups 엔드포인트를 사용합니다.
참고: 그룹과 프로젝트는 동의어입니다. 그룹 ID는 프로젝트 ID와 동일합니다. 기존 그룹의 경우, 그룹/프로젝트 ID는 동일하게 유지됩니다. 리소스 및 해당 엔드포인트는 그룹이라는 용어를 사용합니다.
형식은
^([a-f0-9]{24})$
패턴 과 일치해야 합니다. -
MongoDB 프로세스를 제공하는 호스트와 포트의 조합입니다. 호스트는 MongoDB 프로세스(
mongod
또는mongos
)를 실행하는 호스트의 호스트 이름, FQDN, IPv4 주소 또는 IPv6 주소여야 합니다. 포트는 MongoDB 프로세스가 요청을 수신하는 IANA 포트여야 합니다.형식은
^([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})$
패턴 과 일치해야 합니다.
쿼리 매개변수
-
애플리케이션이 응답을
envelope
JSON 객체로 래핑할지 여부를 나타내는 플래그입니다. 일부 API 클라이언트는 HTTP 응답 헤더 또는 상태 코드에 액세스할 수 없습니다. 이 문제를 해결하려면 쿼리에서 envelope=true를 설정합니다. 결과 목록을 반환하는 엔드포인트는 결과 객체를 엔벨로프로 사용합니다. 애플리케이션은 응답 본문에 상태 매개변수를 추가합니다.기본값은
false
입니다. -
응답이 응답의 총 항목 수(TotalCount)를 반환하는지 여부를 나타내는 플래그입니다.
기본값은
true
입니다. -
페이지당 응답이 반환하는 항목 수입니다.
최소값은
1
, 최대값은500
입니다. 기본값은100
입니다. -
응답이 반환하는 전체 객체의 현재 세트를 표시하는 페이지 번호입니다.
최소값은
1
입니다. 기본값은1
입니다. -
응답 본문이 프리티프린트 형식이어야 하는지 여부를 나타내는 플래그입니다.
기본값은
false
입니다.Prettyprint -
쿼리가 cluster의 관리형 네임스페이스 중에서 추천 인덱스를 찾는 동안 표현된 시간입니다. 이 매개변수는 해당 값을 밀리초 단위로 표현합니다.
- 이후 매개변수를 지정하지 않으면 엔드포인트는 현재 시간 이전의 기간을 포함하는 데이터를 반환합니다.
- 기간 또는 이후 매개변수를 모두 지정하지 않으면 엔드포인트는 이전 24시간 동안의 데이터를 반환합니다.
-
추천 인덱스를 조회할 네임스페이스입니다. 네임스페이스는 데이터베이스 한 개와
.
:<database>.<collection>
(으)로 작성된 컬렉션 리소스 한 개로 구성됩니다. 여러 네임스페이스를 포함하려면 각 네임스페이스 사이에 앰퍼샌드(&
)로 구분하여 매개변수를 여러 번 전달합니다. 모든 네임스페이스에 대한 결과를 반환하려면 이 매개변수를 생략합니다. -
추천 인덱스의 이점을 누릴 수 있는 최대 예시 쿼리 수입니다.
기본값은
5
입니다. -
추천할 최대 인덱스를 나타내는 숫자입니다.
-
쿼리가 추천 인덱스를 조회하는 날짜 및 시간입니다. 이 매개 변수는 해당 값을 유닉스 시간 이후 경과된 밀리초 단위로 표현합니다.
- 기간 매개변수를 지정하지 않으면 엔드포인트는 이후 값과 현재 시간을 포함하는 데이터를 반환합니다.
- 기간 또는 이후 매개변수를 모두 지정하지 않으면 엔드포인트는 이전 24시간 동안의 데이터를 반환합니다.
최소값은
1199145600000
입니다.
atlas api performanceAdvisor listGroupProcessPerformanceAdvisorSuggestedIndexes --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20240530001/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.ListGroupProcessPerformanceAdvisorSuggestedIndexesApiParams{}
sdkResp, httpResp, err := client.PerformanceAdvisorApi.
ListGroupProcessPerformanceAdvisorSuggestedIndexesWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2024-05-30+json" \
-X GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/processes/{processId}/performanceAdvisor/suggestedIndexes?pretty=true"
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2024-05-30+json" \
-X GET "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/processes/{processId}/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": 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"
}