1. Setup toxiproxy
1, using docker to run shopify/toxiproxy
$ docker pull shopify/toxiproxy
$ docker run -it shopify/toxiproxy
2,install toxiproxy-cli
wget https://github.com/Shopify/toxiproxy/releases/download/v2.1.4/toxiproxy-cli-linux-amd64
chmod +x toxiproxy-cli-linux-amd64
mv toxiproxy-cli-linux-amd64 /bin/toxiproxy-cli
tixiproxy-cli ls
Get http://localhost:8474/proxies: dial tcp [::1]:8474: connect: connection refused
checked: 8474 is listenor for toxiproxy http.
so use bin code to run toxiproxy or use docker run -itd —net=host shopify/toxiproxy
3. use toxiproxy
3.1 install redis
3.2 create myredis in toxiproxy
toxiproxy-cli create myredis -l 0.0.0.0:26379 -u 127.0.0.1:6379 Created new proxy myredis
toxiproxy-cli ls Name Listen Upstream Enabled Toxics myredis [::]:26379 127.0.0.1:6379 enabled None
Hint: inspect toxics with toxiproxy-cli inspect
[root@node43 Linux_ssr_script]# redis-cli 127.0.0.1:6379> quit
3.3 set latency
[root@node43 Linux_ssr_script]# toxiproxy-cli toxic add myredis -t latency -a latency=1000
Added downstream latency toxic ‘latency_downstream’ on proxy ‘myredis’
[root@node43 Linux_ssr_script]#
[root@node43 Linux_ssr_script]# redis-cli -h 127.0.0.1 -p 26379 127.0.0.1:26379
put a “asdasdasd” (error) ERR unknown command
put
, with args beginning with:a
,asdasdasd
, (1.00s) 127.0.0.1:26379> quit
docker ps -a
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b6d4a05a97cb docker.io/shopify/toxiproxy:latest -host=0.0.0.0 19 minutes ago Up 19 minutes ago loving_kepler
[root@node43 Linux_ssr_script]# docker exec -it b6d4a05a97cb — sh
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
so use bin code to install toxiproxy is better.
4. toxiproxy usage:
For the usage:
a. server
toxiproxy-server —help
Usage of toxiproxy-server:
-config string
JSON file containing proxies to create on startup
-host string
Host for toxiproxy’s API to listen on (default “localhost”)
-port string
Port for toxiproxy’s API to listen on (default “8474”)
-seed int
Seed for randomizing toxics with (default 1511142454198638055)
b. cli
list, l, li, ls list all proxies
usage: ‘toxiproxy-cli list’
inspect, i, ins inspect a single proxy
usage: ‘toxiproxy-cli inspect
create, c, new create a new proxy
usage: ‘toxiproxy-cli create
toggle, tog toggle enabled status on a proxy
usage: ‘toxiproxy-cli toggle
delete, d delete a proxy
usage: ‘toxiproxy-cli delete
toxic, t add, remove or update a toxic
usage: see ‘toxiproxy-cli toxic’