We would like to be able to run multiple proxysql docker containers for different applications on the same docker host. We’d like to monitor them with PMM by placing a pmm-agent alongside each proxysql container, one per container instance. The out-of-the-box PMM server setup does not seem to allow us to have the pmm-agent listen internally on the default port, but have PMM server connect to it on whatever random port docker assigns. Also, there does not seem to be a way for pmm-agent to listen on an alternate port and therefore we cannot run more than one pmm-agent instance per host.
Is there a way to allow docker to randomly assign an external port that we can then publish to the PMM server for scraping prometheus metrics on the pmm-agent container?
Basically, are there suggestions to have PMM server communicate with multiple pmm-agent docker containers per host?
Hi Jon,
There is no need to run multiple instances of pmm-client in order to monitor multiple servers on a machine or container. You can add additional listening services for the additional instances of mysqld or ProxySQL like so:
mysqld (you use the --host and --port parameters): [INDENT]$ sudo pmm-admin config --server {pmm-server}
$ sudo pmm-admin add mysql --host 127.0.0.1 --port 3306 --user root --password password local3306
$ sudo pmm-admin add mysql --host 127.0.0.1 --port 3307 --user root --password password local3307[/INDENT]
ProxySQL (you use the --dsn parameter): [INDENT]$ sudo pmm-admin config --server {pmm-server}
$ sudo pmm-admin add proxysql:metrics
After configuration you can check that the services are installed with pmm-admin list [INDENT]$ sudo pmm-admin list
pmm-admin 1.1.3
PMM Server | xx.xx.xx.xx
Client Name | 260a116c4a3e
Client Address | xx.xx.xx.xx
Service Manager | unix-systemv
SERVICE TYPE NAME LOCAL PORT RUNNING DATA SOURCE OPTIONS
mysql:queries local3306 - YES root:@tcp(127.0.0.1:3306) query_source=slowlog, query_examples=true
mysql:queries local3307 - YES root:@tcp(127.0.0.1:3307) query_source=slowlog, query_examples=true
linux:metrics local3306 42000 YES -
mysql:metrics local3306 42002 YES root:@tcp(127.0.0.1:3306)
mysql:metrics local3307 42003 YES root:@tcp(127.0.0.1:3307) [/INDENT]