QCG is a web graphical user interface for O2 Quality Control.
nodeJS
>= 16.x
yum install https://rpm.nodesource.com/pub_16.x/el/8/x86_64/nodejs-16.9.1-1nodesource.x86_64.rpm
brew install node@16 ; echo 'export PATH="/usr/local/opt/node@16/bin:$PATH"' >> $HOME/.bash_profile
WebUi
repository
git clone https://github.com/AliceO2Group/WebUi.git
cd WebUi/QualityControl
npm ci
cp config-default.js config.js
In order to customize QCG, you can edit the following configuration file: WebUi/QualityControl/config.js
Attribute to define the http
endpoint of the application.
Edit the http
section to define a custom:
hostname
port
Attribute to define the Computer Centre DataBase (CCDB)
endpoint.
Edit the ccdb
section to define a custom:
protocol = 'http'
- protocol to use when querying CCDB via HTTP API.hostname = 'localhost'
- hostname of the CCDB instanceport = '8080'
- port for accessing CCDB API[prefix = '']
- prefix to use for filtering on pathName[cachePrefix = 'qc']
- prefix to use for building the cache of object paths from CCDB[cacheRefreshRate = 120 * 1000]
- interval on which the paths of objects from CCDB should be refreshedAttribute to define if QCG is to be started as part of a QC integrated environment.
enabled = false
(Optional) Online Mode - If you need Online Mode read this section
npm start
Open a browser and navigate to http://localhost:8080.
Ensure that your browser is supported.
http
section of config.js
file.hostname
filed of http
section of config.js
file.QCG
is using CCDB as storage service. When storing an object, the user can also store information on how an object should be plotted via the metadata
field in CCDB. QualityControl documentation on how this can be achieved can be found here
drawOptions
: semi-colon separated drawing options; e.g. lcolz;colz
displayHints
: semi-colon separated hints; e.g. AP;APB
QCG
is able to display non-standard ROOT objects with the help of QC. More information can be found here
QCG is offering an optional Online Mode
which allows the user to view only QC Objects that are being generated live. This will only see objects if an instance of QualityControl is running and making use of the ServiceDiscovery class.
For this, QCG is using Service Discovery capabilities of Consul.
Once Consul
is installed and running, update the config.js
file of QCG
with information regarding on what host and port Consul agent is now running.
Moreover, a refresh rate interval can be set to limit the user number of requests. If no refreshRate
is provided, defaults as shown below will be used:
e.g.
consul: {
hostname: 'localhost',
port: 8500,
refreshRate: {
min: 10,
max: 120
}
}
Online mode will use an optional prefix for its queries specified in ccdb.prefix. This is to ensure the same results are provided in both Offline & Online mode.
As this functionality is optional, there will be no impact on QCG if a configuration for Consul
is not provided. A simple warning message as below will be shown to the user that the configuration is missing
2020-02-28T10:19:26.110Z warn: [QualityControlModel] Consul Service: No Configuration Found
In order to facilitate the transition from one environment (e.g. TST) to another (e.g. PROD) while at the same time updating it, an export feature is provided.
Export layout skeleton as JSON file
Once a layout is exported and modified as needed or created from scratch, one can import it into QCG as such:
MY LAYOUTS
label.Import
button.
Save
Layout from the top right corner button.To easily follow the progress of a RUN, layouts can automatically transition through the displayed tabs every few seconds. To configure:
pencil icon
button to start editing the layoutTab Auto-Change(sec): 0 (OFF), 10-600 (ON)
with the desired numerical valueQualityControl project makes use of two workflows.
ubuntu
macOS
tgz
file which contains an archive of the project. This can than be used for local repositories installations