We are enthusiastic to announce the release of: gnocchi 2.2.0: Metric as a Service For more details, please see below. Changes in gnocchi 2.1.0..2.2.0 ------------------------------- fb3e98e sqlalchemy: increase the number of max_retries 9170d7b test: fix race condition in update testing 5e71480 add support for coordination fba36a1 tests: extend the test timeout to 120s for migration sync testing 4022bdb Add home-page in setup.cfg defda73 carbonara: embed a benchmark tool bfefeb2 carbonara: do not use oslo_log b580c09 indexer: put extend_existing in __tables_args__ 0ddbe2f improve task distribution 5baba42 sqlalchemy: simplify kwarg of retry dbc3b97 Add iso8601 to requirements 4896b9c metricd: cleanup logging message for progress 95aae75 sqlalchemy: remove deprecated kwargs retry_on_request 5551a27 sqlalchemy: fix PostgreSQL transaction aborted in unmap_and_delete_tables d272d07 Fix list resource race d46fa37 rest: set useful default values for CORS middleware db0eb3f rest: enable CORS middleware without Paste 880b3b8 truncate AggregatedTimeSerie on init e57eed5 return explicitly InvalidPagination sort key a2a7fe5 fix object_exists reference c36efb1 Indicate we added a bunch of new features ac86707 doc: Update grafana plugin documentation a65f0d9 metricd: use Cotyledon lib db1aeab devstack: Move to grafana 3.x 95e47fc add missing key param to method definition e7a9a57 rest: allow to use X-Domain-Id in policy rules b2742c0 Add support for Python 3.5 b9a0707 Fix CORS middleware setup e39b265 fix tooz requirement 62913af ceph: uses only one ioctx fe711a1 simplify model loading d2044e3 Revert "carbonara: compress all TimeSerie classes using LZ4" 932741b devstack: Fix requirement typo 78a37f0 Use pbr WSGI script to build gnocchi-api c2ef2b0 ceph: change make method names for new measures 439d5a3 Expose resource type state to the API 778affc track resource_type creation/deletion state a771322 carbonara: compress all TimeSerie classes using LZ4 24d2854 separate cleanup into own worker f52e62a Tuneup gabbi metric.yaml file to modern standards da74bc2 Tuneup gabbi resource_type.yaml file to modern standards 4576f1b Tuneup gabbi search_metric.yaml file to modern standards 9ac00bd Tuneup gabbi resource_aggregation.yaml file to modern standards ebb1e33 Tuneup gabbi resource.yaml file to modern standards f6a7f4e sqlalchemy: fix MySQL error handling in list_resources c64132a _carbonara: use tooz heartbeat management 3156b9d _carbonara: set default aggregation_workers_number to 1 e275feb Enable CORS by default 6980d7a Rename gabbits with _ to have - instead 2d7151e Correct concurrency of gabbi tests for gabbi 1.22.0 1da7668 tests: fix Gabbi live test to not rely on legacy resource types 0bbf079 swift: force retry to 1 3af0fcb swift: raise an explicit error if bulk-delete is unavailable 4f2102d Added endpoint type on swift configuration. 8a4ddb3 use async delete when remove measures 93d83cd Fix tempest tests that use SSL 18a260f _carbonara: fix race condition in heartbeat stop condition 37e17ce enable pagination when querying metrics dbfe050 doc: include an example with the `like' operator 8932aad metricd: only retry on attended errors and print error when coordinator fails 8da588d metricd: no max wait, fix comment 10975c5 test: move root tests to their own class 227d5c6 rest: report dynamic aggregation methods in capabilities in a different field 4934c2b _carbonara: stop heartbeat thread on stop() f181d4b tests: create common resources at class init time ee2eb67 tests: remove skip_archive_policies_creation 955591a tests: do not create legacy resources 09377bf sqlalchemy: add missing constraint delete_resource_type() 3467486 sqlalchemy: no fail if resources and type are deleted under our feet 7ce5051 sqlalchemy: retry on PostgreSQL catalog errors too b1788f2 sqlalchemy: retry on deadlock in delete_resource_type() aceb647 Enable releasenotes documentation 72c8b5f Tuneup gabbi transformedids.yaml file to modern standards cc06c73 Tuneup gabbi search.yaml file to modern standards 5a35b71 Tuneup gabbi pagination.yaml file to modern standards 6dea9de Tuneup gabbi metric_granularity.yaml file to modern standards 6aae457 raise NoSuchMetric when deleting metric already marked deleted 24073a3 Tuneup gabbi history.yaml file to modern standards fc7877c Tuneup gabbi batch_measures.yaml file to modern standards d1cecc5 Tuneup gabbi base.yaml file to modern standards 7224d9e Tuneup gabbi async.yaml file to modern standards 18b8baa Tuneup gabbi archive.yaml file to modern standards 505a6a2 Tuneup gabbi archive_rule.yaml file to modern standards e91d7e6 Tuneup gabbi aggregation.yaml file to modern standards 10ce637 fix some typos in doc, comment & code d74ea92 add unit column for metric 3cfcd07 devstack: ensure grafana plugin for 2.6 is installed 1b7f01d Revert "tests: protect database upgrade for gabbi tests" 831ed2f Make tempest tests compatible with keystone v3 fb972ac sqlalchemy: retry on deadlock for create_resource_type() 6ba5511 sqlalchemy: retry on deadlocks in get_resource() 3df9cf7 sqlalchemy: avoid deadlock on list_metrics() d80d93c sqlalchemy: retry on deadlock for create_metric() 78503d9 sqlalchemy: retry on deadlock for create_resource() 2e1d8f6 sqlalchemy: add retry on deadlock for delete_resource() 1e1ee3c sqlalchemy: set max_retries & all when retrying e8965b1 tests: move custom agg setup code in the tests using it 7dd8046 tests: protect database upgrade for gabbi tests 1baa714 fix details filter for measures report 2a4b0b5 gate: remove old job conf b502fa1 devstack: remove support for old devstack ceph plugin 6319a12 Backlog status not accurate when batching 99d91a0 sql: default to pymysql 1d3c675 support shrinking/extending policy timespan 702672c doc: add a glossary 95e702d rest: catch InvalidResourceAttributeName when creating resource type 19e9c59 doc: fix the number of points for 30 days 20c55fe rest: return a better error message when history is not found a725a3f Fixed typo in documentation 32ddf6d remove verbose option in devstack plugin a1d02ee Update hacking to 0.11 2343d10 doc: fix the number of storage drivers c2d722b gate: work with old and new devstack ceph plugin a0d1e9a [alembic] delete a blank line from script.py.mako 791ca77 Fix uuidgen not installed in some ubuntu installs 39b2bf7 Remove annoying debug log 28650af Replace logging with oslo_log 8da63a2 use thread safe fnmatch 24ca86b fix resource_type tablename for instance_net_int 441d68f tests: Add more integration tests coverage 2478606 Drop useless enum c23835f Don't delete archive policy used by ap rule 3f71414 Reduce length of some foreign keys e7340f9 Fix foreignkey names of host/host_history table fe3c93f doc: add resource history in features 7adc938 doc: remove legacy resource types listing 6a5c271 Fix broken ceilometer resources migration script c4d7924 tests: fix a fuzzy test for archive policy rules 56d3e67 doc: rely on oslo-config-generator to generate the config file 69f7819 Don't encode exception message in ascii d784fa3 Remove unused requirement PrettyTable Diffstat (except docs and test files) ------------------------------------- .gitignore | 1 + .testr.conf | 2 +- devstack/gate/gate_hook.sh | 1 - devstack/plugin.sh | 58 +- devstack/settings | 10 +- etc/gnocchi/api-paste.ini | 9 +- etc/gnocchi/gnocchi-config-generator.conf | 9 + etc/gnocchi/policy.json | 1 + gnocchi-config-generator.conf | 9 - gnocchi/aggregates/__init__.py | 2 - gnocchi/carbonara.py | 63 +- gnocchi/cli.py | 312 +++++++--- gnocchi/exceptions.py | 2 - gnocchi/genconfig.py | 2 +- gnocchi/gendoc.py | 2 +- gnocchi/indexer/__init__.py | 45 +- gnocchi/indexer/alembic/script.py.mako | 1 - .../versions/2e0b912062d1_drop_useless_enum.py | 39 ++ .../versions/34c517bcc2dd_shorter_foreign_key.py | 91 +++ .../7e6f9d542f8b_resource_type_state_column.py | 43 ++ .../c62df18bf4ee_add_unit_column_for_metric.py | 38 ++ .../versions/ed9c6ddc5c35_fix_host_foreign_key.py | 53 ++ ...ffc7bbeec0b0_migrate_legacy_resources_to_db2.py | 65 +++ gnocchi/indexer/null.py | 2 - gnocchi/indexer/sqlalchemy.py | 479 +++++++++++---- gnocchi/indexer/sqlalchemy_base.py | 33 +- gnocchi/opts.py | 21 +- gnocchi/resource_type.py | 10 +- gnocchi/rest/__init__.py | 65 ++- gnocchi/rest/app.py | 41 +- gnocchi/rest/app.wsgi | 9 +- gnocchi/service.py | 7 +- gnocchi/storage/__init__.py | 39 +- gnocchi/storage/_carbonara.py | 60 +- gnocchi/storage/ceph.py | 251 ++++---- gnocchi/storage/file.py | 7 +- gnocchi/storage/null.py | 2 - gnocchi/storage/swift.py | 25 +- gnocchi/tempest/scenario/__init__.py | 30 +- gnocchi/utils.py | 8 - releasenotes/notes/.placeholder | 0 releasenotes/source/2.1.rst | 6 + releasenotes/source/_static/.placeholder | 0 releasenotes/source/_templates/.placeholder | 0 releasenotes/source/conf.py | 274 +++++++++ releasenotes/source/index.rst | 18 + releasenotes/source/unreleased.rst | 5 + requirements.txt | 7 +- setup-test-env.sh | 13 - setup.cfg | 26 +- tox.ini | 36 +- 93 files changed, 4622 insertions(+), 2825 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index 306fd64..88ef618 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,0 +3 @@ numpy +iso8601 @@ -7,2 +8,2 @@ oslo.serialization>=1.4.0 -oslo.utils>=1.6.0 -oslo.middleware +oslo.utils>=3.3.0 +oslo.middleware>=3.11.0 @@ -12,0 +14 @@ futures +cotyledon>=1.2.2 @@ -23 +24,0 @@ PasteDeploy -prettytable