ノード統計API
クラスターのノード統計を返します。
リクエスト
GET /_nodes/stats
GET /_nodes/<node_id>/stats
GET /_nodes/stats/<metric>
GET /_nodes/<node_id>/stats/<metric>
GET /_nodes/stats/<metric>/<index_metric>
GET /_nodes/<node_id>/stats/<metric>/<index_metric>
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには
monitor
またはmanage
クラスター権限が必要です。
説明
クラスターのノード統計APIを使用して、クラスター内のノードの統計を取得できます。
すべてのノード選択オプションはこちらで説明されています。
デフォルトでは、すべての統計が返されます。メトリクスを使用して返される情報を制限できます。
パスパラメータ
<metric>
- (オプション、文字列)返される情報を特定のメトリクスに制限します。以下のオプションのカンマ区切りリスト:
adaptive_selection
- 適応レプリカ選択に関する統計。
allocations
- 割り当てられたシャードに関する統計
breaker
- フィールドデータサーキットブレーカーに関する統計。
discovery
- 発見に関する統計。
fs
- ファイルシステム情報、データパス、空きディスクスペース、読み取り/書き込み統計。
http
- HTTP接続情報。
indexing_pressure
- ノードのインデックス負荷と関連する拒否に関する統計。
indices
- サイズ、ドキュメント数、インデックス作成および削除時間、検索時間、フィールドキャッシュサイズ、マージおよびフラッシュに関するインデックス統計。
ingest
- インジェスト前処理に関する統計。
jvm
- JVM統計、メモリプール情報、ガベージコレクション、バッファプール、読み込まれた/読み込まれていないクラスの数。
os
- オペレーティングシステム統計、負荷平均、メモリ、スワップ。
process
- プロセス統計、メモリ消費、CPU使用率、オープンファイルディスクリプタ。
repositories
- スナップショットリポジトリに関する統計。
thread_pool
- 各スレッドプールに関する統計、現在のサイズ、キュー、拒否されたタスクを含む。
transport
- クラスター通信における送信および受信バイトに関するトランスポート統計。
<index_metric>
- (オプション、文字列)
indices
メトリクスに対して返される情報を特定のインデックスメトリクスに制限します。indices
(またはall
)メトリクスが指定されている場合にのみ使用できます。サポートされているメトリクスは:bulk
completion
docs
fielddata
flush
get
indexing
mappings
merge
query_cache
recovery
refresh
request_cache
search
segments
shard_stats
store
translog
warmer
dense_vector
sparse_vector
<node_id>
- (オプション、文字列)返される情報を制限するために使用されるノードIDまたは名前のカンマ区切りリスト。
クエリパラメータ
completion_fields
- (オプション、文字列)
fielddata
およびsuggest
統計に含めるフィールドのカンマ区切りリストまたはワイルドカード式。 fielddata_fields
- (オプション、文字列)
fielddata
統計に含めるフィールドのカンマ区切りリストまたはワイルドカード式。 fields
- (オプション、文字列)統計に含めるフィールドのカンマ区切りリストまたはワイルドカード式。
completion_fields
またはfielddata_fields
パラメータで特定のフィールドリストが提供されない限り、デフォルトリストとして使用されます。 groups
- (オプション、文字列)
search
統計に含める検索グループのカンマ区切りリスト。 level
- (オプション、文字列)統計がクラスター、インデックス、またはシャードレベルで集約されるかどうかを示します。
有効な値は:cluster
indices
shards
types
- (オプション、文字列)
indexing
インデックスメトリクスのドキュメントタイプのカンマ区切りリスト。 timeout
- (オプション、時間単位)各ノードが応答するまでの待機時間。ノードがタイムアウトが切れる前に応答しない場合、その情報は応答に含まれません。ただし、タイムアウトしたノードは応答の
_nodes.failed
プロパティに含まれます。デフォルトではタイムアウトなし。 include_segment_file_sizes
- (オプション、ブール値)
true
の場合、呼び出しは各Luceneインデックスファイルの集約ディスク使用量を報告します(セグメント統計が要求されている場合のみ適用されます)。デフォルトはfalse
。 include_unloaded_segments
- (オプション、ブール値)
true
の場合、応答にはメモリにロードされていないセグメントの情報が含まれます。デフォルトはfalse
。
ノード統計API
クラスターのノード統計を返します。
例
Python
resp = client.nodes.stats(
metric="indices",
)
print(resp)
resp1 = client.nodes.stats(
metric="os,process",
)
print(resp1)
resp2 = client.nodes.stats(
node_id="10.0.0.1",
metric="process",
)
print(resp2)
Ruby
response = client.nodes.stats(
metric: 'indices'
)
puts response
response = client.nodes.stats(
metric: 'os,process'
)
puts response
response = client.nodes.stats(
node_id: '10.0.0.1',
metric: 'process'
)
puts response
Js
const response = await client.nodes.stats({
metric: "indices",
});
console.log(response);
const response1 = await client.nodes.stats({
metric: "os,process",
});
console.log(response1);
const response2 = await client.nodes.stats({
node_id: "10.0.0.1",
metric: "process",
});
console.log(response2);
Console
# インデックスのみを返す
GET /_nodes/stats/indices
# OSとプロセスのみを返す
GET /_nodes/stats/os,process
# IPアドレス10.0.0.1のノードのプロセスのみを返す
GET /_nodes/10.0.0.1/stats/process
すべての統計は/_nodes/stats/_all
または/_nodes/stats?metric=_all
を介して明示的に要求できます。
インデックス統計に関する情報はnode
、indices
、またはshards
レベルで取得できます。
Python
resp = client.nodes.stats(
metric="indices",
index_metric="fielddata",
fields="field1,field2",
)
print(resp)
resp1 = client.nodes.stats(
metric="indices",
index_metric="fielddata",
level="indices",
fields="field1,field2",
)
print(resp1)
resp2 = client.nodes.stats(
metric="indices",
index_metric="fielddata",
level="shards",
fields="field1,field2",
)
print(resp2)
resp3 = client.nodes.stats(
metric="indices",
index_metric="fielddata",
fields="field*",
)
print(resp3)
Ruby
response = client.nodes.stats(
metric: 'indices',
index_metric: 'fielddata',
fields: 'field1,field2'
)
puts response
response = client.nodes.stats(
metric: 'indices',
index_metric: 'fielddata',
level: 'indices',
fields: 'field1,field2'
)
puts response
response = client.nodes.stats(
metric: 'indices',
index_metric: 'fielddata',
level: 'shards',
fields: 'field1,field2'
)
puts response
response = client.nodes.stats(
metric: 'indices',
index_metric: 'fielddata',
fields: 'field*'
)
puts response
Js
const response = await client.nodes.stats({
metric: "indices",
index_metric: "fielddata",
fields: "field1,field2",
});
console.log(response);
const response1 = await client.nodes.stats({
metric: "indices",
index_metric: "fielddata",
level: "indices",
fields: "field1,field2",
});
console.log(response1);
const response2 = await client.nodes.stats({
metric: "indices",
index_metric: "fielddata",
level: "shards",
fields: "field1,field2",
});
console.log(response2);
const response3 = await client.nodes.stats({
metric: "indices",
index_metric: "fielddata",
fields: "field*",
});
console.log(response3);
Console
# ノードごとに要約されたフィールドデータ
GET /_nodes/stats/indices/fielddata?fields=field1,field2
# ノードとインデックスごとに要約されたフィールドデータ
GET /_nodes/stats/indices/fielddata?level=indices&fields=field1,field2
# ノード、インデックス、およびシャードごとに要約されたフィールドデータ
GET /_nodes/stats/indices/fielddata?level=shards&fields=field1,field2
# フィールド名にワイルドカードを使用できます
GET /_nodes/stats/indices/fielddata?fields=field*
このノードで実行された検索の検索グループに関する統計を取得できます。
Python
resp = client.nodes.stats(
groups="_all",
)
print(resp)
resp1 = client.nodes.stats(
metric="indices",
groups="foo,bar",
)
print(resp1)
Ruby
response = client.nodes.stats(
groups: '_all'
)
puts response
response = client.nodes.stats(
metric: 'indices',
groups: 'foo,bar'
)
puts response
Js
const response = await client.nodes.stats({
groups: "_all",
});
console.log(response);
const response1 = await client.nodes.stats({
metric: "indices",
groups: "foo,bar",
});
console.log(response1);
Console
# すべてのグループとすべての統計
GET /_nodes/stats?groups=_all
# インデックス統計からの一部のグループ
GET /_nodes/stats/indices?groups=foo,bar
インジェスト統計のみを取得
インジェスト関連のノード統計のみを返すには、<metric>
パスパラメータをingest
に設定し、filter_path
クエリパラメータを使用します。
Python
resp = client.nodes.stats(
metric="ingest",
filter_path="nodes.*.ingest",
)
print(resp)
Ruby
response = client.nodes.stats(
metric: 'ingest',
filter_path: 'nodes.*.ingest'
)
puts response
Js
const response = await client.nodes.stats({
metric: "ingest",
filter_path: "nodes.*.ingest",
});
console.log(response);
コンソール
GET /_nodes/stats/ingest?filter_path=nodes.*.ingest
#### Python
``````python
resp = client.nodes.stats(
metric="ingest",
filter_path="nodes.*.ingest",
)
print(resp)
`
Ruby
response = client.nodes.stats(
metric: 'ingest',
filter_path: 'nodes.*.ingest'
)
puts response
Js
const response = await client.nodes.stats({
metric: "ingest",
filter_path: "nodes.*.ingest",
});
console.log(response);
コンソール
GET /_nodes/stats?metric=ingest&filter_path=nodes.*.ingest
応答をさらに絞り込むには、filter_path
の値を変更します。たとえば、次のリクエストはインジェストパイプラインの統計のみを返します。
Python
resp = client.nodes.stats(
metric="ingest",
filter_path="nodes.*.ingest.pipelines",
)
print(resp)
Ruby
response = client.nodes.stats(
metric: 'ingest',
filter_path: 'nodes.*.ingest.pipelines'
)
puts response
Js
const response = await client.nodes.stats({
metric: "ingest",
filter_path: "nodes.*.ingest.pipelines",
});
console.log(response);
コンソール
GET /_nodes/stats?metric=ingest&filter_path=nodes.*.ingest.pipelines