From a443e3ded055088bde7594eb52d9050c23c5f32e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Tue, 17 May 2022 20:21:01 +0200 Subject: [PATCH] Improve RESTAPI example scripts 'kill_idle_backend_conns.py' and doc --- scripts/README.md | 7 ++++++- scripts/kill_idle_backend_conns.py | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/README.md b/scripts/README.md index a7164e38d..45d1c3418 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -7,7 +7,7 @@ This is a set of example scripts to show the capabilities of the RESTAPI interfa 1. Launch ProxySQL: ``` -./src/proxysql -M --sqlite3-server --idle-threads -f -c $PATH/restapi_examples/datadir/proxysql.cnf -D $PATH/restapi_examples/datadir +./proxysql -M --sqlite3-server --idle-threads -f -c $PROXYSQL_PATH/scripts/datadir/proxysql.cnf -D $PROXYSQL_PATH/scripts/datadir ``` 2. Configure ProxySQL: @@ -67,8 +67,13 @@ cd $RESTAPI_EXAMPLES_DIR/requirements ``` curl -i -X POST -d '{ "admin_host": "127.0.0.1", "admin_port": 6032, "admin_user": "radmin", "admin_pass": "radmin", "table": "stats_mysql_users" }' http://localhost:6070/sync/scrap_stats ``` + - Provoke script failure (non-existing table): + ``` + curl -i -X POST -d '{ "admin_host": "127.0.0.1", "admin_port": 6032, "admin_user": "radmin", "admin_pass": "radmin", "table": "stats_mysql_servers" }' http://localhost:6070/sync/scrap_stats + ``` ### Scripts doc - All scripts allows to perform the target operations on a local or remote ProxySQL instance. - Notice how the unique 'GET' request is for 'QUERY CACHE' flushing, since it doesn't require any parameters. +- Script 'stats_scrapper.py' fails when a table that isn't present in 'stats' schema is queried. This is left as an example of the behavior of a failing script and ProxySQL log output. diff --git a/scripts/kill_idle_backend_conns.py b/scripts/kill_idle_backend_conns.py index 54dcb0a16..666a57048 100755 --- a/scripts/kill_idle_backend_conns.py +++ b/scripts/kill_idle_backend_conns.py @@ -114,7 +114,12 @@ if __name__ == "__main__": print(json.dumps({"err_code": 1, "res": "Invalid resulset received for query `" + s_free_query + "`"})) exit(0) else: - free_conns = int(my_rows[0]['SUM(ConnFree)']) + conn_free_field = my_rows[0]['SUM(ConnFree)'] + + if conn_free_field is not None: + free_conns = int(conn_free_field) + else: + free_conns = 0 time.sleep(1)