summaryrefslogtreecommitdiff
path: root/docs/reference/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'docs/reference/cluster')
-rw-r--r--docs/reference/cluster/health.asciidoc87
-rw-r--r--docs/reference/cluster/nodes-hot-threads.asciidoc16
-rw-r--r--docs/reference/cluster/nodes-info.asciidoc93
-rw-r--r--docs/reference/cluster/nodes-shutdown.asciidoc57
-rw-r--r--docs/reference/cluster/nodes-stats.asciidoc97
-rw-r--r--docs/reference/cluster/pending.asciidoc44
-rw-r--r--docs/reference/cluster/reroute.asciidoc68
-rw-r--r--docs/reference/cluster/state.asciidoc67
-rw-r--r--docs/reference/cluster/stats.asciidoc168
-rw-r--r--docs/reference/cluster/update-settings.asciidoc209
10 files changed, 906 insertions, 0 deletions
diff --git a/docs/reference/cluster/health.asciidoc b/docs/reference/cluster/health.asciidoc
new file mode 100644
index 0000000..48108e1
--- /dev/null
+++ b/docs/reference/cluster/health.asciidoc
@@ -0,0 +1,87 @@
+[[cluster-health]]
+== Cluster Health
+
+The cluster health API allows to get a very simple status on the health
+of the cluster.
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
+{
+ "cluster_name" : "testcluster",
+ "status" : "green",
+ "timed_out" : false,
+ "number_of_nodes" : 2,
+ "number_of_data_nodes" : 2,
+ "active_primary_shards" : 5,
+ "active_shards" : 10,
+ "relocating_shards" : 0,
+ "initializing_shards" : 0,
+ "unassigned_shards" : 0
+}
+--------------------------------------------------
+
+The API can also be executed against one or more indices to get just the
+specified indices health:
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/health/test1,test2'
+--------------------------------------------------
+
+The cluster health status is: `green`, `yellow` or `red`. On the shard
+level, a `red` status indicates that the specific shard is not allocated
+in the cluster, `yellow` means that the primary shard is allocated but
+replicas are not, and `green` means that all shards are allocated. The
+index level status is controlled by the worst shard status. The cluster
+status is controlled by the worst index status.
+
+One of the main benefits of the API is the ability to wait until the
+cluster reaches a certain high water-mark health level. For example, the
+following will wait for 50 seconds for the cluster to reach the `yellow`
+level (if it reaches the `green` or `yellow` status before 50 seconds elapse,
+it will return at that point):
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/health?wait_for_status=yellow&timeout=50s'
+--------------------------------------------------
+
+[float]
+[[request-params]]
+=== Request Parameters
+
+The cluster health API accepts the following request parameters:
+
+`level`::
+ Can be one of `cluster`, `indices` or `shards`. Controls the
+ details level of the health information returned. Defaults to `cluster`.
+
+`wait_for_status`::
+ One of `green`, `yellow` or `red`. Will wait (until
+ the timeout provided) until the status of the cluster changes to the one
+ provided. By default, will not wait for any status.
+
+`wait_for_relocating_shards`::
+ A number controlling to how many relocating
+ shards to wait for. Usually will be `0` to indicate to wait till all
+ relocation have happened. Defaults to not to wait.
+
+`wait_for_nodes`::
+ The request waits until the specified number `N` of
+ nodes is available. It also accepts `>=N`, `<=N`, `>N` and `<N`.
+ Alternatively, it is possible to use `ge(N)`, `le(N)`, `gt(N)` and
+ `lt(N)` notation.
+
+`timeout`::
+ A time based parameter controlling how long to wait if one of
+ the wait_for_XXX are provided. Defaults to `30s`.
+
+
+The following is an example of getting the cluster health at the
+`shards` level:
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/health/twitter?level=shards'
+--------------------------------------------------
diff --git a/docs/reference/cluster/nodes-hot-threads.asciidoc b/docs/reference/cluster/nodes-hot-threads.asciidoc
new file mode 100644
index 0000000..dc8b153
--- /dev/null
+++ b/docs/reference/cluster/nodes-hot-threads.asciidoc
@@ -0,0 +1,16 @@
+[[cluster-nodes-hot-threads]]
+== Nodes hot_threads
+
+An API allowing to get the current hot threads on each node in the
+cluster. Endpoints are `/_nodes/hot_threads`, and
+`/_nodes/{nodesIds}/hot_threads`.
+
+The output is plain text with a breakdown of each node's top hot
+threads. Parameters allowed are:
+
+[horizontal]
+`threads`:: number of hot threads to provide, defaults to 3.
+`interval`:: the interval to do the second sampling of threads.
+ Defaults to 500ms.
+`type`:: The type to sample, defaults to cpu, but supports wait and
+ block to see hot threads that are in wait or block state.
diff --git a/docs/reference/cluster/nodes-info.asciidoc b/docs/reference/cluster/nodes-info.asciidoc
new file mode 100644
index 0000000..96b5fb5
--- /dev/null
+++ b/docs/reference/cluster/nodes-info.asciidoc
@@ -0,0 +1,93 @@
+[[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`, `network`, `transport`, `http` and `plugin`:
+
+[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.
+
+`plugin` - 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
+--------------------------------------------------
diff --git a/docs/reference/cluster/nodes-shutdown.asciidoc b/docs/reference/cluster/nodes-shutdown.asciidoc
new file mode 100644
index 0000000..65030a3
--- /dev/null
+++ b/docs/reference/cluster/nodes-shutdown.asciidoc
@@ -0,0 +1,57 @@
+[[cluster-nodes-shutdown]]
+== Nodes Shutdown
+
+The nodes shutdown API allows to shutdown one or more (or all) nodes in
+the cluster. Here is an example of shutting the `_local` node the
+request is directed to:
+
+[source,js]
+--------------------------------------------------
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
+--------------------------------------------------
+
+Specific node(s) can be shutdown as well using their respective node ids
+(or other selective options as explained
+<<cluster-nodes,here>> .):
+
+[source,js]
+--------------------------------------------------
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown'
+--------------------------------------------------
+
+The master (of the cluster) can also be shutdown using:
+
+[source,js]
+--------------------------------------------------
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_master/_shutdown'
+--------------------------------------------------
+
+Finally, all nodes can be shutdown using one of the options below:
+
+[source,js]
+--------------------------------------------------
+$ curl -XPOST 'http://localhost:9200/_shutdown'
+
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_shutdown'
+
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_all/_shutdown'
+--------------------------------------------------
+
+[float]
+[[delay]]
+=== Delay
+
+By default, the shutdown will be executed after a 1 second delay (`1s`).
+The delay can be customized by setting the `delay` parameter in a time
+value format. For example:
+
+[source,js]
+--------------------------------------------------
+$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown?delay=10s'
+--------------------------------------------------
+
+[float]
+=== Disable Shutdown
+
+The shutdown API can be disabled by setting `action.disable_shutdown` in
+the node configuration.
diff --git a/docs/reference/cluster/nodes-stats.asciidoc b/docs/reference/cluster/nodes-stats.asciidoc
new file mode 100644
index 0000000..82d7b38
--- /dev/null
+++ b/docs/reference/cluster/nodes-stats.asciidoc
@@ -0,0 +1,97 @@
+[[cluster-nodes-stats]]
+== Nodes Stats
+
+[float]
+=== Nodes statistics
+
+The cluster nodes stats API allows to retrieve one or more (or all) of
+the cluster nodes statistics.
+
+[source,js]
+--------------------------------------------------
+curl -XGET 'http://localhost:9200/_nodes/stats'
+curl -XGET 'http://localhost:9200/_nodes/nodeId1,nodeId2/stats'
+--------------------------------------------------
+
+The first command retrieves stats of all the nodes in the cluster. The
+second command selectively retrieves nodes stats of only `nodeId1` and
+`nodeId2`. All the nodes selective options are explained
+<<cluster-nodes,here>>.
+
+By default, all stats are returned. You can limit this by combining any
+of `indices`, `os`, `process`, `jvm`, `network`, `transport`, `http`,
+`fs`, `breaker` and `thread_pool`. For example:
+
+[horizontal]
+`indices`::
+ Indices stats about size, document count, indexing and
+ deletion times, search times, field cache size , merges and flushes
+
+`fs`::
+ File system information, data path, free disk space, read/write
+ stats
+
+`http`::
+ HTTP connection information
+
+`jvm`::
+ JVM stats, memory pool information, garbage collection, buffer
+ pools
+
+`network`::
+ TCP information
+
+`os`::
+ Operating system stats, load average, cpu, mem, swap
+
+`process`::
+ Process statistics, memory consumption, cpu usage, open
+ file descriptors
+
+`thread_pool`::
+ Statistics about each thread pool, including current
+ size, queue and rejected tasks
+
+`transport`::
+ Transport statistics about sent and received bytes in
+ cluster communication
+
+`breaker`::
+ Statistics about the field data circuit breaker
+
+`clear`::
+ Clears all the flags (first). Useful, if you only want to
+ retrieve specific stats.
+
+[source,js]
+--------------------------------------------------
+# return indices and os
+curl -XGET 'http://localhost:9200/_nodes/stats/os'
+# return just os and process
+curl -XGET 'http://localhost:9200/_nodes/stats/os,process'
+# specific type endpoint
+curl -XGET 'http://localhost:9200/_nodes/stats/process'
+curl -XGET 'http://localhost:9200/_nodes/10.0.0.1/stats/process'
+--------------------------------------------------
+
+The `all` flag can be set to return all the stats.
+
+[float]
+[[field-data]]
+=== Field data statistics
+
+You can get information about field data memory usage on node
+level or on index level.
+
+[source,js]
+--------------------------------------------------
+# Node Stats
+curl localhost:9200/_nodes/stats/indices/field1,field2?pretty
+
+# Indices Stat
+curl localhost:9200/_stats/fielddata/field1,field2?pretty
+
+# You can use wildcards for field names
+curl localhost:9200/_stats/fielddata/field*?pretty
+curl localhost:9200/_nodes/stats/indices/field*?pretty
+--------------------------------------------------
diff --git a/docs/reference/cluster/pending.asciidoc b/docs/reference/cluster/pending.asciidoc
new file mode 100644
index 0000000..0e018e4
--- /dev/null
+++ b/docs/reference/cluster/pending.asciidoc
@@ -0,0 +1,44 @@
+[[cluster-pending]]
+== Pending cluster tasks
+
+The pending cluster tasks API returns a list of any cluster-level changes
+(e.g. create index, update mapping, allocate or fail shard) which have not yet
+been executed.
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/pending_tasks'
+--------------------------------------------------
+
+Usually this will return an empty list as cluster-level changes are usually
+fast. However if there are tasks queued up, the output will look something
+like this:
+
+[source,js]
+--------------------------------------------------
+{
+ "tasks": [
+ {
+ "insert_order": 101,
+ "priority": "URGENT",
+ "source": "create-index [foo_9], cause [api]",
+ "time_in_queue_millis": 86,
+ "time_in_queue": "86ms"
+ },
+ {
+ "insert_order": 46,
+ "priority": "HIGH",
+ "source": "shard-started ([foo_2][1], node[tMTocMvQQgGCkj7QDHl3OA], [P], s[INITIALIZING]), reason [after recovery from gateway]",
+ "time_in_queue_millis": 842,
+ "time_in_queue": "842ms"
+ },
+ {
+ "insert_order": 45,
+ "priority": "HIGH",
+ "source": "shard-started ([foo_2][0], node[tMTocMvQQgGCkj7QDHl3OA], [P], s[INITIALIZING]), reason [after recovery from gateway]",
+ "time_in_queue_millis": 858,
+ "time_in_queue": "858ms"
+ }
+ ]
+}
+--------------------------------------------------
diff --git a/docs/reference/cluster/reroute.asciidoc b/docs/reference/cluster/reroute.asciidoc
new file mode 100644
index 0000000..8348edb
--- /dev/null
+++ b/docs/reference/cluster/reroute.asciidoc
@@ -0,0 +1,68 @@
+[[cluster-reroute]]
+== Cluster Reroute
+
+The reroute command allows to explicitly execute a cluster reroute
+allocation command including specific commands. For example, a shard can
+be moved from one node to another explicitly, an allocation can be
+canceled, or an unassigned shard can be explicitly allocated on a
+specific node.
+
+Here is a short example of how a simple reroute API call:
+
+[source,js]
+--------------------------------------------------
+
+curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
+ "commands" : [ {
+ "move" :
+ {
+ "index" : "test", "shard" : 0,
+ "from_node" : "node1", "to_node" : "node2"
+ }
+ },
+ {
+ "allocate" : {
+ "index" : "test", "shard" : 1, "node" : "node3"
+ }
+ }
+ ]
+}'
+--------------------------------------------------
+
+An important aspect to remember is the fact that once when an allocation
+occurs, the cluster will aim at re-balancing its state back to an even
+state. For example, if the allocation includes moving a shard from
+`node1` to `node2`, in an `even` state, then another shard will be moved
+from `node2` to `node1` to even things out.
+
+The cluster can be set to disable allocations, which means that only the
+explicitly allocations will be performed. Obviously, only once all
+commands has been applied, the cluster will aim to be re-balance its
+state.
+
+Another option is to run the commands in `dry_run` (as a URI flag, or in
+the request body). This will cause the commands to apply to the current
+cluster state, and return the resulting cluster after the commands (and
+re-balancing) has been applied.
+
+The commands supported are:
+
+`move`::
+ Move a started shard from one node to another node. Accepts
+ `index` and `shard` for index name and shard number, `from_node` for the
+ node to move the shard `from`, and `to_node` for the node to move the
+ shard to.
+
+`cancel`::
+ Cancel allocation of a shard (or recovery). Accepts `index`
+ and `shard` for index name and shard number, and `node` for the node to
+ cancel the shard allocation on. It also accepts `allow_primary` flag to
+ explicitly specify that it is allowed to cancel allocation for a primary
+ shard.
+
+`allocate`::
+ Allocate an unassigned shard to a node. Accepts the
+ `index` and `shard` for index name and shard number, and `node` to
+ allocate the shard to. It also accepts `allow_primary` flag to
+ explicitly specify that it is allowed to explicitly allocate a primary
+ shard (might result in data loss).
diff --git a/docs/reference/cluster/state.asciidoc b/docs/reference/cluster/state.asciidoc
new file mode 100644
index 0000000..3a18be2
--- /dev/null
+++ b/docs/reference/cluster/state.asciidoc
@@ -0,0 +1,67 @@
+[[cluster-state]]
+== Cluster State
+
+The cluster state API allows to get a comprehensive state information of
+the whole cluster.
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/state'
+--------------------------------------------------
+
+By default, the cluster state request is routed to the master node, to
+ensure that the latest cluster state is returned.
+For debugging purposes, you can retrieve the cluster state local to a
+particular node by adding `local=true` to the query string.
+
+[float]
+=== Response Filters
+
+As the cluster state can grow (depending on the number of shards and indices, your mapping, templates),
+it is possible to filter the cluster state response specifying the parts in the URL.
+
+[source,js]
+--------------------------------------------------
+$ curl -XGET 'http://localhost:9200/_cluster/state/{metrics}/{indices}'
+--------------------------------------------------
+
+`metrics` can be a comma-separated list of
+
+`version`::
+ Shows the cluster state version.
+
+`master_node`::
+ Shows the elected `master_node` part of the response
+
+`nodes`::
+ Shows the `nodes` part of the response
+
+`routing_table`::
+ Shows the `routing_table` part of the response. If you supply a comma separated list of indices, the returned output will only contain the indices listed.
+
+`metadata`::
+ Shows the `metadata` part of the response. If you supply a comma separated list of indices, the returned output will only contain the indices listed.
+
+`blocks`::
+ Shows the `blocks` part of the response
+
+In addition the `index_templates` parameter can be specified, which returns the specified index templates only. This works only if the `metadata` is asked to be returned.
+
+A couple of example calls:
+
+[source,js]
+--------------------------------------------------
+# return only metadata and routing_table data for specified indices
+$ curl -XGET 'http://localhost:9200/_cluster/state/metadata,routing_table/foo,bar'
+
+# return everything for these two indices
+$ curl -XGET 'http://localhost:9200/_cluster/state/_all/foo,bar'
+
+# Return only blocks data
+$ curl -XGET 'http://localhost:9200/_cluster/state/blocks'
+
+# Return only metadata and a specific index_template
+# You should use the dedicated template endpoint for this
+$ curl -XGET 'http://localhost:9200/_cluster/state/metadata?index_templates=template_1'
+--------------------------------------------------
+
diff --git a/docs/reference/cluster/stats.asciidoc b/docs/reference/cluster/stats.asciidoc
new file mode 100644
index 0000000..43c3f7a
--- /dev/null
+++ b/docs/reference/cluster/stats.asciidoc
@@ -0,0 +1,168 @@
+[[cluster-stats]]
+== Cluster Stats
+
+The Cluster Stats API allows to retrieve statistics from a cluster wide perspective.
+The API returns basic index metrics (shard numbers, store size, memory usage) and
+information about the current nodes that form the cluster (number, roles, os, jvm
+versions, memory usage, cpu and installed plugins).
+
+[source,js]
+--------------------------------------------------
+curl -XGET 'http://localhost:9200/_cluster/stats?human'
+--------------------------------------------------
+
+Will return, for example:
+[source,js]
+--------------------------------------------------
+{
+ "cluster_name": "elasticsearch",
+ "status": "green",
+ "indices": {
+ "count": 3,
+ "shards": {
+ "total": 35,
+ "primaries": 15,
+ "replication": 1.333333333333333,
+ "index": {
+ "shards": {
+ "min": 10,
+ "max": 15,
+ "avg": 11.66666666666666
+ },
+ "primaries": {
+ "min": 5,
+ "max": 5,
+ "avg": 5
+ },
+ "replication": {
+ "min": 1,
+ "max": 2,
+ "avg": 1.3333333333333333
+ }
+ }
+ },
+ "docs": {
+ "count": 2,
+ "deleted": 0
+ },
+ "store": {
+ "size": "5.6kb",
+ "size_in_bytes": 5770,
+ "throttle_time": "0s",
+ "throttle_time_in_millis": 0
+ },
+ "fielddata": {
+ "memory_size": "0b",
+ "memory_size_in_bytes": 0,
+ "evictions": 0
+ },
+ "filter_cache": {
+ "memory_size": "0b",
+ "memory_size_in_bytes": 0,
+ "evictions": 0
+ },
+ "id_cache": {
+ "memory_size": "0b",
+ "memory_size_in_bytes": 0
+ },
+ "completion": {
+ "size": "0b",
+ "size_in_bytes": 0
+ },
+ "segments": {
+ "count": 2
+ }
+ },
+ "nodes": {
+ "count": {
+ "total": 2,
+ "master_only": 0,
+ "data_only": 0,
+ "master_data": 2,
+ "client": 0
+ },
+ "versions": [
+ "0.90.8"
+ ],
+ "os": {
+ "available_processors": 4,
+ "mem": {
+ "total": "8gb",
+ "total_in_bytes": 8589934592
+ },
+ "cpu": [
+ {
+ "vendor": "Intel",
+ "model": "MacBookAir5,2",
+ "mhz": 2000,
+ "total_cores": 4,
+ "total_sockets": 4,
+ "cores_per_socket": 16,
+ "cache_size": "256b",
+ "cache_size_in_bytes": 256,
+ "count": 1
+ }
+ ]
+ },
+ "process": {
+ "cpu": {
+ "percent": 3
+ },
+ "open_file_descriptors": {
+ "min": 200,
+ "max": 346,
+ "avg": 273
+ }
+ },
+ "jvm": {
+ "max_uptime": "24s",
+ "max_uptime_in_millis": 24054,
+ "version": [
+ {
+ "version": "1.6.0_45",
+ "vm_name": "Java HotSpot(TM) 64-Bit Server VM",
+ "vm_version": "20.45-b01-451",
+ "vm_vendor": "Apple Inc.",
+ "count": 2
+ }
+ ],
+ "mem": {
+ "heap_used": "38.3mb",
+ "heap_used_in_bytes": 40237120,
+ "heap_max": "1.9gb",
+ "heap_max_in_bytes": 2130051072
+ },
+ "threads": 89
+ },
+ "fs":
+ {
+ "total": "232.9gb",
+ "total_in_bytes": 250140434432,
+ "free": "31.3gb",
+ "free_in_bytes": 33705881600,
+ "available": "31.1gb",
+ "available_in_bytes": 33443737600,
+ "disk_reads": 21202753,
+ "disk_writes": 27028840,
+ "disk_io_op": 48231593,
+ "disk_read_size": "528gb",
+ "disk_read_size_in_bytes": 566980806656,
+ "disk_write_size": "617.9gb",
+ "disk_write_size_in_bytes": 663525366784,
+ "disk_io_size": "1145.9gb",
+ "disk_io_size_in_bytes": 1230506173440
+ },
+ "plugins": [
+ // all plugins installed on nodes
+ {
+ "name": "inquisitor",
+ "description": "",
+ "url": "/_plugin/inquisitor/",
+ "jvm": false,
+ "site": true
+ }
+ ]
+ }
+}
+--------------------------------------------------
+
diff --git a/docs/reference/cluster/update-settings.asciidoc b/docs/reference/cluster/update-settings.asciidoc
new file mode 100644
index 0000000..4e60868
--- /dev/null
+++ b/docs/reference/cluster/update-settings.asciidoc
@@ -0,0 +1,209 @@
+[[cluster-update-settings]]
+== Cluster Update Settings
+
+Allows to update cluster wide specific settings. Settings updated can
+either be persistent (applied cross restarts) or transient (will not
+survive a full cluster restart). Here is an example:
+
+[source,js]
+--------------------------------------------------
+curl -XPUT localhost:9200/_cluster/settings -d '{
+ "persistent" : {
+ "discovery.zen.minimum_master_nodes" : 2
+ }
+}'
+--------------------------------------------------
+
+Or:
+
+[source,js]
+--------------------------------------------------
+curl -XPUT localhost:9200/_cluster/settings -d '{
+ "transient" : {
+ "discovery.zen.minimum_master_nodes" : 2
+ }
+}'
+--------------------------------------------------
+
+The cluster responds with the settings updated. So the response for the
+last example will be:
+
+[source,js]
+--------------------------------------------------
+{
+ "persistent" : {},
+ "transient" : {
+ "discovery.zen.minimum_master_nodes" : "2"
+ }
+}'
+--------------------------------------------------
+
+Cluster wide settings can be returned using:
+
+[source,js]
+--------------------------------------------------
+curl -XGET localhost:9200/_cluster/settings
+--------------------------------------------------
+
+There is a specific list of settings that can be updated, those include:
+
+[float]
+[[cluster-settings]]
+=== Cluster settings
+
+[float]
+==== Routing allocation
+
+[float]
+===== Awareness
+
+`cluster.routing.allocation.awareness.attributes`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.awareness.force.*`::
+ See <<modules-cluster>>.
+
+[float]
+===== Balanced Shards
+
+`cluster.routing.allocation.balance.shard`::
+ Defines the weight factor for shards allocated on a node
+ (float). Defaults to `0.45f`.
+
+`cluster.routing.allocation.balance.index`::
+ Defines a factor to the number of shards per index allocated
+ on a specific node (float). Defaults to `0.5f`.
+
+`cluster.routing.allocation.balance.primary`::
+ defines a weight factor for the number of primaries of a specific index
+ allocated on a node (float). `0.05f`.
+
+`cluster.routing.allocation.balance.threshold`::
+ minimal optimization value of operations that should be performed (non
+ negative float). Defaults to `1.0f`.
+
+[float]
+===== Concurrent Rebalance
+
+`cluster.routing.allocation.cluster_concurrent_rebalance`::
+ Allow to control how many concurrent rebalancing of shards are
+ allowed cluster wide, and default it to `2` (integer). `-1` for
+ unlimited. See also <<modules-cluster>>.
+
+[float]
+===== Disable allocation
+
+added[1.0.0.RC1]
+
+All the disable allocation settings have been deprecated in favour for
+`cluster.routing.allocation.enable` setting.
+
+`cluster.routing.allocation.disable_allocation`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.disable_replica_allocation`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.disable_new_allocation`::
+ See <<modules-cluster>>.
+
+[float]
+===== Enable allocation
+
+`cluster.routing.allocation.enable`::
+ See <<modules-cluster>>.
+
+[float]
+===== Throttling allocation
+
+`cluster.routing.allocation.node_initial_primaries_recoveries`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.node_concurrent_recoveries`::
+ See <<modules-cluster>>.
+
+[float]
+===== Filter allocation
+
+`cluster.routing.allocation.include.*`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.exclude.*`::
+ See <<modules-cluster>>.
+
+`cluster.routing.allocation.require.*`
+ See <<modules-cluster>>.
+
+[float]
+==== Metadata
+
+`cluster.blocks.read_only`::
+ Have the whole cluster read only (indices do not accept write operations), metadata is not allowed to be modified (create or delete indices).
+
+[float]
+==== Discovery
+
+`discovery.zen.minimum_master_nodes`::
+ See <<modules-discovery-zen>>
+
+[float]
+==== Threadpools
+
+`threadpool.*`::
+ See <<modules-threadpool>>
+
+[float]
+[[cluster-index-settings]]
+=== Index settings
+
+[float]
+==== Index filter cache
+
+`indices.cache.filter.size`::
+ See <<index-modules-cache>>
+
+`indices.cache.filter.expire` (time)::
+ See <<index-modules-cache>>
+
+[float]
+==== TTL interval
+
+`indices.ttl.interval` (time)::
+ See <<mapping-ttl-field>>
+
+[float]
+==== Recovery
+
+`indices.recovery.concurrent_streams`::
+ See <<modules-indices>>
+
+`indices.recovery.file_chunk_size`::
+ See <<modules-indices>>
+
+`indices.recovery.translog_ops`::
+ See <<modules-indices>>
+
+`indices.recovery.translog_size`::
+ See <<modules-indices>>
+
+`indices.recovery.compress`::
+ See <<modules-indices>>
+
+`indices.recovery.max_bytes_per_sec`::
+ See <<modules-indices>>
+
+[float]
+==== Store level throttling
+
+`indices.store.throttle.type`::
+ See <<index-modules-store>>
+
+`indices.store.throttle.max_bytes_per_sec`::
+ See <<index-modules-store>>
+
+[float]
+[[logger]]
+=== Logger
+
+Logger values can also be updated by setting `logger.` prefix. More
+settings will be allowed to be updated.