Horizon UI for Monasca
0d4bd0bd25
babel extractors are now registered via python entry points, so there is no need to declare babel extractors in babel configs. This change is important to make translation work in Django 2.2. django-babel does not work with Django 2.2 and looks unmaintained for over two years. The horizon team is thinking to switch the extractor to enmerkar (a fork of django-babel) to make extraction of translation string work again near future. It is important to drop the extractor definition to make the transition smooth. Change-Id: I84d36a14b779a510bea5a24d991192016ae73273 |
||
---|---|---|
debian | ||
grafana-dashboards | ||
monitoring | ||
releasenotes/notes | ||
tools | ||
.gitignore | ||
.gitreview | ||
.zuul.yaml | ||
babel-django.cfg | ||
babel-djangojs.cfg | ||
LICENSE | ||
lower-constraints.txt | ||
manage.py | ||
mkdocs.yml | ||
README.rst | ||
requirements.txt | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
Team and repository tags
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.json \
$(pwd)/openstack_dashboard/conf/monitoring_policy.json
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.json \
$(pwd)/openstack_dashboard/conf/monitoring_policy.json
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