MySQL Filter
The following documentation runs through the setup of Envoy described above.
Ensure that you have a recent versions of and docker-compose
installed.
A simple way to achieve this is via the Docker Desktop.
Step 2: Clone the Envoy repo
SSH
HTTPS
git clone https://github.com/envoyproxy/envoy.git
Terminal 1
Step 4: Issue commands using mysql
Terminal 1
$ docker run --rm -it --network envoymesh mysql:5.5 mysql -h envoy -P 1999 -u root
... snip ...
mysql> CREATE DATABASE test;
Query OK, 1 row affected (0.00 sec)
mysql> USE test;
Database changed
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT COUNT(*) FROM test;
| COUNT(*) |
+----------+
| 0 |
+----------+
1 row in set (0.01 sec)
mysql> INSERT INTO test VALUES ('hello, world!');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT COUNT(*) FROM test;
+----------+
| COUNT(*) |
| 1 |
+----------+
mysql> exit
Bye
Check egress stats were updated.
Terminal 1
Step 6: Check TCP stats
Terminal 1
$ curl -s http://localhost:8001/stats?filter=mysql_tcp
tcp.mysql_tcp.downstream_cx_no_route: 0
tcp.mysql_tcp.downstream_cx_rx_bytes_buffered: 0
tcp.mysql_tcp.downstream_cx_rx_bytes_total: 347
tcp.mysql_tcp.downstream_cx_total: 1
tcp.mysql_tcp.downstream_cx_tx_bytes_buffered: 0
tcp.mysql_tcp.downstream_cx_tx_bytes_total: 702
tcp.mysql_tcp.downstream_flow_control_paused_reading_total: 0
tcp.mysql_tcp.downstream_flow_control_resumed_reading_total: 0
tcp.mysql_tcp.idle_timeout: 0
tcp.mysql_tcp.upstream_flush_total: 0