---
name: "Search::Elasticsearch::Client::8_0::Direct::Cluster"
section: "3pm"
platform: "linux"
package: "libsearch-elasticsearch-perl"
version: "8.12-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Search::Elasticsearch::Client::8_0::Direct::Cluster"
---

# Search::Elasticsearch::Client::8\_0::Direct::Cluster(3pm)

A client for running cluster-level requests

## NAME

Search::Elasticsearch::Client::8\_0::Direct::Cluster - A client for running cluster-level requests

## VERSION

version 8.12

## DESCRIPTION

This module provides methods to make cluster-level requests, such as getting and setting cluster-level settings, manually rerouting shards, and retrieving for monitoring purposes.

It does Search::Elasticsearch::Role::Client::Direct.

## METHODS

### health()

```
    $response = $e->cluster->health(
        index   => 'index' | \@indices  # optional
    );
```

The `health()` method is used to retrieve information about the cluster health, returning `"red"`, `"yellow"` or `"green"` to indicate the state of the cluster, indices or shards.

Query string parameters:\
     `"error_trace"`,\
     `"human"`,\
     `"level"`,\
     `"local"`,\
     `"master_timeout"`,\
     `"timeout"`,\
     `"wait_for_active_shards"`,\
     `"wait_for_events"`,\
     `"wait_for_no_initializing_shards"`,\
     `"wait_for_no_relocating_shards"`,\
     `"wait_for_nodes"`,\
     `"wait_for_status"`

See the cluster health docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html\> for more information.

### stats()

```
    $response = $e->cluster->stats(
        node_id => 'node' | \@nodes     # optional
    );
```

Returns high-level cluster stats, optionally limited to the listed nodes.

Query string parameters:\
     `"error_trace"`,\
     `"flat_settings"`,\
     `"human"`,\
     `"timeout"`

See the cluster stats docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html\> for more information.

### get\_settings()

```
    $response = $e->cluster->get_settings()
```

The `get_settings()` method is used to retrieve cluster-wide settings that have been set with the "**put\_settings()**" method.

Query string parameters:\
     `"error_trace"`,\
     `"flat_settings"`,\
     `"human"`,\
     `"include_defaults"`,\
     `"master_timeout"`,\
     `"timeout"`

See the cluster settings docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html\> for more information.

### put\_settings()

```
    $response = $e->cluster->put_settings( %settings );
```

The `put_settings()` method is used to set cluster-wide settings, either transiently (which don't survive restarts) or permanently (which do survive restarts).

For instance:

```
    $response = $e->cluster->put_settings(
        body => {
            transient => { "discovery.zen.minimum_master_nodes" => 6 }
        }
    );
```

Query string parameters:\
     `"error_trace"`,\
     `"flat_settings"`,\
     `"human"`

See the cluster settings docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html\>\
  for more information.

### state()

```
    $response = $e->cluster->state(
        metric => $metric | \@metrics   # optional
        index  => $index  | \@indices   # optional
    );
```

The `state()` method returns the current cluster state from the master node, or from the responding node if `"local"` is set to `"true"`.

It returns all metrics by default, but these can be limited to any of:\
     `"_all"`,\
     `"blocks"`,\
     `"metadata"`,\
     `"nodes"`,\
     `"routing_table"`

Metrics for indices can be limited to particular indices with the `"index"` parameter.

Query string parameters:\
     `"allow_no_indices"`,\
     `"error_trace"`,\
     `"expand_wildcards"`,\
     `"flat_settings"`,\
     `"human"`,\
     `"ignore_unavailable"`,\
     `"local"`,\
     `"master_timeout"`,\
     `"wait_for_metadata_version"`,\
     `"wait_for_timeout"`

See the cluster state docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html\> for more information.

### allocation\_explain()

```
    $response = $e->cluster->allocation_explain(
        body => { ... shard selectors ...}  # optional
    );
```

Returns information about why a shard is allocated or unallocated or why.

Query string parameters:\
     `"error_trace"`,\
     `"human"`,\
     `"include_disk_info"`,\
     `"include_yes_decisions"`

See the cluster allocation explain docs \<https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-allocation-explain.html\> for more information.

### pending\_tasks()

```
    $response = $e->cluster->pending_tasks();
```

Returns a list of cluster-level tasks still pending on the master node.

Query string parameters:\
     `"error_trace"`,\
     `"human"`,\
     `"local"`,\
     `"master_timeout"`

See the pending tasks docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-pending.html\> for more information.

### reroute()

```
    $e->cluster->reroute(
        body => { commands }
    );
```

The `reroute()` method is used to manually reallocate shards from one node to another.  The `"body"` should contain the `"commands"` indicating which changes should be made. For instance:

```
    $e->cluster->reroute(
        body => {
            commands => [
                { move => {
                    index     => 'test',
                    shard     => 0,
                    from_node => 'node_1',
                    to_node   => 'node_2
                }},
                { allocate => {
                    index     => 'test',
                    shard     => 1,
                    node      => 'node_3'
                }}
            ]
        }
    );
```

Query string parameters:\
     `"dry_run"`,\
     `"error_trace"`,\
     `"explain"`,\
     `"human"`,\
     `"master_timeout"`,\
     `"metric"`,\
     `"retry_failed"`,\
     `"timeout"`

See the reroute docs \<http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html\> for more information.

### remote\_info()

```
    $response = $e->cluster->remote_info();
```

The `remote_info()` API retrieves all of the configured remote cluster information.

Query string parameters:\
     `"error_trace"`,\
     `"human"`

See the remote\_info docs \<https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-remote-info.html\> for more information.

## AUTHOR

Enrico Zimuel \<enrico.zimuel@elastic.co\>

## COPYRIGHT AND LICENSE

This software is Copyright (c) 2024 by Elasticsearch BV.

This is free software, licensed under:

```
  The Apache License, Version 2.0, January 2004
```
