Class Sniffer

java.lang.Object
org.elasticsearch.client.sniff.Sniffer
All Implemented Interfaces:
Closeable, AutoCloseable

public class Sniffer extends Object implements Closeable
Class responsible for sniffing nodes from some source (default is elasticsearch itself) and setting them to a provided instance of RestClient. Must be created via SnifferBuilder, which allows to set all of the different options or rely on defaults. A background task fetches the nodes through the NodesSniffer and sets them to the RestClient instance. It is possible to perform sniffing on failure by creating a SniffOnFailureListener and providing it as an argument to RestClientBuilder.setFailureListener(RestClient.FailureListener). The Sniffer implementation needs to be lazily set to the previously created SniffOnFailureListener through SniffOnFailureListener.setSniffer(Sniffer).
  • Method Details

    • sniffOnFailure

      public void sniffOnFailure()
      Schedule sniffing to run as soon as possible if it isn't already running. Once such sniffing round runs it will also schedule a new round after sniffAfterFailureDelay ms.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • builder

      public static SnifferBuilder builder(RestClient restClient)
      Returns a new SnifferBuilder to help with Sniffer creation.
      Parameters:
      restClient - the client that gets its hosts set (via RestClient.setNodes(Collection)) once they are fetched
      Returns:
      a new instance of SnifferBuilder