mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
2049f715b3
A voting-only master-eligible node is a node that can participate in master elections but will not act as a master in the cluster. In particular, a voting-only node can help elect another master-eligible node as master, and can serve as a tiebreaker in elections. High availability (HA) clusters require at least three master-eligible nodes, so that if one of the three nodes is down, then the remaining two can still elect a master amongst them-selves. This only requires one of the two remaining nodes to have the capability to act as master, but both need to have voting powers. This means that one of the three master-eligible nodes can be made as voting-only. If this voting-only node is a dedicated master, a less powerful machine or a smaller heap-size can be chosen for this node. Alternatively, a voting-only non-dedicated master node can play the role of the third master-eligible node, which allows running an HA cluster with only two dedicated master nodes. Closes #14340 Co-authored-by: David Turner <david.turner@elastic.co>
237 lines
6.9 KiB
Plaintext
237 lines
6.9 KiB
Plaintext
[[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]
|
|
--------------------------------------------------
|
|
GET /_cluster/stats?human&pretty
|
|
--------------------------------------------------
|
|
// CONSOLE
|
|
// TEST[setup:twitter]
|
|
|
|
Will return, for example:
|
|
["source","js",subs="attributes,callouts"]
|
|
--------------------------------------------------
|
|
{
|
|
"_nodes" : {
|
|
"total" : 1,
|
|
"successful" : 1,
|
|
"failed" : 0
|
|
},
|
|
"cluster_uuid": "YjAvIhsCQ9CbjWZb2qJw3Q",
|
|
"cluster_name": "elasticsearch",
|
|
"timestamp": 1459427693515,
|
|
"status": "green",
|
|
"indices": {
|
|
"count": 1,
|
|
"shards": {
|
|
"total": 5,
|
|
"primaries": 5,
|
|
"replication": 0,
|
|
"index": {
|
|
"shards": {
|
|
"min": 5,
|
|
"max": 5,
|
|
"avg": 5
|
|
},
|
|
"primaries": {
|
|
"min": 5,
|
|
"max": 5,
|
|
"avg": 5
|
|
},
|
|
"replication": {
|
|
"min": 0,
|
|
"max": 0,
|
|
"avg": 0
|
|
}
|
|
}
|
|
},
|
|
"docs": {
|
|
"count": 10,
|
|
"deleted": 0
|
|
},
|
|
"store": {
|
|
"size": "16.2kb",
|
|
"size_in_bytes": 16684
|
|
},
|
|
"fielddata": {
|
|
"memory_size": "0b",
|
|
"memory_size_in_bytes": 0,
|
|
"evictions": 0
|
|
},
|
|
"query_cache": {
|
|
"memory_size": "0b",
|
|
"memory_size_in_bytes": 0,
|
|
"total_count": 0,
|
|
"hit_count": 0,
|
|
"miss_count": 0,
|
|
"cache_size": 0,
|
|
"cache_count": 0,
|
|
"evictions": 0
|
|
},
|
|
"completion": {
|
|
"size": "0b",
|
|
"size_in_bytes": 0
|
|
},
|
|
"segments": {
|
|
"count": 4,
|
|
"memory": "8.6kb",
|
|
"memory_in_bytes": 8898,
|
|
"terms_memory": "6.3kb",
|
|
"terms_memory_in_bytes": 6522,
|
|
"stored_fields_memory": "1.2kb",
|
|
"stored_fields_memory_in_bytes": 1248,
|
|
"term_vectors_memory": "0b",
|
|
"term_vectors_memory_in_bytes": 0,
|
|
"norms_memory": "384b",
|
|
"norms_memory_in_bytes": 384,
|
|
"points_memory" : "0b",
|
|
"points_memory_in_bytes" : 0,
|
|
"doc_values_memory": "744b",
|
|
"doc_values_memory_in_bytes": 744,
|
|
"index_writer_memory": "0b",
|
|
"index_writer_memory_in_bytes": 0,
|
|
"version_map_memory": "0b",
|
|
"version_map_memory_in_bytes": 0,
|
|
"fixed_bit_set": "0b",
|
|
"fixed_bit_set_memory_in_bytes": 0,
|
|
"max_unsafe_auto_id_timestamp" : -9223372036854775808,
|
|
"file_sizes": {}
|
|
}
|
|
},
|
|
"nodes": {
|
|
"count": {
|
|
"total": 1,
|
|
"data": 1,
|
|
"coordinating_only": 0,
|
|
"master": 1,
|
|
"ingest": 1,
|
|
"voting_only": 0
|
|
},
|
|
"versions": [
|
|
"{version}"
|
|
],
|
|
"os": {
|
|
"available_processors": 8,
|
|
"allocated_processors": 8,
|
|
"names": [
|
|
{
|
|
"name": "Mac OS X",
|
|
"count": 1
|
|
}
|
|
],
|
|
"pretty_names": [
|
|
{
|
|
"pretty_name": "Mac OS X",
|
|
"count": 1
|
|
}
|
|
],
|
|
"mem" : {
|
|
"total" : "16gb",
|
|
"total_in_bytes" : 17179869184,
|
|
"free" : "78.1mb",
|
|
"free_in_bytes" : 81960960,
|
|
"used" : "15.9gb",
|
|
"used_in_bytes" : 17097908224,
|
|
"free_percent" : 0,
|
|
"used_percent" : 100
|
|
}
|
|
},
|
|
"process": {
|
|
"cpu": {
|
|
"percent": 9
|
|
},
|
|
"open_file_descriptors": {
|
|
"min": 268,
|
|
"max": 268,
|
|
"avg": 268
|
|
}
|
|
},
|
|
"jvm": {
|
|
"max_uptime": "13.7s",
|
|
"max_uptime_in_millis": 13737,
|
|
"versions": [
|
|
{
|
|
"version": "12",
|
|
"vm_name": "OpenJDK 64-Bit Server VM",
|
|
"vm_version": "12+33",
|
|
"vm_vendor": "Oracle Corporation",
|
|
"bundled_jdk": true,
|
|
"using_bundled_jdk": true,
|
|
"count": 1
|
|
}
|
|
],
|
|
"mem": {
|
|
"heap_used": "57.5mb",
|
|
"heap_used_in_bytes": 60312664,
|
|
"heap_max": "989.8mb",
|
|
"heap_max_in_bytes": 1037959168
|
|
},
|
|
"threads": 90
|
|
},
|
|
"fs": {
|
|
"total": "200.6gb",
|
|
"total_in_bytes": 215429193728,
|
|
"free": "32.6gb",
|
|
"free_in_bytes": 35064553472,
|
|
"available": "32.4gb",
|
|
"available_in_bytes": 34802409472
|
|
},
|
|
"plugins": [
|
|
{
|
|
"name": "analysis-icu",
|
|
"version": "{version}",
|
|
"description": "The ICU Analysis plugin integrates Lucene ICU module into elasticsearch, adding ICU relates analysis components.",
|
|
"classname": "org.elasticsearch.plugin.analysis.icu.AnalysisICUPlugin",
|
|
"has_native_controller": false
|
|
},
|
|
...
|
|
],
|
|
"network_types": {
|
|
...
|
|
},
|
|
"discovery_types": {
|
|
...
|
|
},
|
|
"packaging_types": [
|
|
{
|
|
...
|
|
}
|
|
]
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// TESTRESPONSE[s/"plugins": \[[^\]]*\]/"plugins": $body.$_path/]
|
|
// TESTRESPONSE[s/"network_types": \{[^\}]*\}/"network_types": $body.$_path/]
|
|
// TESTRESPONSE[s/"discovery_types": \{[^\}]*\}/"discovery_types": $body.$_path/]
|
|
// TESTRESPONSE[s/"count": \{[^\}]*\}/"count": $body.$_path/]
|
|
// TESTRESPONSE[s/"packaging_types": \[[^\]]*\]/"packaging_types": $body.$_path/]
|
|
// TESTRESPONSE[s/: true|false/: $body.$_path/]
|
|
// TESTRESPONSE[s/: (\-)?[0-9]+/: $body.$_path/]
|
|
// TESTRESPONSE[s/: "[^"]*"/: $body.$_path/]
|
|
// These replacements do a few things:
|
|
// 1. Ignore the contents of the `plugins` object because we don't know all of
|
|
// the plugins that will be in it. And because we figure folks don't need to
|
|
// see an exhaustive list anyway.
|
|
// 2. Similarly, ignore the contents of `network_types`, `discovery_types`, and
|
|
// `packaging_types`.
|
|
// 3. Ignore the contents of the (nodes) count object, as what's shown here
|
|
// depends on the license. Voting-only nodes are e.g. only shown when this
|
|
// test runs with a basic license.
|
|
// 4. All of the numbers and strings on the right hand side of *every* field in
|
|
// the response are ignored. So we're really only asserting things about the
|
|
// the shape of this response, not the values in it.
|
|
|
|
This API can be restricted to a subset of the nodes using <<cluster-nodes,node
|
|
filters>>:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
GET /_cluster/stats/nodes/node1,node*,master:false
|
|
--------------------------------------------------
|
|
// CONSOLE
|