<commit_before>[[cluster-nodes-info]]
== Nodes Info

The cluster nodes info API allows to retrieve one or more (or all) of
the cluster nodes information.

[source,js]
--------------------------------------------------
curl -XGET 'http://localhost:9200/_nodes'
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2'
--------------------------------------------------

The first command retrieves information of all the nodes in the cluster.
The second command selectively retrieves nodes information of only
`nodeId1` and `nodeId2`. All the nodes selective options are explained
<<cluster-nodes,here>>.

By default, it just returns all attributes and core settings for a node.
It also allows to get only information on `settings`, `os`, `process`, `jvm`,
`thread_pool`, `transport`, `http` and `plugins`:

[source,js]
--------------------------------------------------
curl -XGET 'http://localhost:9200/_nodes/process'
curl -XGET 'http://localhost:9200/_nodes/_all/process'
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/jvm,process'
# same as above
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/info/jvm,process'

curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/_all
--------------------------------------------------

The `_all` flag can be set to return all the information - or you can simply omit it.

[float]
[[os-info]]
==== Operating System information

The `os` flag can be set to retrieve information that concern
the operating system:

`os.refresh_interval_in_millis`::
	Refresh interval for the OS statistics

`os.name`::
	Name of the operating system (ex: Linux, Windows, Mac OS X)

`os.arch`::
	Name of the JVM architecture (ex: amd64, x86)

`os.version`::
	Version of the operating system

`os.available_processors`::
	Number of processors available to the Java virtual machine

[float]
[[process-info]]
==== Process information

The `process` flag can be set to retrieve information that concern
the current running process:

`process.refresh_interval_in_millis`::
	Refresh interval for the process statistics

`process.id`::
	Process identifier (PID)

`process.mlockall`::
	Indicates if the process address space has been successfully locked in memory

[float]
[[plugins-info]]
==== Plugins information

`plugins` - if set, the result will contain details about the loaded
plugins per node:

* `name`: plugin name
* `description`: plugin description if any
* `site`: `true` if the plugin is a site plugin
* `jvm`: `true` if the plugin is a plugin running in the JVM
* `url`: URL if the plugin is a site plugin

The result will look similar to:

[source,js]
--------------------------------------------------
{
  "cluster_name" : "test-cluster-MacBook-Air-de-David.local",
  "nodes" : {
    "hJLXmY_NTrCytiIMbX4_1g" : {
      "name" : "node4",
      "transport_address" : "inet[/172.18.58.139:9303]",
      "hostname" : "MacBook-Air-de-David.local",
      "version" : "0.90.0.Beta2-SNAPSHOT",
      "http_address" : "inet[/172.18.58.139:9203]",
      "plugins" : [ {
        "name" : "test-plugin",
        "description" : "test-plugin description",
        "site" : true,
        "jvm" : false
      }, {
        "name" : "test-no-version-plugin",
        "description" : "test-no-version-plugin description",
        "site" : true,
        "jvm" : false
      }, {
        "name" : "dummy",
        "description" : "No description found for dummy.",
        "url" : "/_plugin/dummy/",
        "site" : false,
        "jvm" : true
      } ]
    }
  }
}
--------------------------------------------------

if your `plugin` data is subject to change use
`plugins.info_refresh_interval` to change or disable the caching
interval:

[source,js]
--------------------------------------------------
# Change cache to 20 seconds
plugins.info_refresh_interval: 20s

# Infinite cache
plugins.info_refresh_interval: -1

# Disable cache
plugins.info_refresh_interval: 0
--------------------------------------------------<commit_msg>Remove obsolete plugins.info_refresh_interval setting<commit_after>[[cluster-nodes-info]]
== Nodes Info

The cluster nodes info API allows to retrieve one or more (or all) of
the cluster nodes information.

[source,js]
--------------------------------------------------
curl -XGET 'http://localhost:9200/_nodes'
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2'
--------------------------------------------------

The first command retrieves information of all the nodes in the cluster.
The second command selectively retrieves nodes information of only
`nodeId1` and `nodeId2`. All the nodes selective options are explained
<<cluster-nodes,here>>.

By default, it just returns all attributes and core settings for a node.
It also allows to get only information on `settings`, `os`, `process`, `jvm`,
`thread_pool`, `transport`, `http` and `plugins`:

[source,js]
--------------------------------------------------
curl -XGET 'http://localhost:9200/_nodes/process'
curl -XGET 'http://localhost:9200/_nodes/_all/process'
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/jvm,process'
# same as above
curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/info/jvm,process'

curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/_all
--------------------------------------------------

The `_all` flag can be set to return all the information - or you can simply omit it.

[float]
[[os-info]]
==== Operating System information

The `os` flag can be set to retrieve information that concern
the operating system:

`os.refresh_interval_in_millis`::
	Refresh interval for the OS statistics

`os.name`::
	Name of the operating system (ex: Linux, Windows, Mac OS X)

`os.arch`::
	Name of the JVM architecture (ex: amd64, x86)

`os.version`::
	Version of the operating system

`os.available_processors`::
	Number of processors available to the Java virtual machine

[float]
[[process-info]]
==== Process information

The `process` flag can be set to retrieve information that concern
the current running process:

`process.refresh_interval_in_millis`::
	Refresh interval for the process statistics

`process.id`::
	Process identifier (PID)

`process.mlockall`::
	Indicates if the process address space has been successfully locked in memory

[float]
[[plugins-info]]
==== Plugins information

`plugins` - if set, the result will contain details about the loaded
plugins per node:

* `name`: plugin name
* `description`: plugin description if any
* `site`: `true` if the plugin is a site plugin
* `jvm`: `true` if the plugin is a plugin running in the JVM
* `url`: URL if the plugin is a site plugin

The result will look similar to:

[source,js]
--------------------------------------------------
{
  "cluster_name" : "test-cluster-MacBook-Air-de-David.local",
  "nodes" : {
    "hJLXmY_NTrCytiIMbX4_1g" : {
      "name" : "node4",
      "transport_address" : "inet[/172.18.58.139:9303]",
      "hostname" : "MacBook-Air-de-David.local",
      "version" : "0.90.0.Beta2-SNAPSHOT",
      "http_address" : "inet[/172.18.58.139:9203]",
      "plugins" : [ {
        "name" : "test-plugin",
        "description" : "test-plugin description",
        "site" : true,
        "jvm" : false
      }, {
        "name" : "test-no-version-plugin",
        "description" : "test-no-version-plugin description",
        "site" : true,
        "jvm" : false
      }, {
        "name" : "dummy",
        "description" : "No description found for dummy.",
        "url" : "/_plugin/dummy/",
        "site" : false,
        "jvm" : true
      } ]
    }
  }
}
--------------------------------------------------
{'fraction_non_alphanumeric': 0.20655044902271527, 'fraction_numerical': 0.021394611727416798, 'mean_word_length': 2.538785046728972, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5617405', 'n_tokens_mistral': 2317, 'n_tokens_neox': 2205, 'n_words': 720}