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 작업을 사용할 수 있어요.

더 알아보기