We are glowing to announce the release of: aodh 3.0.0: OpenStack Telemetry Alarming This release is part of the newton release series. For more details, please see below. 3.0.0 ^^^^^ New Features ************ * Enable aodh services, including aodh-evaluator, aodh-listener and aodh-notifier to run in multiple worker mode. New options are introduced corresponsively as [evaluator]workers, [listener]workers and [notifier]workers. They all default to 1. * Add support for batch processing of messages from queue. This will allow the aodh-listener to grab multiple event messages per thread to enable more efficient processing. * A new option “rest_notifier_ca_bundle_certificate_path” has been added in the configuration file, set None as default value. If this option is present and SSL is used for alarm action the certificate path provided will be used as value of verify parameter in action request. * Allow to extends the alarm evaluation windows to to compensate the reporting/ingestion lag. An new option is introduced additional_ingestion_lag defaulted to 0. It represents the number of seconds of the window extension. * Add support for batch processing of messages from queue. This will allow the aodh-notifier to grab multiple messages per thread to enable more efficient processing. Upgrade Notes ************* * Add a tool for migrating alarm and alarm history data from NoSQL storage to SQL storage. The migration tool has been tested OK in devstack environment, but users need to be cautious with this, because the data migration between storage backends is a bit dangerous. * batch_size and batch_timeout configuration options are added to [listener] section of configuration. The batch_size controls the number of messages to grab before processing. Similarly, the batch_timeout defines the wait time before processing. * batch_size and batch_timeout configuration options are added to [notifier] section of configuration. The batch_size controls the number of messages to grab before processing. Similarly, the batch_timeout defines the wait time before processing. * Add a tool for converting combination alarms to composite alarms, since we have deprecated the combination alarm support and recommend to use composite alarm to perform multiple conditions alarming. Deprecation Notes ***************** * The combination alarms are officially deprecated and disabled by default. Set api.enable_combination_alarms to True to enable them. Existing alarms will still be evaluated, but access to them via the API is linked to whether that configuration option is turned on or off. It's advised to use composite alarms instead. Bug Fixes ********* * [bug 1582131 (https://bugs.launchpad.net/aodh/+bug/1582131)] Fix an issue with adding CA_BUNDLE certificate parth as value of "verify" parameter in SSL requests. * [bug 1575530 (https://bugs.launchpad.net/aodh/+bug/1575530)] Patch was added to fix and improve the partition coordinator, make sure the input tasks can be correctly distributed to partition members. Other Notes *********** * Alarm name unique constraint for each project has been removed. Changes in aodh 2.0.0..3.0.0 ---------------------------- 9ee22bc Add pre-signed support for zaqar notifier a0d9500 Imported Translations from Zanata 624197b standardize release note page ordering 3e1ed2e devstack: set correct port number for aodh-api 28b7804 aodh-notifier: fix the launch bug 3990c5b devstack: fix aodh-api launch 25d53a9 inmemory: add % parameter to formating string 5f30cc0 add url in setup.cfg ffdcc99 Clean imports in code 0f39887 Revert "Fix config group for SSL in tempest test" 64011bb remove default=None for config options 3d3ad69 Fix config group for SSL in tempest test b468632 Remove unnecessary confirm prompt 1a21cfc Limit Happybase to < 1.0.0 5a3e03c Fix tempest.conf generation c67367f Fix French locale build 74775fa Use proper international logging message a0bf3c3 fix the %{} when string formating 31c9b03 Imported Translations from Zanata 8907676 Trival: Remove unused logging import 4aa1bce Delete openstack/common from the exclude list of flake8 in tox b3874c4 Allow to extends the evaluator lookback window 893a0cd Remove Nadya Privalova from core reviewers 417c0af Add Python 3.5 classifiers for Aodh b2020a8 update .gitignore for install-guide/build f3c6ccc Imported Translations from Zanata b11d936 gnocchi: always set needed_overlap for aggregation 3b312fd Remove unused LOG object c41e111 Record the state transition reason in alarm's history data when evaluating ddedc4b use Cotyledon lib 735fb21 Add __ne__ built-in function 1c3e146 Add install-guide for aodh d18125a Replace raw_input with input to make PY3 compatible 7b82364 sqlalchemy: allow to upgrade schema from Ceilometer Liberty fa1ed2e Make help string more accurate for rest notifier 352ec64 Correct the order when sorting by "severity" 472c286 Fixing ordering of 'severity' in alarms 2e3a24f doc: remove leftover from docbookrestapi 86e94d9 Correct concurrency of gabbi tests for gabbi 1.22.0 ff3d24e Fix trust notifier 2a1a6ad Use "topics" instead of "topic" in Notifier initialization d296996 Clean deprecated "rpc_backend" in tests 050a7dc Support combination alarms to composite alarms conversion 5810cd1 Imported Translations from Zanata 8e66fed Imported Translations from Zanata 788403b Add ca_bundle path in ssl request 816bed7 Add indexs of alarm.enabled and alarm.type 9c5df84 Catch DriverLoadFailure for get_transport optional cb91079 Bump the oslo.messaging version 5617d03 gabbi: fail test if no backend configured b28a724 Imported Translations from Zanata 467a041 Replace overtest by pifpaf ef96e68 Make some tests more like Aodh tests e756b33 skip test_create_delete_alarm_with_combination_rule 4f5e47a tests/functional: enable Gabbi for all backends fdc4cf7 Imported Translations from Zanata bb7d87f fix typos in our doc, comment and releasenotes 67b607f Use pbr wsgi_scripts to build aodh-api be48208 Add pagination support for Aodh a096e57 Add a tool for migrating alarms data from NoSQL to SQL 20abf3b api: deprecate and disable combination alarms 3f3697e Update the home-page with developer documentation f5be40f Clean unrelated error of two tests cab9c36 Remove unused option `host' 06409df Remove the unused dict_to_keyval and its test e7c1108 gnocchi: log on warning level, not exception 1ada34e Don't notify alarm on each refresh 413f83d remove alarm name unique constraint in each project 8e72117 Update to hacking 0.11.0 821f0dd generate latest sample config file along with document 229d35a move aodh-config-generator.conf to etc/aodh dir 3daed76 [Trivial] Remove an unused exception definition 09ec847 Trival fix bug in docs a87f0f3 service: fix typo in option help for listener workers 56f24bd Add batch listener support for event evaluator d13f01f [Trivial] Remove two unused methods of PartitionCoordinator 9a0148f Add missing Python 3 classifiers 94c4c52 log alarm rest notifier response dd06bf9 Fix and improve the partition coordinator 520425f support batch listener for aodh-notifier 2f5cfb6 Enable aodh service to be multi-processes 1c5bd9e [Trivial] Improve alarm reason text 9b1eea8 [Trivial] Use local conf instead of global conf 3c1b8db [Trivial] Remove api bin unit test 4b163ea [Trivial] Add zaqar options to list_opts 85c207f [Trivial] Remove AODH_API_LOG_DIR option for devstack 267ecbb Update the default log levels d03403b Replace logging with oslo_log a4e900f Remove the notify_alarm method and refactor related tests ba275d3 Add documentation about event alarm 8122ee7 promote log level to warning for invalid event 17d71aa remove unused file pylintrc 9a307a8 remove todo for OS_TEST_PATH aed9a3d remove local hacking check for oslo namespace and log debug c8773d1 rm functions.sh 0e001fc remove deprecated auth type password-aodh-legacy 073a15a update document 9230658 Clean and reorganize the API config options 5200ec7 replace eventlet timer with thread manner b3a03e5 Imported Translations from Zanata 51b2667 use thread safe fnmatch 1c2582e use static timestamps for api samples ed4b2b0 add tempest to test requirement 90d373d document how to enable aodh stable branch in devstack 4b6114f remove deprecated option alarm_connection 832f088 add default value to functional test environment variables dd72bad fix some message string ed7c3b9 Remove an unrelated comment b286652 remove store_events option in devstack/plugin.sh 450bdc1 install aodhclient instead of ceilometerclient bc1a2e2 Imported Translations from Zanata 99bc365 fix release note link in README.rst 3f58e0c Fix doc build if git is absent fb8c8e4 Fix dependency from tempest-lib to os-testr f85cb4d use default option for notification topics 73cb322 Remove oslo.context dependency c07b0ca Clean deprecations from old "alarm" group 18dc462 Fix Aodh-alarm-evaluator recreates deleted alarms in some cases dd4c0f6 Remove the deprecated RPC IPC code 66714f6 remove non ascii character in doc 9d71ae4 api: rename _alarm to _enforce_rbac 819c0b5 api: stop relying on side-effect of _alarm() 9e0a6b3 Raise Error when query history of an alarm that are not existed 0d6ba3c Update reno for stable/mitaka 3859b9a add missing hbase requirement 3315341 devstack: allow uwsgi deployments f31a20c It is easy to understand to use words no numbers Diffstat (except docs and test files) ------------------------------------- .gitignore | 6 +- .testr.conf | 2 +- HACKING.rst | 2 - MAINTAINERS | 1 - aodh-config-generator.conf | 12 - aodh/__init__.py | 2 - aodh/api/__init__.py | 25 +- aodh/api/app.py | 39 +-- aodh/api/app.wsgi | 6 +- aodh/api/controllers/v2/alarm_rules/combination.py | 2 +- aodh/api/controllers/v2/alarm_rules/gnocchi.py | 9 +- aodh/api/controllers/v2/alarms.py | 111 ++++--- aodh/api/controllers/v2/base.py | 8 - aodh/api/controllers/v2/capabilities.py | 2 +- aodh/api/controllers/v2/query.py | 8 +- aodh/api/controllers/v2/utils.py | 24 ++ aodh/api/hooks.py | 4 +- aodh/api/middleware.py | 4 +- aodh/cmd/alarm.py | 17 +- aodh/cmd/alarm_conversion.py | 140 +++++++++ aodh/cmd/api.py | 24 -- aodh/cmd/data_migration.py | 162 ++++++++++ aodh/cmd/storage.py | 4 +- aodh/coordination.py | 105 +++++-- aodh/evaluator/__init__.py | 139 ++++---- aodh/evaluator/combination.py | 4 +- aodh/evaluator/composite.py | 4 +- aodh/evaluator/event.py | 17 +- aodh/evaluator/gnocchi.py | 44 +-- aodh/evaluator/threshold.py | 20 +- aodh/event.py | 43 +-- aodh/hacking/__init__.py | 0 aodh/hacking/checks.py | 69 ---- aodh/keystone_client.py | 113 ++----- aodh/locale/aodh-log-error.pot | 60 ---- aodh/locale/aodh-log-info.pot | 47 --- aodh/locale/aodh-log-warning.pot | 30 -- aodh/locale/aodh.pot | 332 -------------------- aodh/locale/de/LC_MESSAGES/aodh.po | 175 +++++++++++ aodh/locale/en_GB/LC_MESSAGES/aodh-log-error.po | 137 ++++++++ aodh/locale/en_GB/LC_MESSAGES/aodh-log-info.po | 115 +++++++ aodh/locale/en_GB/LC_MESSAGES/aodh-log-warning.po | 78 +++++ aodh/locale/en_GB/LC_MESSAGES/aodh.po | 230 ++++++++++++++ aodh/locale/es/LC_MESSAGES/aodh-log-info.po | 17 +- aodh/locale/es/LC_MESSAGES/aodh-log-warning.po | 33 -- aodh/locale/es/LC_MESSAGES/aodh.po | 177 +++++++++++ aodh/locale/fr/LC_MESSAGES/aodh.po | 177 +++++++++++ aodh/locale/it/LC_MESSAGES/aodh.po | 176 +++++++++++ aodh/locale/ja/LC_MESSAGES/aodh.po | 178 +++++++++++ aodh/locale/ko_KR/LC_MESSAGES/aodh.po | 168 ++++++++++ aodh/locale/pt/LC_MESSAGES/aodh-log-info.po | 16 +- aodh/locale/pt/LC_MESSAGES/aodh-log-warning.po | 34 -- aodh/locale/pt/LC_MESSAGES/aodh.po | 112 +------ aodh/locale/pt_BR/LC_MESSAGES/aodh.po | 175 +++++++++++ aodh/locale/ru/LC_MESSAGES/aodh-log-info.po | 17 +- aodh/locale/ru/LC_MESSAGES/aodh-log-warning.po | 35 --- aodh/locale/ru/LC_MESSAGES/aodh.po | 117 +------ aodh/locale/zh_CN/LC_MESSAGES/aodh-log-info.po | 46 +++ aodh/locale/zh_CN/LC_MESSAGES/aodh.po | 171 ++++++++++ aodh/locale/zh_TW/LC_MESSAGES/aodh.po | 162 ++++++++++ aodh/messaging.py | 31 +- aodh/notifier/__init__.py | 214 ++++++------- aodh/notifier/rest.py | 31 +- aodh/notifier/trust.py | 2 +- aodh/notifier/zaqar.py | 80 +++-- aodh/opts.py | 37 +-- aodh/queue.py | 2 +- aodh/rpc.py | 60 ---- aodh/service.py | 41 ++- aodh/storage/__init__.py | 22 +- aodh/storage/base.py | 34 +- aodh/storage/hbase/inmemory.py | 2 +- aodh/storage/hbase/utils.py | 9 +- aodh/storage/impl_hbase.py | 21 +- aodh/storage/impl_log.py | 3 +- aodh/storage/impl_mongodb.py | 4 - aodh/storage/impl_sqlalchemy.py | 74 ++++- aodh/storage/models.py | 12 + aodh/storage/mongo/utils.py | 8 +- aodh/storage/pymongo_base.py | 29 +- .../f8c31b1ffe11_add_index_for_enabled_and_type.py | 37 +++ aodh/storage/sqlalchemy/models.py | 2 + aodh/storage/sqlalchemy/utils.py | 12 +- .../functional/api/v2/test_alarm_scenarios.py | 349 +++++++++++++++++---- .../api/v2/test_complex_query_scenarios.py | 34 +- .../functional/storage/test_data_migration.py | 112 +++++++ .../functional/storage/test_storage_scenarios.py | 15 +- devstack/README.rst | 10 + devstack/plugin.sh | 93 ++++-- devstack/settings | 14 +- etc/aodh/aodh-config-generator.conf | 11 + functions.sh | 24 -- install-guide/source/conf.py | 300 ++++++++++++++++++ install-guide/source/configure-common.rst | 86 +++++ install-guide/source/get_started.rst | 28 ++ install-guide/source/index.rst | 15 + install-guide/source/install-obs.rst | 51 +++ install-guide/source/install-rdo.rst | 51 +++ install-guide/source/install-ubuntu.rst | 53 ++++ install-guide/source/next-steps.rst | 9 + install-guide/source/prereq-common.rst | 137 ++++++++ install-guide/source/verify.rst | 8 + pylintrc | 48 --- ...add-a-data-migration-tool-daa14b0cb5d4cc62.yaml | 7 + ...recate-combination-alarms-7ff26b73b61a0e59.yaml | 7 + ...h-service-multi-processes-67ed9a0b7fac69aa.yaml | 7 + ...nt-listener-batch-support-04e6ff159ef34d8c.yaml | 12 + .../notes/fix-ssl-request-8107616b6a85a217.yaml | 13 + .../notes/ingestion-lag-2317725887287fbc.yaml | 7 + .../notifier-batch-listener-01796e2cb06344dd.yaml | 12 + ...n-coordinator-improvement-ff1c257f69f120ac.yaml | 6 + ...rm-name-unique-constraint-4fb0b14f3ad46f0b.yaml | 3 + ...n-to-composite-conversion-3e688a6b7d01a57e.yaml | 6 + releasenotes/source/index.rst | 3 +- .../locale/en_GB/LC_MESSAGES/releasenotes.po | 315 +++++++++++++++++++ releasenotes/source/mitaka.rst | 6 + requirements.txt | 12 +- setup.cfg | 28 +- tox.ini | 37 ++- 157 files changed, 5742 insertions(+), 2501 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 233ab89..e29b1ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,0 +7,2 @@ croniter>=0.3.4 # MIT License +futures>=3.0;python_version=='2.7' or python_version=='2.6' # BSD +futurist>=0.11.0 # Apache-2.0 @@ -11 +12,0 @@ lxml>=2.3 -oslo.context>=0.2.0 # Apache-2.0 @@ -17 +17,0 @@ oslo.policy>=0.5.0 # Apache-2.0 -oslo.service>=0.1.0 # Apache-2.0 @@ -21 +21 @@ pecan>=0.8.0 -oslo.messaging>2.6.1,!=2.8.0 # Apache-2.0 +oslo.messaging>=5.2.0 # Apache-2.0 @@ -24 +24 @@ oslo.serialization>=1.4.0 # Apache-2.0 -oslo.utils>=1.9.0 # Apache-2.0 +oslo.utils>=3.5.0 # Apache-2.0 @@ -31,2 +31 @@ stevedore>=1.5.0 # Apache-2.0 -tooz>=0.16.0 # Apache-2.0 -Werkzeug>=0.7 # BSD License +tooz>=1.28.0 # Apache-2.0 @@ -34,0 +34 @@ WSME>=0.8 +cotyledon