Collection of CLI monitoring tools for openQA:
- openqa-mon - live monitoring of openQA jobs
- openqa-mq - Print openQA-related RabbitMQ messages
- openqa-revtui - openQA review dashboard
Those utilities are intended as realtime monitoring tools for checking on openQA jobs. In contrast to the browser interface they are more compact, easier on your resources and allow you to monitor multiple jobs at the same time.
openqa-mon
is written in go with minimal requirements. The Makefile
provides rules for installing the requirements and building the binaries.
make requirements # manually install requirements
make
sudo make install # install the binaries to /usr/local/bin
make install ~/bin # install the binary to bin in your home folder
Static builds
CGO_ENABLED=0 make -B -j4 GOARGS="-buildmode pie"
or
make static
Usage: openqa-mon [OPTIONS] REMOTE
REMOTE can be the directlink to a test (e.g. https://openqa.opensuse.org/t123)
or a job range (e.g. https://openqa.opensuse.org/t123..125 or https://openqa.opensuse.org/t123+2)
OPTIONS
-h, --help Print this help message
--version Display program version
-j, --jobs JOBS Display information only for the given JOBS
JOBS can be a single job id, a comma separated list (e.g. 42,43,1337)
or a job range (1335..1339 or 1335+4)
-c,--continuous SECONDS Continuously display stats, use rabbitmq if available otherwise status pulling
-e,--exit Exit openqa-mon when all jobs are done (only in continuous mode)
Return code is 0 if all jobs are passed or softfailing, 1 otherwise.
-b,--bell Bell notification on job status changes
-n,--notify Send desktop notifications on job status changes
--no-bell Disable bell notification
--no-notify Disable desktop notifications
-m,--monitor Enable bell and desktop notifications
-s,--silent Disable bell and desktop notifications
-f,--follow Follow jobs, i.e. replace jobs by their clones if available
--no-follow Don't follow jobs
--rabbitmq Explicitly enable rabbitmq (experimental!!)
--rabbit FILE Explicitly enable rabbitmq and load configurations from FILE
--no-rabbit Don't use RabbitMQ, even if available
-p,--hierarchy Show job hierarchy (i.e. children jobs)
--hide-state STATES Hide jobs with that are in the given state (e.g. 'running,assigned')
--config FILE Read additional config file FILE
-i, --input FILE Read jobs from FILE (additionally to stdin)
# Check the job overview
openqa-mon http://openqa.opensuse.org
# Check the status of the jobs 100,101 and 199
openqa-mon http://openqa.opensuse.org -j 100,101,199
# Continuous monitoring certain jobs (e.g. job 401558 and 401782)
openqa-mon -c 5 http://your-instance.suse.de 401558 401782
# Continuous monitoring job range (e.g. jobs 202-205, i.e. jobs 202,203,204,205)
openqa-mon -c 5 http://your-instance.suse.de 202..205
openqa-mon -c 5 http://your-instance.suse.de 202+3
# Continuous monitoring with all notifications and job hierarchy (show children)
openqa-mon -mfpc 2 http://your-instance.suse.de 413
You can omit the -j
parameter. Every positive, non-zero integer will be considered as job-id
.
openqa-mon http://openqa.opensuse.org 100 101 199
openqa-mon
reads configuration options from /etc/openqa/openqa-mon.conf
(global config) and from ~/.openqa-mon.conf
(user config).
See openqa-mon.conf for an example configuration file.
Note that setting DefaultRemote
, the tools will use this for defined job IDs or for displaying the job overview without specifying REMOTE
as parameter.
Since version 0.7.0, openqa-mon
has experimental RabbitMQ support. When monitoring jobs from a host with a configured RabbitMQ server, openqa-mon
will subscribe to the RabbitMQ and listen for job updates there instead of pulling job updates from the instance itself. This feature is by default disabled, unless activated via --rabbitmq
or via the RabbitMQ = true
setting in ~/.openqa-mon.conf
.
For RabbitMQ usage, matching RabbitMQ servers need to be configured in one of the following files:
/etc/openqa/openqamon-rabbitmq.conf
(recommended for system-wide configurations, e.g. OSD and O3)~/.config/openqa/openqamon-rabbitmq.conf
(recommended for custom configurations, e.g. your own openQA instance)
Alternatively, a custom file can be used using the --rabbit FILE
program argument.
A RabbitMQ configuration file is a ini-style file. See rabbitmq.conf.example.
When RabbitMQ is enabled, openqa-mon
will connect to all configured hosts. If all defined jobs have a corresponding RabbitMQ server, then the continuous monitoring will be paused to avoid pulling. If at least one job has no corresponding RabbitMQ server configured, then polling will be still enabled.
openqa-mq
connects to the given RabbitMQ server and prints all received messages.
openqa-mq ooo # Monitor the openSUSE RabbitMQ
openqa-mq osd # Monitor the SUSE internal openQA instance
openqa-revtui [OPTIONS] [FLAVORS]
openqa-revtui -c config.toml
openqa-revtui
is a terminal user interface for helping the user to review the jobs of whole job groups. The typical usage is to run openqa-revtui
with a predefined configuration toml file. The configuration file defines the remote openQA instance to monitor, job groups and additional query parameters, as well as settings to hide jobs that are not interesting for you (e.g. passing jobs).
You find a set of example configurations in the review subfolder.