Documentation menu

Docs Connections: Elasticsearch and OpenSearch

Elasticsearch and OpenSearch checks

Every check Verbiqo can run on an Elasticsearch cluster (7.17 and later) or an OpenSearch cluster (2.0 and later), and on a search you paste, grouped by area. Verbiqo reads the monitoring and metadata APIs with the role from Set up Elasticsearch or OpenSearch (OpenSearch’s), and never reads a document. OpenSearch below says what differs there. The checks are grouped into areas, one section each below. You never type an area’s name: you ask a question, and Verbiqo runs the areas it needs.

How to read this page. Each section is one area. Why it helps says what you get from it. Ask is a question to type that runs it. The table under it lists what Verbiqo checks there: you do not run those one by one. When a check finds a problem, it appears under the answer as a finding, with its evidence and a suggested fix.

How areas are chosen

  1. Ask in your own words

    Attach the cluster with /es and the connection’s name (/es logs), then ask, for example why is the cluster yellow?

  2. The model picks the areas

    It reads the question and says which areas it needs. Verbiqo reads only what those areas need.

  3. Words as a safety net

    The words in the middle column below also bring their area in, even when the model leaves it out, and decide on their own when the model is unavailable. You do not need to use them: they are listed so you can see why an area was read.

AreaWords that always bring it inAsk, for example
The cluster reviewrecovery, rebalancing, balance, allocation, relocating, ingest, pipelines, translog, merges, replication, followers, CCR, anomaly, review, health, check-up, audit, red, yellow, unassigned, shards, disk, watermark, heap, memory, GC, breaker, rejections, oversharding, mapping, fields, templates, index model, index design, data model, ILM, lifecycle, snapshots, backups, stability, improve, recommendations, what is wrong, problems, cluster, nodes, masterReview the cluster, Why is the cluster yellow?, Why is recovery slow?, Why aren’t the shards balancing?, Is any ingest pipeline failing?
Right nowslow, latency, hanging, stuck, timeouts, rejected, 429, busy, load, CPU, hot threads, right now, currently, spike, backpressure, queueSearches are slow right now, what is going on?
A search querypaste the query (JSON, or a GET index/_search { … } request) with analyze, optimise, rewrite, improve, why is this query slowWhy is this query slow? GET products/_search { … }
Search performancesearch performance, searches are slow, search latency, relevance, query cache, request cache, caches, segments, force merge, pagination, top queries, slowest queries, improve searchHow can I improve search performance?
Which indices take the most search time?
What were the slowest searches yesterday?
Why a value does or does not matchpaste the query and put the value in quotes, with doesn’t match, doesn’t find, no results, analyzer, tokenizeWhy doesn’t this find "Red Shirt"? GET products/_search { … }
Sizing, tiers and costcapacity, sizing, how long until, fill up, growth, scale out, headroom, planning, how many nodesDo we need more nodes?
What happenedwhat happened, timeline, incident, yesterday, at 3pm, when did, root causeWhat happened on the cluster yesterday?
The cluster’s own securitysecurity, secure, anonymous, authentication, TLS, HTTPSIs this cluster secure?
Security events in the logslogons, sign-ins, brute force, password spray, privilege, administrators, audit log, cleared, attack, intrusion, suspicious, alerts, incidents, ssh, sudo, lockouts, accounts created, threats, breachAny suspicious logons in the last 24 hours?
Credentials in the logssecrets, credentials, passwords, API keys, tokens, private keys, leaked, exposed, plain text, in the same question as logsAre any passwords or keys leaked in our logs?
Upgrade readinessupgrade, deprecated, deprecation, migrate, breaking changes, end of lifeCan we upgrade to 9.0? Which clients use deprecated features?
What Verbiqo can seewhat should I enable, readiness, permissions, privileges, rolesWhat should I enable?

A question that carries a query is about that query: the cluster is reviewed as well only when the question also mentions the cluster, nodes, shards, disk or heap. The two log areas search only the log indices the connection names (Set up); a connection without them never reads a document.

The cluster review

Why it helps: Checks the whole cluster in one pass (health, shards, disk, heap, pipelines, settings), so you see every problem with its fix at once.

Ask Review the cluster. Or about one part of it: Why is the cluster yellow? Is any ingest pipeline failing?

A question about one part still runs the whole review, so a problem elsewhere is not missed.

Health and shards

CheckWhat it looks for
Unassigned shardsPrimaries (red) and replicas (yellow) not assigned, each with the cluster’s own reason from allocation explain and a suggested fix.
Health indicatorsThe cluster’s own health report (8.7+): disk, ILM, SLM, master stability, shard capacity and others, with its diagnosis.
Oversized shardsShards larger than 50 GB: slow to recover and relocate.
Document limitShards near Lucene’s limit of about 2.1 billion documents.
OvershardingIndex series whose shards average under 1 GB: heap and master load for nothing.
Shards near the per-node limitNodes close to cluster.max_shards_per_node.
Unbalanced shardsOne node holding far more shards than another, with the cluster’s own reason: allocation explain asked about a shard on the fullest node (rebalancing waits for a green cluster, awareness, filters, the disk watermark, the per-index cap, or the allocator counting it balanced), and a suggested fix for that reason.
Rebalancing under wayWhere the role may read the allocator’s desired balance (8.6 and later): how many shards are not yet where it wants them, and from which nodes; or that nothing is left to move, so the imbalance is by its own weights. Asked whether it is still rebalancing, Verbiqo says which, after the answer; where the role cannot read the desired balance it says that the answer is not known, rather than “no” from recoveries alone.
Shard cap per indexindex.routing.allocation.total_shards_per_node set so low that the index’s copies cannot all be placed with one node gone; a warning when shards are unassigned because of it.
Idle data nodeA data node holding no shards.
Allocation or rebalancing restrictedcluster.routing.allocation.enable or rebalance.enable left restricted, often after maintenance.

Disk

CheckWhat it looks for
WatermarksNodes past the low, high or flood-stage disk watermark, and what each stage stops.
Watermarks raisedWatermarks set above the defaults, leaving less room for merges and relocations.
Write blocksIndices refusing writes (read_only_allow_delete after flood stage, or a manual block).
Uneven diskDisk use far apart between data nodes, with the cluster’s own reason why shards stay on the fullest one.

Recoveries

The recoveries running when you ask, each with its own elapsed and throttled time (_cat/recovery and _recovery). Nothing is said when none is running.

CheckWhat it looks for
Held back by the speed limitRecoveries that spent 30% or more of their time waiting on indices.recovery.max_bytes_per_sec, with the setting to raise while the cluster recovers.
Replaying a large translogA shard in the translog stage with a million or more operations to replay: it was not flushed before its node went down. Flush before planned restarts.
Barely movingA recovery under 10% after 30 minutes without being throttled: usually the source node or the network.
Waiting their turnMany shards waiting while recoveries run two at a time per node (node_concurrent_recoveries).
RunningRecoveries in progress with none of the above: their stage, progress and speed.

Ingest, merges and the translog

From each node’s counters, which run since the node started.

CheckWhat it looks for
Pipeline failuresAn ingest pipeline that failed documents, with the processor that failed most.
Slow pipelineA pipeline taking 30% or more as long as indexing itself, with its slowest processor.
Merges throttledMerges throttled for half their time or more; a warning when indexing itself was slowed for an hour or more to let them catch up.
Large unflushed translogNodes with 2 GB or more of translog not yet flushed: replayed one operation at a time after a restart.
Bulk requests too smallClients whose last request was a bulk, with 1,000 or more requests averaging under 100 KB: overhead spent per request. 5 to 15 MB a request is the usual sweet spot.
Bulk requests too largeClients sending bulk requests averaging 100 MB or more: held in memory while parsed, so heap pressure, breakers and rejections.
Connections not reusedMost of the nodes’ recent client connections made one or two requests and closed: a client opening a connection per request.

The client checks read each node’s recent HTTP clients (user agent, address, requests and bytes): a recent window, not full history, and a load balancer in front shows as one address. Whether replicas or refresh should be off during a bulk load depends on what the load is, so it is advice when you ask why indexing is slow, not a finding.

Nodes, heap and memory

CheckWhat it looks for
Heap highA node’s heap use high.
Heap above 31 GBHeap too large for compressed object pointers.
Heap above half the memoryHeap leaving too little memory for the file system cache.
Circuit breakersBreakers that tripped, by breaker.
RejectionsSearch and write thread pools rejecting work.
SwappingNodes using swap.
FielddataFielddata holding a large share of heap, and fielddata enabled on text fields.
File descriptorsA limit below 65,535, or most descriptors in use.
MastersAn even or too-small number of master-eligible nodes, or no dedicated masters in a larger cluster.
Mixed versionsNodes running different versions.

Indices and mappings

CheckWhat it looks for
Empty indicesIndices older than a day with no documents.
Deleted documentsIndices with over 25% deleted documents.
No replicasIndices with no replica: one node lost is data lost.
Mapping explosionIndices near their field limit.
Refresh intervalWrite-heavy indices still refreshing every second.

Lifecycle and snapshots

CheckWhat it looks for
ILM errorsIndices stuck on a failed lifecycle step, with the step and the error.
ILM stoppedIndex lifecycle management stopped or stopping.
No lifecycleSeries of dated indices with no lifecycle policy.
Data stream healthData streams that are yellow or red.
SnapshotsNo repository, no SLM policy, a policy that failed on its last run, or one that has not succeeded for too long.
Snapshot running longA snapshot in progress for six hours or more, with how much it has copied and how fast.
Snapshots getting slowerThe latest snapshot taking twice as long as the median of the ten before it, and 30 minutes or more.
Partial snapshotThe latest snapshot in a repository missing failed shards: those indices cannot be restored from it.

The index model

How indices are mapped, templated and sharded, judged per series (logs-2026.10.01 and logs-2026.10.02 are one series). Each finding names the indices and fields, with the template change; changes apply to indices created after them. Ask Review our index design or Are our mappings and templates right?

CheckWhat it looks for
Strings indexed twiceA series whose newest index has 10 or more strings mapped by dynamic mapping as both text and keyword. Most fields need one: keyword for identifiers, hosts and statuses; match_only_text for log messages. Suggests a dynamic template so new strings become keyword. Which fields are searched as full text Verbiqo cannot see, so it says to check first.
Type changes within a seriesA field that is, say, long in one index and keyword in the next: aggregations break across the series and Kibana shows a conflict. Changes within one family (two number types, text and keyword) are not counted.
No index templateA series of three or more indices that no template, composable or legacy, creates: shard count from the default, mappings from dynamic mapping.
Legacy templatesTemplates in _template, deprecated since 7.8; a warning where a composable template matches the same index, because the legacy one is then ignored.
Shards that do not divide over the nodesA series of 50 GB or more whose shard copies do not divide over the data nodes (5 primaries with a replica on 3 nodes: 4, 3 and 3). Suggests the count that divides evenly while keeping shards nearest 10 to 50 GB.

Also in the review, elsewhere on this page: field counts near the limit, fielddata on text fields, identifiers mapped as numbers, dates stored as strings, shard sizes, and series with no lifecycle.

Cross-cluster replication and machine learning

Read when the cluster has them; a cluster without them is not reported as unreadable. Replication is read from both sides: on a follower cluster, each follower’s stats and status (paused ones included) and the remote cluster connections; on a leader cluster, when the question is about replication, the leases followers hold on its history (a read that grows with the number of shards, so not taken for every review). Every follower is also listed in the review: its leader, how far behind, when it last read, failed reads and writes, and how much of read time is spent outside the leader (network and queues). The monitoring role reads all of it.

CheckWhat it looks for
Replication stoppedA follower index whose following stopped on an error, with the error and the resume request.
Follower laggingA follower 100,000 or more operations behind its leader, or not read from for five minutes.
Follower about to lose its historyA follower not read from for 6 hours or more: the leader keeps history for it only while its retention lease lasts (12 hours by default), after which it cannot catch up and must be recreated.
Follower pausedA follower index paused: not replicating at all, with the resume request.
Reads failing, retryingA follower whose reads from the leader fail and are retried, with the error.
Remote cluster not connectedA remote cluster down: critical when followers or auto-follow use it.
Follower reading faster than it writesA follower’s write buffer at 80% of its limit: the follower cluster’s indexing is the bottleneck, not the network.
Auto-follow failingLeader indices an auto-follow pattern failed to follow, with the reason.
Stale lease on the leaderOn a leader cluster, a follower that has not renewed its lease for an hour (it renews every 30 seconds while replicating): critical from 6 hours.
ML job failedAn anomaly detection job in the failed state (needs monitor_ml).
ML memory limitA job at its model memory limit: it stops learning new entities.

Tasks

CheckWhat it looks for
Long searchesSearches running for more than 30 seconds.
Long tasksReindex, update or delete by query, force merge or bulk running for over 30 minutes.
Pending cluster tasksTasks queued for the master.

Settings, security and licence

CheckWhat it looks for
Security offAnyone who can reach the cluster can read, change and delete everything.
Wildcard deletesaction.destructive_requires_name false.
Painless regular expressionsScripts allowed unlimited regular expressions.
Scripts unrestrictedEvery script type allowed in every context (a hardening note).
Adaptive replica selection offSearches not steered away from slow copies.
Recovery and rebalance concurrencySet too high (recoveries starve searches and indexing) or too low (a lost node takes longer to rebuild).
Shards per node raisedcluster.max_shards_per_node raised, hiding oversharding.
Default data pathData kept under the installation directory, where an upgrade can remove it.
Memory lock offbootstrap.memory_lock off on hosts that have swap.
Default cluster nameThe cluster called elasticsearch: another node on the network could join it.
VersionA 7.x release, or a version behind the last minor of its line (7.17 or 8.19).
LicenceA licence expired or expiring.

The security review checks security on, HTTPS and anonymous requests refused (with a request sent without credentials) as controls across every saved connection, with the certificate, mapped to CIS Controls, ISO 27001 and SOC 2.

Upgrade readiness

Why it helps: Shows what blocks an upgrade and which clients still use deprecated features, so the upgrade does not break them.

Ask Which clients use deprecated features?

Ask about a version (Can we upgrade to 9.3?) or about upgrading in general (Can we upgrade?, the next major). After the answer, Verbiqo says in its own words, from Elastic’s and OpenSearch’s upgrade rules rather than the model’s memory:

  • The path to that version. Within a major version: straight to it. To the next major: only from its bridging minor (5.6, 6.8, 7.17; 8.18 to 9.0, 8.19 to 9.1 or later; OpenSearch 1.3 and 2.19), so an earlier minor goes there first. Further: one major at a time, each step listed. Lower than the running version: a downgrade, which is not possible in place; a snapshot taken before the upgrade is the way back. A major newer than Verbiqo knows is said to be unknown.
  • Release order (Elasticsearch): the target must also be released after the running version, so a late 8.19 patch cannot go to an early 9.x release. In practice, a current patch release; Elastic’s release notes give the dates.
  • Indices the target cannot open: read from the version that created each index. A major version opens indices from the major before it only; Elasticsearch 9 also opens 7.x indices with a write block, read-only. Each is named, system indices apart (Kibana’s Upgrade Assistant migrates those), with what to do: reindex, delete, or for 9.x a write block.
  • The order: Elasticsearch first, then Kibana at the same version, then Fleet Server and APM, then Beats, Elastic Agent and Logstash (OpenSearch before OpenSearch Dashboards).
  • The deprecation log: what it found, or why it could not be read (not named on the connection, refused, or not created yet because nothing deprecated was used).
  • What it did not read: deprecated settings and mapping changes, which Kibana’s Upgrade Assistant lists.
CheckWhat it looks for
Indices the target cannot openIndices created two or more major versions before the target (7.x indices for 9.x unless write-blocked; 6.x for 8.x): the upgrade will not start with them.
Breaking on the next major versionDeprecated features logged at CRITICAL in the period (a week unless you name one): what each is, how often, and which clients use it.
Other deprecationsDeprecated features logged at WARN: to be removed later.

The deprecation info API (_migration/deprecations) needs the manage privilege, which Verbiqo does not accept. The log says which clients and requests will break; Kibana’s Upgrade Assistant lists the index-level changes it does not.

Right now: the live sample

Why it helps: When searches are slow now, it samples what the nodes are doing, so you know which search or task is to blame.

Ask Searches are slow right now, what is going on?

Verbiqo reads every node’s counters twice, 5 seconds apart (2 to 30, see sampling), then the tasks running and the hot threads.

CheckWhat it looks for
RejectionsSearches and writes rejected during the sample, per node.
Garbage collectionA node spending a large share of the sample in GC.
Slow searchesSearch time per shard query on each node during the sample.
Indexing throttledIndexing throttled because merges fall behind.
Hot nodeOne node much busier than the others.
Long searches nowSearches running 10 seconds or more; their query is taken from the task and analyzed, without running it again.
Stuck tasksA reindex, update or delete by query, force merge or snapshot running 5 minutes or more whose progress did not move during the sample.
Hot threadsWhat the busiest threads are doing: a Painless script, an aggregation, a merge, a search.

A search query: analyze and rewrite

Why it helps: Explains why one search is slow and rewrites it, without running it, so you can fix that search.

Ask Why is this query slow? GET products/_search { … }

Verbiqo reads the query against the index’s real mapping, validates it, and with read on the index profiles it with no documents returned. Then it shows the query rewritten, with each change listed.

Speed

CheckWhat it looks for
Leading wildcardA wildcard, regular expression or query_string starting with * or ?: every term in the field is read.
Short prefixA prefix query of one or two characters.
FuzzyFuzzy matching with many expansions, or fuzzy and regex syntax arriving from user input.
All fieldsA query_string searching every field.
ScriptsA script query or script score running for every matching document.
Runtime fieldsFields computed at query time.
Joinshas_child and has_parent queries.
Large termsA terms query with thousands of values.
Filter contextExact-match clauses scored when they could be cached filters.
Unrounded nowDate ranges on now without rounding, which defeats the cache.
Deep paginationA large from, or from + size beyond the result window; search_after instead.
Large responsesMany documents in one response, full _source, many highlighted fields.
Exact hit countstrack_total_hits: true counting every match.
Scan by scoreReading many documents with match_all in score order.
Debugging left onprofile or explain left on.

Aggregations

CheckWhat it looks for
Bucket explosionNested terms aggregations whose buckets multiply.
Large terms aggregationA terms aggregation asking for very many buckets.
Deep nestingAggregations nested several levels deep.
Tiny intervalA date histogram with an interval too small for its range.
Cardinality precisionA precision_threshold set far higher than needed.

Correctness

CheckWhat it looks for
Term query on textA term query on an analyzed field: it misses most values.
Wildcard on textA wildcard that matches single analyzed words, not the whole value.
Range on keywordA range on a keyword field, compared as text ("9" > "10").
Sort or aggregate on textSorting or aggregating on a text field.
Ignored should clausesshould clauses silently ignored next to a must or filter.

Why it helps: Finds the slowest and most expensive searches across the cluster, so you fix the ones that matter.

Ask What were the slowest searches yesterday?

Read with every cluster review, and led by a question about search.

CheckWhat it looks for
Filter cache churnThe query (filter) cache answering under 10% of lookups while evicting heavily: filters that never repeat, such as an unrounded now.
Request cache rarely hitsSize-0 searches (dashboards, aggregations) rarely reused: indices refreshed every second, or an unrounded now.
Read-only indices not mergedIndices no longer written, still in 30 or more segments per shard, with the force merge to run off-peak. An index still written is left alone.
Result window raisedindex.max_result_window above 10,000: deep pages that can exhaust the heap; search_after instead.
Bucket limit raisedsearch.max_buckets raised above the default.
Identifiers mapped as numbersFields named like IDs or codes mapped as long or integer: exact lookups are faster on keyword.
Dates mapped as stringsFields named like dates mapped as keyword or text: ranges and sorts compare text, not time.
Top queries fan outOpenSearch: top queries searching 100 or more shards.
Busiest indicesWhere search and indexing time goes, by index, since their shards started.
Slow index searchesIndices whose searches are slow on average, with the slow log settings to capture them.
Slow searches per tierA warm or cold tier whose searches take much longer than hot.
Slow log, from the cluster’s own log indicesWhere the slow log is shipped into the cluster (logs-elasticsearch.slowlog-*) and named in the connection’s Log indices: the slowest searches of the period, with their index and query, and the two slowest queries analyzed without running them again.
Slow log, from SplunkSlow searches grouped by query shape, the slowest analyzed. See Log findings.

Why a value does or does not match

Why it helps: Explains why a document does or does not match a search, from the analyzers and mappings, so you can fix the mapping or the query.

Ask Why doesn’t this find "Red Shirt"? GET products/_search { … }

Paste the query and put the value you expected it to find in quotes. Verbiqo asks the cluster how the query’s text is searched and what the value becomes in the same field, using _validate/query with explain. So the field’s real analyzer, normalizer and synonyms apply, no document is read, and the monitoring role is enough. (The _analyze API would need manage on Elasticsearch.)

CheckWhat it says
What the query searches forFor each clause, the field, its type and analyzer, and the terms it looks for: match on name (text, analyzer standard): searches for [red] [shirts], all of them.
Singular and pluralThe value becomes [shirt] but the query wants [shirts]: no stemming on the field; search a sub-field with a language analyzer.
Term query on textA term query is not analyzed: [Red Shirt] as one term against [red] [shirt]; use match, or the keyword sub-field.
Case on keyword[SKU-00012] against [sku-00012], compared exactly; a lowercase normalizer or case_insensitive.
All terms requiredoperator: and excluding a document for one missing term; minimum_should_match instead.
PhrasesWhether the terms appear together and in order.

Sizing, tiers and cost

Why it helps: Shows how much room the cluster has, how tiers are used and where cost goes, so you size nodes from evidence.

Ask Do we need more nodes?

CheckWhat it looks for
Node countHow many data nodes the data needs at the high watermark, now and in 90 days; never fewer than an index’s copies.
Tier under-usedA tier using a small share of its disk.
Memory to diskA tier’s memory-to-disk ratio against what the tier is for.
Writes off the hot tierWrite indices with shards outside the hot tier.
Loaded tierNodes in a tier at 85% CPU or heap: the whole tier (add nodes) or some (uneven shards).
Replicas on warm and coldOlder indices keeping two or more replicas.
Frozen cacheA frozen node with no shared cache. Its hit rates need manage, which Verbiqo does not take.
Coordinating nodesNone in a cluster of ten or more data nodes, or ones sitting idle.
Vector memoryThe memory dense_vector fields need against the page cache.
Indexing failuresDocuments that failed to index.
Node machines too largeAsked about capacity, each data node’s CPU history from a connected metrics source; a tier whose every node is far larger than its load.

Disk runway to each watermark is on Capacity checks.

OpenSearch

Why it helps: Says which checks differ on OpenSearch, so you know what an answer there covers.

Ask Is this OpenSearch cluster healthy?

OpenSearch 2.0 and later gets the same checks, read through its own APIs where it differs from Elasticsearch:

AreaOn OpenSearch
The accountRead from the security plugin. OpenSearch will not tell an account its own permissions, so an account with a role that writes (all_access, *_full_access and others) or with security REST API access is refused by name, and a custom role is reported as not verifiable. No security plugin is reported as security off.
LifecycleIndex State Management (ISM): failed actions with the reason, and the retry request (POST _plugins/_ism/retry/<index>); retention from the delete state’s min_index_age for the disk forecast.
SnapshotsSnapshot Management policies: the latest run, and failures.
Top queriesWith Query Insights on (2.12+), the slowest searches OpenSearch recorded in its window, listed with their latency and shards. The slowest of each shape is analyzed and rewritten, without running it again.
Cluster managersThe cluster_manager role is judged as master-eligible, and named in OpenSearch’s words.
Version1.x, and a 1.x below 1.3, are flagged.
Not on OpenSearchThe health report, the licence, and the frozen and data tiers (OpenSearch uses node attributes for hot and warm).

What Verbiqo can see

Why it helps: Lists what Verbiqo can and cannot see on this cluster, with how to turn each on.

Ask What should I enable?

Ask what should I enable? for the role, read for profiling, slow logs and snapshots (and on OpenSearch, Query Insights), each as ready or not, with the request that fixes it.

Ready-made reports

A report is one fixed reading of one area: no question, no model, the same output every time. Use one to look at an area yourself, or to share what it shows.

From a terminal, it prints the report:

verbiqo es run logs health

In verbiqo chat, it loads the report into the conversation so you can ask about it. help lists the reports:

/es logs health
/es logs help

In the desktop apps, there is no report command: ask in your own words, and Verbiqo reads what the question needs.

Two more commands from a terminal: the whole review, and the analysis of one search:

verbiqo es review logs
verbiqo es analyze logs --file query.json
ReportShows
healthCluster health, nodes and shard counts.
health-reportThe cluster’s own health indicators and diagnoses (8.7+).
nodesRoles, heap, memory, CPU, load, disk.
allocationDisk use per node against the watermarks.
indicesIndices by size: health, shards, documents, deleted.
shardsShards by size, with state and node.
unassignedWhy the first unassigned shard is unassigned.
thread-poolsActive, queued, rejected.
tasksTasks running now, longest first.
pending-tasksCluster tasks waiting for the master.
recoveryShard recoveries in progress.
fielddataFielddata held in heap, by field.
segmentsSegment counts and memory per node.
ilm-errorsIndices whose lifecycle step failed.
data-streamsHealth, backing indices, lifecycle.
snapshotsSnapshot policies: last success and failure.
templatesIndex templates and the patterns they match.
hot-threadsThe threads using the most CPU on each node.

Something missing or unclear? Email hello@verbiqo.app.