Skip to content

Technical Overview

Dimitris Papagiannis edited this page Jul 19, 2023 · 16 revisions

Frontend

The frontend is composed of a minimal Python http.server (in frontend/server.py) which serves, statically, index.html which, in turn, includes all the JavaScript files which take care of all the dynamic functinality.

Backend

The backend consists of:

  • The Flask API server (backend/api.py)
  • Scripts for background tasks:
    • dqm_extractor.py which calls the following scripts:
      • oms_extractor.py
      • rr_extractory.py

dqm_extractor.py

  • Read Configs, get Monitoring elements, setup config metrics
  • Add new configs or update old config. We are not removing old configs (but they are not updated with new run information). Even if we update the metric or reference in config used for calculation, we do not change the existed Trends in DB.
  • Finds all the GUI ROOT files on EOS. Filtering ROOT files based on version number. Ignore file if it is already in DB.
  • Extracts MEs from files and updates Trends
  • If run is not known: updates Run, OMS and RR data.

Complete picture

flowchart TD
    rr[Run Registry]
    oms[OMS API]

    subgraph HDQM
        subgraph Frontend
            feserver["HTML/JS\nserved via http.server"]
        end
        subgraph Backend
            apiserver["API (Flask)\n\n/api/..."]
        end

        subgraph dqmextractor["dqm_extractor.py"]
            rr_extractor
            oms_extractor
        end    
        feserver<-->apiserver
    end
    EOS-->dqmextractor
    apiserver<-->db[Database]
    dqmextractor-->db
    rr-->rr_extractor
    oms-->oms_extractor
Loading