ノード統計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

  1. resp = client.nodes.stats(
  2. metric="indices",
  3. )
  4. print(resp)
  5. resp1 = client.nodes.stats(
  6. metric="os,process",
  7. )
  8. print(resp1)
  9. resp2 = client.nodes.stats(
  10. node_id="10.0.0.1",
  11. metric="process",
  12. )
  13. print(resp2)

Ruby

  1. response = client.nodes.stats(
  2. metric: 'indices'
  3. )
  4. puts response
  5. response = client.nodes.stats(
  6. metric: 'os,process'
  7. )
  8. puts response
  9. response = client.nodes.stats(
  10. node_id: '10.0.0.1',
  11. metric: 'process'
  12. )
  13. puts response

Js

  1. const response = await client.nodes.stats({
  2. metric: "indices",
  3. });
  4. console.log(response);
  5. const response1 = await client.nodes.stats({
  6. metric: "os,process",
  7. });
  8. console.log(response1);
  9. const response2 = await client.nodes.stats({
  10. node_id: "10.0.0.1",
  11. metric: "process",
  12. });
  13. console.log(response2);

Console

  1. # インデックスのみを返す
  2. GET /_nodes/stats/indices
  3. # OSとプロセスのみを返す
  4. GET /_nodes/stats/os,process
  5. # IPアドレス10.0.0.1のノードのプロセスのみを返す
  6. GET /_nodes/10.0.0.1/stats/process

すべての統計は/_nodes/stats/_allまたは/_nodes/stats?metric=_allを介して明示的に要求できます。

インデックス統計に関する情報はnodeindices、またはshardsレベルで取得できます。

Python

  1. resp = client.nodes.stats(
  2. metric="indices",
  3. index_metric="fielddata",
  4. fields="field1,field2",
  5. )
  6. print(resp)
  7. resp1 = client.nodes.stats(
  8. metric="indices",
  9. index_metric="fielddata",
  10. level="indices",
  11. fields="field1,field2",
  12. )
  13. print(resp1)
  14. resp2 = client.nodes.stats(
  15. metric="indices",
  16. index_metric="fielddata",
  17. level="shards",
  18. fields="field1,field2",
  19. )
  20. print(resp2)
  21. resp3 = client.nodes.stats(
  22. metric="indices",
  23. index_metric="fielddata",
  24. fields="field*",
  25. )
  26. print(resp3)

Ruby

  1. response = client.nodes.stats(
  2. metric: 'indices',
  3. index_metric: 'fielddata',
  4. fields: 'field1,field2'
  5. )
  6. puts response
  7. response = client.nodes.stats(
  8. metric: 'indices',
  9. index_metric: 'fielddata',
  10. level: 'indices',
  11. fields: 'field1,field2'
  12. )
  13. puts response
  14. response = client.nodes.stats(
  15. metric: 'indices',
  16. index_metric: 'fielddata',
  17. level: 'shards',
  18. fields: 'field1,field2'
  19. )
  20. puts response
  21. response = client.nodes.stats(
  22. metric: 'indices',
  23. index_metric: 'fielddata',
  24. fields: 'field*'
  25. )
  26. puts response

Js

  1. const response = await client.nodes.stats({
  2. metric: "indices",
  3. index_metric: "fielddata",
  4. fields: "field1,field2",
  5. });
  6. console.log(response);
  7. const response1 = await client.nodes.stats({
  8. metric: "indices",
  9. index_metric: "fielddata",
  10. level: "indices",
  11. fields: "field1,field2",
  12. });
  13. console.log(response1);
  14. const response2 = await client.nodes.stats({
  15. metric: "indices",
  16. index_metric: "fielddata",
  17. level: "shards",
  18. fields: "field1,field2",
  19. });
  20. console.log(response2);
  21. const response3 = await client.nodes.stats({
  22. metric: "indices",
  23. index_metric: "fielddata",
  24. fields: "field*",
  25. });
  26. console.log(response3);

Console

  1. # ノードごとに要約されたフィールドデータ
  2. GET /_nodes/stats/indices/fielddata?fields=field1,field2
  3. # ノードとインデックスごとに要約されたフィールドデータ
  4. GET /_nodes/stats/indices/fielddata?level=indices&fields=field1,field2
  5. # ノード、インデックス、およびシャードごとに要約されたフィールドデータ
  6. GET /_nodes/stats/indices/fielddata?level=shards&fields=field1,field2
  7. # フィールド名にワイルドカードを使用できます
  8. GET /_nodes/stats/indices/fielddata?fields=field*

このノードで実行された検索の検索グループに関する統計を取得できます。

Python

  1. resp = client.nodes.stats(
  2. groups="_all",
  3. )
  4. print(resp)
  5. resp1 = client.nodes.stats(
  6. metric="indices",
  7. groups="foo,bar",
  8. )
  9. print(resp1)

Ruby

  1. response = client.nodes.stats(
  2. groups: '_all'
  3. )
  4. puts response
  5. response = client.nodes.stats(
  6. metric: 'indices',
  7. groups: 'foo,bar'
  8. )
  9. puts response

Js

  1. const response = await client.nodes.stats({
  2. groups: "_all",
  3. });
  4. console.log(response);
  5. const response1 = await client.nodes.stats({
  6. metric: "indices",
  7. groups: "foo,bar",
  8. });
  9. console.log(response1);

Console

  1. # すべてのグループとすべての統計
  2. GET /_nodes/stats?groups=_all
  3. # インデックス統計からの一部のグループ
  4. GET /_nodes/stats/indices?groups=foo,bar

インジェスト統計のみを取得

インジェスト関連のノード統計のみを返すには、<metric>パスパラメータをingestに設定し、filter_pathクエリパラメータを使用します。

Python

  1. resp = client.nodes.stats(
  2. metric="ingest",
  3. filter_path="nodes.*.ingest",
  4. )
  5. print(resp)

Ruby

  1. response = client.nodes.stats(
  2. metric: 'ingest',
  3. filter_path: 'nodes.*.ingest'
  4. )
  5. puts response

Js

  1. const response = await client.nodes.stats({
  2. metric: "ingest",
  3. filter_path: "nodes.*.ingest",
  4. });
  5. console.log(response);

コンソール

  1. GET /_nodes/stats/ingest?filter_path=nodes.*.ingest
  1. #### Python
  2. ``````python
  3. resp = client.nodes.stats(
  4. metric="ingest",
  5. filter_path="nodes.*.ingest",
  6. )
  7. print(resp)
  8. `

Ruby

  1. response = client.nodes.stats(
  2. metric: 'ingest',
  3. filter_path: 'nodes.*.ingest'
  4. )
  5. puts response

Js

  1. const response = await client.nodes.stats({
  2. metric: "ingest",
  3. filter_path: "nodes.*.ingest",
  4. });
  5. console.log(response);

コンソール

  1. GET /_nodes/stats?metric=ingest&filter_path=nodes.*.ingest

応答をさらに絞り込むには、filter_pathの値を変更します。たとえば、次のリクエストはインジェストパイプラインの統計のみを返します。

Python

  1. resp = client.nodes.stats(
  2. metric="ingest",
  3. filter_path="nodes.*.ingest.pipelines",
  4. )
  5. print(resp)

Ruby

  1. response = client.nodes.stats(
  2. metric: 'ingest',
  3. filter_path: 'nodes.*.ingest.pipelines'
  4. )
  5. puts response

Js

  1. const response = await client.nodes.stats({
  2. metric: "ingest",
  3. filter_path: "nodes.*.ingest.pipelines",
  4. });
  5. console.log(response);

コンソール

  1. GET /_nodes/stats?metric=ingest&filter_path=nodes.*.ingest.pipelines