Horizon UI for Monasca
OpenStack Release Bot
7f794a9f0b
This is an automatically generated patch to ensure unit testing is in place for all the of the tested runtimes for zed. See also the PTI in governance [1]. [1]: https://governance.openstack.org/tc/reference/project-testing-interface.html Change-Id: Idfe1e5221fdd64051cf87ae1a48ec539edb60f86 |
||
---|---|---|
debian | ||
grafana-dashboards | ||
monitoring | ||
releasenotes/notes | ||
tools | ||
.gitignore | ||
.gitreview | ||
.zuul.yaml | ||
babel-django.cfg | ||
babel-djangojs.cfg | ||
CONTRIBUTING.rst | ||
LICENSE | ||
lower-constraints.txt | ||
manage.py | ||
mkdocs.yml | ||
README.rst | ||
requirements.txt | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Monasca UI
monasca-ui
Monasca UI is implemented as a Horizon plugin that adds panels to Horizon. It is installed into devstack by the monasca-api plugin.
Devstack Deployment Set Up
cd /opt/stack/horizon
- Install Openstack upper-constraints requirements
pip install -c https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt -r requirements.txt
- Clone monasca-ui:
git clone https://opendev.org/openstack/monasca-ui.git
- Add
git+https://opendev.org/openstack/monasca-ui.git
torequirements.txt
. - Install monasca-ui required packages
pip install -r requirements.txt
(monasca-client packages will be installed.) - Edit
openstack_dashboard/settings.py
to include the following two lines:import monitoring.enabled
monitoring.enabled,
(Add this line to thesettings_utils.update_dashboards
list.)
- Link monasca into Horizon:
ln -sf $(pwd)/../monasca-ui/monitoring/enabled/_50_admin_add_monitoring_panel.py \
$(pwd)/openstack_dashboard/enabled/_50_admin_add_monitoring_panel.py
ln -sf $(pwd)/../monasca-ui/monitoring/conf/monitoring_policy.yaml \
$(pwd)/openstack_dashboard/conf/monitoring_policy.yaml
ln -sfF $(pwd)/../monasca-ui/monitoring $(pwd)/monitoring
- Collect static files, run tests
python manage.py collectstatic --noinput
python manage.py compress
./run_tests.sh
- Restart apache service
service apache2 restart
Development Environment Set Up
Get the Code
git clone https://opendev.org/openstack/monasca-ui.git # clone monasca-ui
git clone https://opendev.org/openstack/horizon.git # clone horizon
git clone https://github.com/monasca/grafana.git # clone grafana
git clone https://github.com/openstack/monasca-grafana-datasource.git # clone grafana plugins
Set up Horizon
Since Monasca UI is a Horizon plugin, the first step is to get their development environment set up.
cd horizon
./run_tests.sh
cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py
Pro Tip: Make sure you have Horizon running correctly before proceeding. For more details visit: https://docs.openstack.org/horizon/latest/#setup
Set up Monasca-UI
- Edit
openstack_dashboard/local/local_settings.py
to modify theOPENSTACK_HOST
IP address to point to devstack. - Add
monasca-client
torequirements.txt
. Get the latest version from: https://pypi.org/project/python-monascaclient - Link monasca into Horizon:
ln -sf $(pwd)/../monasca-ui/monitoring/enabled/_50_admin_add_monitoring_panel.py \
$(pwd)/openstack_dashboard/enabled/_50_admin_add_monitoring_panel.py
ln -sf $(pwd)/../monasca-ui/monitoring/conf/monitoring_policy.yaml \
$(pwd)/openstack_dashboard/conf/monitoring_policy.yaml
ln -sfF $(pwd)/../monasca-ui/monitoring $(pwd)/monitoring
./run_tests #load monasca-client into virtualenv
Set up Grafana 4.1
- The grafana4 branch of grafana is stable, as is master in monasca-grafana-datasource.
- Copy
monasca-grafana-datasource/
intografana/plugins/monasca-grafana-datasource/
. - Use the grafana docs to build and deploy grafana:
- Copy
monasca-ui/grafana-dashboards/*
to/public/dashboards/
in your grafana deployment. - Set
GRAFANA_URL
in the Horizon settings.
Start Server
./run_tests.sh --runserver
Style checks
To check if the code follows python coding style, run the following command from the root directory of this project:
$ tox -e pep8
Coverage checks
To measure the code coverage, run the following command from the root directory of this project:
$ tox -e cover
Unit tests
To run all the unit test cases, run the following command from the root directory of this project:
$ tox -e py36