List Shards API

List Shards API

2.18에서 도입

list shards 작업은 모든 기본(primary)·복제(replica) 샤드의 상태와 그 분포를 페이지 단위(paginated) 형식으로 출력해요.

출처: 문서

본문

엔드포인트 (Endpoints)

GET _list/shards
GET _list/shards/{index}

쿼리 매개변수 (Query parameters)

모든 매개변수는 선택 사항이에요.

매개변수 타입 설명
bytes Byte size 바이트 크기 단위를 지정해요. 예: 7kb 또는 6gb. 자세한 내용은 지원 단위를 참고해요.
local Boolean 클러스터 매니저 노드가 아닌 로컬 노드의 정보만 반환할지 여부예요. 기본값은 false예요.
cluster_manager_timeout Time 클러스터 매니저 노드에 연결되기를 기다리는 시간이에요. 기본값은 30s예요.
cancel_after_time_interval Time 이 시간이 지나면 샤드 요청이 취소돼요. 기본값은 -1(타임아웃 없음)이에요.
time Time 시간 단위를 지정해요. 예: 5d 또는 7h. 자세한 내용은 지원 단위를 참고해요.
next_token String 다음 페이지의 인덱스를 가져와요. null이면 첫 페이지의 인덱스만 제공해요. 기본값은 null이에요.
size Integer 단일 페이지에 표시할 인덱스의 최대 수예요. 응답의 한 페이지에 있는 인덱스 수는 지정한 size와 항상 같지는 않아요. 기본값 및 최솟값은 2000, 최댓값은 20000이에요.
sort String 인덱스가 표시되는 순서예요. desc면 가장 최근에 생성된 인덱스부터, asc면 가장 오래된 인덱스부터 표시돼요. 기본값은 asc예요.

next_token 경로 매개변수를 쓸 때는 응답이 만들어낸 토큰을 사용해서 다음 페이지의 인덱스를 볼 수 있어요. API가 null을 반환하면 API에 포함된 모든 인덱스가 반환된 거예요.

예시 요청 (Example requests)

모든 인덱스와 샤드의 정보를 얻으려면 다음 쿼리를 쓰고, 응답의 next_token이 null이 될 때까지 계속 지정해줘요:

GET _list/shards/{index}?v&next_token=token

정보를 특정 인덱스로 제한하려면 쿼리 뒤에 인덱스 이름을 붙이고, next_token이 null이 될 때까지 계속 지정해줘요:

GET /_list/shards/<index>?v&next_token=token

Python 클라이언트로는 이렇게 호출해요:

response = client.list.shards(
index = "<index>",
params = { "v": "true", "next_token": "token" }
)

여러 인덱스의 정보를 얻으려면 인덱스를 쉼표로 구분해요:

GET /_list/shards/index1,index2,index3?v&next_token=token

Python 클라이언트로는 이렇게 호출해요:

response = client.list.shards(
index = "index1,index2,index3",
params = { "v": "true", "next_token": "token" }
)

예시 응답 (Example response)

평문(Plain text) 형식

index | shard | prirep | state   | docs | store | ip |       | node
plugins | 0   |   p    | STARTED |   0  |  208b | 172.18.0.4 | odfe-node1
plugins | 0   |   r    | STARTED |   0  |  208b | 172.18.0.3 |  odfe-node2
....
....
next_token MTcyOTE5NTQ5NjM5N3wub3BlbnNlYXJjaC1zYXAtbG9nLXR5cGVzLWNvbmZpZw==

JSON 형식

{
"next_token": "MTcyOTE5NTQ5NjM5N3wub3BlbnNlYXJjaC1zYXAtbG9nLXR5cGVzLWNvbmZpZw==",
"shards": [
{
"index": "plugins",
"shard": "0",
"prirep": "p",
"state": "STARTED",
"docs": "0",
"store": "208B",
"ip": "172.18.0.4",
"node": "odfe-node1"
},
{
"index": "plugins",
"shard": "0",
"prirep": "r",
"state": "STARTED",
"docs": "0",
"store": "208B",
"ip": "172.18.0.3",
"node": "odfe-node2"
}
]
}

더 알아보기