Nodes API
Nodes API
1.0에서 도입
Nodes API를 쓰면 클러스터의 개별 노드에 대한 정보를 조회할 수 있어요.
출처: 문서
본문
노드 필터 (Node filters)
<node-filters> 매개변수로 API 응답에서 대상 노드 집합을 필터링해요.
| 매개변수 | 타입 | 설명 |
|---|---|---|
node-filters |
String | OpenSearch가 클러스터 노드를 식별할 때 쓰는 해석(resolution) 메커니즘의 쉼표로 구분된 목록이에요. |
노드 필터는 여러 노드 해석 메커니즘을 지원해요.
- 미리 정의된 상수:
_local,_cluster_manager,_all nodeID의 정확한 일치node-name,host-name,host-IP-address에 대한 간단한 대소문자 구분 와일드카드 패턴 일치<bool>값이true또는false로 설정된 노드 역할:cluster_manager:<bool>: 클러스터 매니저가 될 수 있는 모든 노드data:<bool>: 모든 데이터 노드ingest:<bool>: 모든 ingest 노드voting_only:<bool>: 모든 투표 전용(voting-only) 노드ml:<bool>: 모든 머신러닝(ML) 노드coordinating_only:<bool>: 모든 조정 전용(coordinating-only) 노드
- 노드 속성에 대한 간단한 대소문자 구분 와일드카드 패턴 일치:
<node attribute*>:<attribute value*>. 와일드카드는 키와 값에 동시에 사용할 수 있어요.
해석 메커니즘은 클라이언트가 지정한 순서대로 순차 적용돼요. 각 메커니즘 지정은 노드를 추가하거나 제거할 수 있어요.
선출된 클러스터 매니저 노드의 통계만 가져오려면 다음 쿼리를 사용해요:
GET /_nodes/_cluster_manager/stats
Python 클라이언트로는 이렇게 호출해요:
response = client.nodes.info(
metric = "stats",
node_id = "_cluster_manager"
)
데이터 전용 노드의 통계를 가져오려면 다음 쿼리를 사용해요:
GET /_nodes/data:true/stats
Python 클라이언트로는 이렇게 호출해요:
response = client.nodes.info(
metric = "stats",
node_id = "data:true"
)
해석 메커니즘의 순서 (Order of resolution mechanisms)
해석 메커니즘의 순서는 순차 적용되고, 각각은 노드를 추가하거나 제거할 수 있어요. 다음 예시는 서로 다른 결과를 만들어요.
클러스터 매니저 노드를 제외한 모든 노드의 통계를 가져오려면:
GET /_nodes/_all,cluster_manager:false/stats
Python 클라이언트로는 이렇게 호출해요:
response = client.nodes.info(
metric = "stats",
node_id = "_all,cluster_manager:false"
)
하지만 해석 메커니즘 순서를 바꾸면 결과에 클러스터 매니저 노드를 포함한 모든 클러스터 노드가 포함돼요:
GET /_nodes/cluster_manager:false,_all/stats
Python 클라이언트로는 이렇게 호출해요:
response = client.nodes.info(
metric = "stats",
node_id = "cluster_manager:false,_all"
)
Nodes API 작업 (Nodes API operations)
다음과 같은 nodes API 작업을 사용할 수 있어요.