Search::Elasticsearch::Role::CxnPool::Sniff(3pm)

Search::Elasticsearch::Role::CxnPool::Sniff3pm

A cxnpool role for connecting to a local cluster with a dynamic node list

Version

version 8.12

Configuration

"sniff_interval"

How often should we perform a sniff in order to detect whether new nodes have been added to the cluster. Defaults to `300` seconds.

"sniff_max_content_length"

Whether we should set the max_content_length dynamically while sniffing. Defaults to true unless a fixed "max_content_length" was specified.

Methods

schedule_check()

    $cxn_pool->schedule_check

Schedules a sniff before the next request is processed.

parse_sniff()

    $bool = $cxn_pool->parse_sniff(\%nodes);

Parses the response from a sniff request and extracts the hostname/ip of all listed nodes, filtered through "should_accept_node()". If any live nodes are found, they are passed to "set_cxns()" in Search::Elasticsearch::Role::CxnPool. The max_content_length is also detected if "sniff_max_content_length" is true.

should_accept_node()

    $host = $cxn_pool->should_accept_node($host,$node_id,\%node_data)

This method serves as a hook which can be overridden by the user. When a sniff is performed, this method is called with the "host" (eg "192.168.5.100:9200"), the "node_id" (the ID assigned to the node by Elasticsearch) and the "node_data" which contains the information about the node that Elasticsearch has returned, eg:

    {
        "transport_address" => "inet[192.168.5.100/192.168.5.100:9300]",
        "http" : {
           "publish_address"    => "inet[/192.168.5.100:9200]",
           "max_content_length" => "100mb",
           "bound_address"      => "inet[/0:0:0:0:0:0:0:0:9200]",
           "max_content_length_in_bytes" : 104857600
        },
        "version"       => "0.90.4",
        "name"          => "Silver Sable",
        "hostname"      => "search1.domain.com",
        "http_address"  => "inet[/192.168.5.100:9200]"
    }

If the node should be accepted (ie used to serve data), then it should return the "host" value to use. By default, nodes are always accepted.

Releases

5 releases since Debian 9 (Stretch); the text changed 4 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13

Author

Enrico Zimuel <[email protected]>

From libsearch-elasticsearch-perl 8.12-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.