module Elasticsearch::API::Nodes::Actions

Public Instance Methods

clear_repositories_metering_archive(arguments = {}) click to toggle source

Removes the archived repositories metering information present in the cluster. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

@option arguments [List] :node_id Comma-separated list of node IDs or names used to limit returned information. @option arguments [Long] :max_archive_version Specifies the maximum archive_version to be cleared from the archive. @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/clear-repositories-metering-archive-api.html

# File lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb, line 37
def clear_repositories_metering_archive(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.clear_repositories_metering_archive' }

  defined_params = %i[node_id max_archive_version].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'node_id' missing" unless arguments[:node_id]
  raise ArgumentError, "Required argument 'max_archive_version' missing" unless arguments[:max_archive_version]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  _max_archive_version = arguments.delete(:max_archive_version)

  method = Elasticsearch::API::HTTP_DELETE
  path   = "_nodes/#{Utils.__listify(_node_id)}/_repositories_metering/#{Utils.__listify(_max_archive_version)}"
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
get_repositories_metering_info(arguments = {}) click to toggle source

Returns cluster repositories metering information. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

@option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information. @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/get-repositories-metering-api.html

# File lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb, line 36
def get_repositories_metering_info(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.get_repositories_metering_info' }

  defined_params = [:node_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'node_id' missing" unless arguments[:node_id]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  method = Elasticsearch::API::HTTP_GET
  path   = "_nodes/#{Utils.__listify(_node_id)}/_repositories_metering"
  params = {}

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
hot_threads(arguments = {}) click to toggle source

Returns information about hot threads on each node in the cluster.

@option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use ‘_local` to return information from the node you’re connecting to, leave empty to get information from all nodes @option arguments [Time] :interval The interval for the second sampling of threads @option arguments [Number] :snapshots Number of samples of thread stacktrace (default: 10) @option arguments [Number] :threads Specify the number of threads to provide information for (default: 3) @option arguments [Boolean] :ignore_idle_threads Don’t show threads that are in known-idle places, such as waiting on a socket select or pulling from an empty task queue (default: true) @option arguments [String] :type The type to sample (default: cpu) (options: cpu, wait, block, mem) @option arguments [String] :sort The sort order for ‘cpu’ type (default: total) (options: cpu, total) @option arguments [Time] :timeout Explicit operation timeout @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/cluster-nodes-hot-threads.html

# File lib/elasticsearch/api/actions/nodes/hot_threads.rb, line 39
def hot_threads(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.hot_threads' }

  defined_params = [:node_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  method = Elasticsearch::API::HTTP_GET
  path   = if _node_id
             "_nodes/#{Utils.__listify(_node_id)}/hot_threads"
           else
             '_nodes/hot_threads'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
info(arguments = {}) click to toggle source

Returns information about nodes in the cluster.

@option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use ‘_local` to return information from the node you’re connecting to, leave empty to get information from all nodes @option arguments [List] :metric A comma-separated list of metrics you wish returned. Use ‘_all` to retrieve all metrics and `_none` to retrieve the node identity without any additional metrics. (options: settings, os, process, jvm, thread_pool, transport, http, plugins, ingest, indices, aggregations, _all, _none) @option arguments [Boolean] :flat_settings Return settings in flat format (default: false) @option arguments [Time] :timeout Explicit operation timeout @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/cluster-nodes-info.html

# File lib/elasticsearch/api/actions/nodes/info.rb, line 35
def info(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.info' }

  defined_params = %i[node_id metric].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  _metric = arguments.delete(:metric)

  method = Elasticsearch::API::HTTP_GET
  path   = if _node_id && _metric
             "_nodes/#{Utils.__listify(_node_id)}/#{Utils.__listify(_metric)}"
           elsif _node_id
             "_nodes/#{Utils.__listify(_node_id)}"
           elsif _metric
             "_nodes/#{Utils.__listify(_metric)}"
           else
             '_nodes'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
reload_secure_settings(arguments = {}) click to toggle source

Reloads secure settings.

@option arguments [List] :node_id A comma-separated list of node IDs to span the reload/reinit call. Should stay empty because reloading usually involves all cluster nodes. @option arguments [Time] :timeout Explicit operation timeout @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body An object containing the password for the elasticsearch keystore

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/secure-settings.html#reloadable-secure-settings

# File lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb, line 34
def reload_secure_settings(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.reload_secure_settings' }

  defined_params = [:node_id].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = arguments.delete(:body)

  _node_id = arguments.delete(:node_id)

  method = Elasticsearch::API::HTTP_POST
  path   = if _node_id
             "_nodes/#{Utils.__listify(_node_id)}/reload_secure_settings"
           else
             '_nodes/reload_secure_settings'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
stats(arguments = {}) click to toggle source

Returns statistical information about nodes in the cluster.

@option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use ‘_local` to return information from the node you’re connecting to, leave empty to get information from all nodes @option arguments [List] :metric Limit the information returned to the specified metrics (options: _all, breaker, fs, http, indices, jvm, os, process, thread_pool, transport, discovery, indexing_pressure) @option arguments [List] :index_metric Limit the information returned for ‘indices` metric to the specific index metrics. Isn’t used if ‘indices` (or `all`) metric isn’t specified. (options: _all, completion, docs, fielddata, query_cache, flush, get, indexing, merge, request_cache, refresh, search, segments, store, warmer, bulk, shard_stats) @option arguments [List] :completion_fields A comma-separated list of fields for the ‘completion` index metric (supports wildcards) @option arguments [List] :fielddata_fields A comma-separated list of fields for the `fielddata` index metric (supports wildcards) @option arguments [List] :fields A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards) @option arguments [Boolean] :groups A comma-separated list of search groups for `search` index metric @option arguments [String] :level Return indices stats aggregated at index, node or shard level (options: indices, node, shards) @option arguments [List] :types A comma-separated list of document types for the `indexing` index metric @option arguments [Time] :timeout Explicit operation timeout @option arguments [Boolean] :include_segment_file_sizes Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested) @option arguments [Boolean] :include_unloaded_segments If set to true segment stats will include stats for segments that are not currently loaded into memory @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/cluster-nodes-stats.html

# File lib/elasticsearch/api/actions/nodes/stats.rb, line 43
def stats(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.stats' }

  defined_params = %i[node_id metric index_metric].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  _metric = arguments.delete(:metric)

  _index_metric = arguments.delete(:index_metric)

  method = Elasticsearch::API::HTTP_GET
  path   = if _node_id && _metric && _index_metric
             "_nodes/#{Utils.__listify(_node_id)}/stats/#{Utils.__listify(_metric)}/#{Utils.__listify(_index_metric)}"
           elsif _metric && _index_metric
             "_nodes/stats/#{Utils.__listify(_metric)}/#{Utils.__listify(_index_metric)}"
           elsif _node_id && _metric
             "_nodes/#{Utils.__listify(_node_id)}/stats/#{Utils.__listify(_metric)}"
           elsif _node_id
             "_nodes/#{Utils.__listify(_node_id)}/stats"
           elsif _metric
             "_nodes/stats/#{Utils.__listify(_metric)}"
           else
             '_nodes/stats'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end
usage(arguments = {}) click to toggle source

Returns low-level information about REST actions usage on nodes.

@option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use ‘_local` to return information from the node you’re connecting to, leave empty to get information from all nodes @option arguments [List] :metric Limit the information returned to the specified metrics (options: _all, rest_actions) @option arguments [Time] :timeout Explicit operation timeout @option arguments [Hash] :headers Custom HTTP headers

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/cluster-nodes-usage.html

# File lib/elasticsearch/api/actions/nodes/usage.rb, line 34
def usage(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'nodes.usage' }

  defined_params = %i[node_id metric].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = nil

  _node_id = arguments.delete(:node_id)

  _metric = arguments.delete(:metric)

  method = Elasticsearch::API::HTTP_GET
  path   = if _node_id && _metric
             "_nodes/#{Utils.__listify(_node_id)}/usage/#{Utils.__listify(_metric)}"
           elsif _node_id
             "_nodes/#{Utils.__listify(_node_id)}/usage"
           elsif _metric
             "_nodes/usage/#{Utils.__listify(_metric)}"
           else
             '_nodes/usage'
           end
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end