Galaxy Performance Tracking¶
Tracking performance over time and identifying slow queries in your Galaxy can be an extremely important thing to do, especially for larger Galaxies.
As you have certainly switched to uWSGI from the default paste server, there is some built-in uWSGI support for performance logging. You can send uWSGI’s internal metrics to a carbon (Graphite) server by setting the carbon option in your galaxy.yml:
uwsgi: socket: ... carbon: 127.0.0.1:2003
Or a StatsD server via:
wsgi: socket: ... statsd-push: 127.0.0.1:8125
The official documentation contains further information on uWSGI and stats servers. In the uWSGI Stats Server <http://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html> documentation, you can see an example of the sort of information that you will be able to collect.
API / Route Timing Statistics¶
Galaxy provides middleware to automatically log the amount of time controllers take to execute and to send that data to a stats server. Using the stats server of your choice, you can calculate the relevant statistics to ensure that your Galaxy server is performing as expected.
The statsD configuration requires setting the following options in the
galaxy section of
galaxy: #... statsd_host: 127.0.0.1 statsd_port: 8125 statsd_prefix: galaxy
And the graphite configuration is very similar:
galaxy: # ... graphite_host: 127.0.0.1 graphite_port: 2003 graphite_prefix: galaxy
Most people visualize the statistics using something like Grafana: