QueryPro is a multi tiered system for gathering and analyzing various database metrics to aid in monitoring of complex software system. QueryPro provides monitoring at the database level via performance and usages stats, as well as the application level by providing query collection and analysis.
It's important to run QueryPro on a new server instance, whether in an existing network or a new one. This can be done with any cloud service i.e. DigitalOcean, AWS, etc. QueryPro sets up custom firewall rules and requires specific ports, which may interfere with existing services and have broad security implications for an existing server setup.
DISCLAIMER: QueryPro is still in the experimental phase. Using the public source code, somebody could reverse engineer the code and gain access to data. It is very IMPORTANT to only run / install QueryPro on a restricted server that is not open to the world until a more stable release.
First check if an existing bash install script exists for your distribution i.e. install/ubuntu/14.04/install.sh
.
WARNING: The install scripts are still experimental, they may not work as expected yet.
If an install script exists, simply SSH into the server instance, pull the repo, set credentials (see below), and install with sudo
cd /opt && git clone https://github.com/jessecascio/querypro.git
vi /opt/querypro/cred-config.env
sudo /opt/querypro/install/ubuntu/14.04/install.sh
Once installation is complete all the Docker containers will be up and running and can be verified with
sudo docker ps
-
Update the OS i.e.
sudo apt-get update
-
Install the latest version of Docker
-
Install the latest version of Docker Compose
-
Install git
-
Clone the QueryPro repo
cd /opt && git clone https://github.com/jessecascio/querypro.git
-
Set desired default configurations in
cred-config.env
Set credentials for UI
USER=querypro PASSWORD=querypro
Set credentials for database
DATA_USER=querypro DATA_PASS=querypro
Set timezone for time series grouping
TIMEZONE=PST
-
Start the QueryPro containers as daemons
sudo docker-compose up -d
-
Verify UI via browser with server IP
XXX.XXX.XXX.XXX
-
Finally, as a security measure, update firewall settings to only allow access to ports: 80, 8080, 4444. Port 4444 should only be accessible from the IP addresses of application servers.
Once the QueryPro has been installed it can be accessed via the IP address of the server is was installed on. All data should be sent to QueryPro via the server IP address using UDP port 4444. The UI can be accessed in the browser using the server's IP.
Communication with QueryPro should be done via one of the supported libraries as they follow the required data structure.
- querypro-php - QueryPro PHP Library
- querypro-nodejs - QueryPro NodeJS Library (COMING SOON)
- querypro-java - QueryPro Java Library (COMING SOON)
- querypro-python - QueryPro Python Library (COMING SOON)
If a library is not available for your language, and you feel like contributing, please reach out and we will send over the expected data structure for QueryPro submissions so that a new library can be created or you can write custom code.