cluster-test

command
v0.0.0-...-63be5e2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2023 License: MIT Imports: 13 Imported by: 0

README

Cluster Test

This directory contains a program you can use to test a cluster.

Here's how:

First, install a cluster of Elasticsearch nodes. You can install them on different computers, or start several nodes on a single machine.

Build cluster-test by go build cluster-test.go (or build with make).

Run ./cluster-test -h to get a list of flags:

$ ./cluster-test -h
Usage of ./cluster-test:
  -errorlog="": error log file
  -healthcheck=true: enable or disable healthchecks
  -healthchecker=1m0s: healthcheck interval
  -index="twitter": name of ES index to use
  -infolog="": info log file
  -n=5: number of goroutines that run searches
  -nodes="": comma-separated list of ES URLs (e.g. 'http://192.168.2.10:9200,http://192.168.2.11:9200')
  -retries=0: number of retries
  -sniff=true: enable or disable sniffer
  -sniffer=15m0s: sniffer interval
  -tracelog="": trace log file

Example:

$ ./cluster-test -nodes=http://127.0.0.1:9200,http://127.0.0.1:9201,http://127.0.0.1:9202 -n=5 -index=twitter -retries=5 -sniff=true -sniffer=10s -healthcheck=true -healthchecker=5s -errorlog=error.log

The above example will create an index and start some search jobs on the cluster defined by http://127.0.0.1:9200, http://127.0.0.1:9201, and http://127.0.0.1:9202.

  • It will create an index called twitter on the cluster (-index=twitter)
  • It will run 5 search jobs in parallel (-n=5).
  • It will retry failed requests 5 times (-retries=5).
  • It will sniff the cluster periodically (-sniff=true).
  • It will sniff the cluster every 10 seconds (-sniffer=10s).
  • It will perform health checks periodically (-healthcheck=true).
  • It will perform health checks on the nodes every 5 seconds (-healthchecker=5s).
  • It will write an error log file (-errorlog=error.log).

If you want to test Elastic with nodes going up and down, you can use a chaos monkey script like this and run it on the nodes of your cluster:

#!/bin/bash
while true
do
	echo "Starting ES node"
	elasticsearch -d -Xmx4g -Xms1g -Des.config=elasticsearch.yml -p es.pid
	sleep `jot -r 1 10 300` # wait for 10-300s
	echo "Stopping ES node"
	kill -TERM `cat es.pid`
	sleep `jot -r 1 10 60`  # wait for 10-60s
done

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL