Galaxy Monitoring with Reports


question Questions
  • How to monitor a Galaxy service with the Reports?

objectives Objectives
  • Setup and start the Galaxy reports app.

requirements Requirements

time Time estimation: 30 minutes

Supporting Materials

last_modification Last modification: Jan 20, 2020


The reports application gives some pre-configured analytics screens.


  1. Setting up Reports

Setting up Reports

The reports application is included with the Galaxy codebase and this tutorial assumes you’ve already done all of the setup required for Galaxy, Supervisord, uWSGI, and NGINX.

hands_on Hands-on: Setup Reports

  1. First we add a basic configuration of the Reports app to the playbook templates. Create templates/galaxy/config/ folder, if it doesn’t exist, and create templates/galaxy/config/reports.yml with the following contents:

        buffer-size: 16384
        processes: 1
        threads: 4
        offload-threads: 2
        static-map: /static/style={{ galaxy_server_dir }}/static/style/blue
        static-map: /static={{ galaxy_server_dir }}/static
        static-map: /favicon.ico=static/favicon.ico
        master: true
        virtualenv: {{ galaxy_venv_dir }}
        pythonpath: {{ galaxy_server_dir }}/lib
        mount: /reports=galaxy.webapps.reports.buildapp:uwsgi_app()
        manage-script-name: true
        thunder-lock: false
        die-on-term: true
        hook-master-start: unix_signal:2 gracefully_kill_them_all
        hook-master-start: unix_signal:15 gracefully_kill_them_all
        py-call-osafterfork: true
        enable-threads: true
        cookie-path: /reports
        database_connection: "postgresql:///galaxy?host=/var/run/postgresql"
        file_path: /data
        filter-with: proxy-prefix
        template_cache_path: "{{ galaxy_mutable_data_dir }}/compiled_templates"
  2. In your galaxyservers group variables file, tell the playbook to deploy the reports configuration file:

    - src: templates/galaxy/config/reports.yml
      dest: "{{ galaxy_config_dir }}/reports.yml"
  3. Similar to Galaxy we will again use Supervisor to manage the Reports process. In the same file (galaxyservers group variables file) edit the supervisor_programs section - add an entry for the Reports webapp:

      - name: reports
        state: present
        command: uwsgi --yaml {{ galaxy_config_dir }}/reports.yml
        configuration: |
          directory={{ galaxy_server_dir }}
          environment=HOME={{ galaxy_mutable_data_dir }},VIRTUAL_ENV={{ galaxy_venv_dir }},PATH={{ galaxy_venv_dir }}/bin:%(ENV_PATH)s
  4. Then we need to tell NGINX it should serve our Reports app under <server_url>/reports url. Edit your galaxyservers group variables file, and under the NGINX configuraiton, add a block for proxying the reports application. It should look like:

    location /reports {
        uwsgi_pass ;
        uwsgi_param          UWSGI_SCHEME $scheme;
        include              uwsgi_params;
  5. Run the playbook

  6. The reports application should be available, under <server_url>/reports/. Note the trailing slash.

keypoints Key points

  • Galaxy supports pluggable monitoring extensions.

  • The Reports webapp is one option to monitor your system.

Citing this Tutorial

  1. Nate Coraor, Björn Grüning, Simon Gladman, Helena Rasche, 2020 Galaxy Monitoring with Reports (Galaxy Training Materials). /archive/2020-02-01/topics/admin/tutorials/reports/tutorial.html Online; accessed TODAY
  2. Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems 10.1016/j.cels.2018.05.012

details BibTeX

    author = "Nate Coraor and Björn Grüning and Simon Gladman and Helena Rasche",
    title = "Galaxy Monitoring with Reports (Galaxy Training Materials)",
    year = "2020",
    month = "01",
    day = "20"
    url = "\url{/archive/2020-02-01/topics/admin/tutorials/reports/tutorial.html}",
    note = "[Online; accessed TODAY]"
        doi = {10.1016/j.cels.2018.05.012},
        url = {},
        year = 2018,
        month = {jun},
        publisher = {Elsevier {BV}},
        volume = {6},
        number = {6},
        pages = {752--758.e1},
        author = {B{\'{e}}r{\'{e}}nice Batut and Saskia Hiltemann and Andrea Bagnacani and Dannon Baker and Vivek Bhardwaj and Clemens Blank and Anthony Bretaudeau and Loraine Brillet-Gu{\'{e}}guen and Martin {\v{C}}ech and John Chilton and Dave Clements and Olivia Doppelt-Azeroual and Anika Erxleben and Mallory Ann Freeberg and Simon Gladman and Youri Hoogstrate and Hans-Rudolf Hotz and Torsten Houwaart and Pratik Jagtap and Delphine Larivi{\`{e}}re and Gildas Le Corguill{\'{e}} and Thomas Manke and Fabien Mareuil and Fidel Ram{\'{\i}}rez and Devon Ryan and Florian Christoph Sigloch and Nicola Soranzo and Joachim Wolff and Pavankumar Videm and Markus Wolfien and Aisanjiang Wubuli and Dilmurat Yusuf and James Taylor and Rolf Backofen and Anton Nekrutenko and Björn Grüning},
        title = {Community-Driven Data Analysis Training for Biology},
        journal = {Cell Systems}

congratulations Congratulations on successfully completing this tutorial!

Did you use this material as an instructor? Feel free to give us feedback on how it went.