CHANGES
=======

* When we use python3, it still find python2
* dynamic aggregates - metric not found
* Handle invalid values for getting all metrics
* Use unittest.mock instead of third party mock
* doc: Remove colon for multi metric-id aggregates
* Add .eggs directory to gitignore
* Move mergify to queue action
* Remove strict key from mergify config
* Update gabbi assertRegex because of changed output
* Check len() on pyparsing.ParseResult.asList()
* fix mergify job names
* Use health\_check\_interval
* Fix README include bound
* Update classifiers in setup.cfg
* Limit maximum metrics to be deleted simultaniously
* Policy in code requires oslo.policy >= 3.5.0
* ci: dont hardcode default branch for workflow
* ci: dont run actions on push
* ci: use add-apt-repository to install deadsnakes ppa
* doc: add 4.4 to reno release notes
* doc: update reno branches to new eol names
* Update Mergify config to check GitHub Actions
* Use mkdir -p for npm-s3rver dir and update a Travis comment
* Set credentials in STORAGE\_URL for S3 func tests
* Update documentation to reflect GitHub Actions
* Update tox.ini
* Add GitHub Action workflows
* Add gnocchi-container Github Action
* Set s3rver default credentials in testing
* Remove Travis CI badge from README
* Remove Travis CI functional tests
* storage: Make s3 credentials opts secret
* Add posargs to flake8 command in tox.ini
* Move IRC to OFTC
* Unpin SQLAlchemy
* Use isinstance() instead of type() for auth header
* Only convert set to list in amqp1d \_flush()
* Ignore H216 for flake8
* Fix SQLAlchemy 1.4 support
* Fix DB migration issue on MySQL >= 8
* Fix bytes to str decode in Authorization header
* Run upgrade testing from git
* Pin sqlalchemy and tenacity
* Add stop condition and fix comment
* Drop debug output
* Turn back testing to s3 and address review feedback
* Catch exception in another place
* Remove s3 and try to enable ceph again
* Remove empty line added in previous commit
* Move all exception handling to incoming/redis
* Remove left over variables in excepts
* decorate function and skip other exception
* Move redis to install dependencies
* Catch Redis server errors
* Enable attribute update on resource-type API
* Fix mergify config according to suggestion
* Dismiss reviews after pushing a new commit
* Use ROLE\_\* for rule based policies
* Re-enable tests using swift and s3 backend
* Only test file backend for now
* Add note about running docker tests locally
* Python 3.7 is removed
* Use policy.yaml in tests
* Implement policy in code (6): Release note
* Implement policy in code (5): Status
* Implement policy in code (4): Metrics and Measures
* Implement policy in code (3): Archive Policies and Archive Policy Rules
* Implement policy in code (2): Resources and Resource Types
* Implement policy in code (1): Basic framework
* Use yaml for policy file by default
* Pin chardet < 4
* Fix yaml deprecation warning
* Pin chardet<4
* Update hacking
* Revert "Pin oslo.policy<=3.4.0"
* Update mergify config
* Use Ceph CLI
* Pin oslo.policy<=3.4.0
* Set json template for DELETE requests
* Fix migrations reusing column objects

4.4.0
-----

* Add release note about MySQL >= 8 support
* Ensure member statistics key is decoded
* Add release note about Cradox removed
* Remove Cradox references
* Revert "Pull rados as dependency from distribution package"
* Pull rados as dependency from distribution package
* cradox is not supported anymore
* Use Bionic as dist in Travis
* Fix compatibility with MySQL >= 8
* Add back recommendations and remove debug
* Revert "Remove wrong response data checks in gabbits"
* Fix upgrade testing command not found
* Remove python2 testing
* Sphinx suppress ref.term warnings
* Remove seconds keyword from numpy.timedelta64
* Remove wrong response data checks in gabbits
* Enhance rest api logging
* Change URL to gnocchi.osci.io
* fix travis deploy
* minor cleanup
* py3: fix misc encoding issues
* fix test
* remove unused statistic code
* cleanup README.rst to upload to pypi
* handle infinity like nan
* Reduce the number of required reviewers
* fix gendoc
* Allow rate:XXX aggregations
* don't fail everything if one group missing metric
* Update to Mergify v2 engine
* Support for clip operation
* Switch from oslo.middleware to internal proxy converter
* ignore update\_capabilites if unsupported
* fix doc formatting
* api: Display voluptuous error details
* Disable sphinxcontrib-versioning
* docs: upgrade setuptools on doc build
* Fixup rendering on Pypi
* Hide username/password in indexer \_\_str\_\_ representation
* Fix computation for metrics with multiple granularities
* Fix splits update statistics dictionary key
* redis: fix sentinel Lua script registrations
* docs: use remove sphinx < 1.6 limitation, disable gnocchi.xyz doc job
* Don't require setuptools as runtime
* Revert "Disable Web doc build on stable/4.3 branch"
* Change the way to mimic pbr version
* Disable calling to get\_measures\_list in the get\_measures rest call
* This stops using deprecated storage.get\_measures
* storage: Remove useless fetch() in get\_measures()
* setuptools: Fix gnocchi-api sheban in wheel
* Update doc and tests for Gnocchi 4.3.0
* Disable Web doc build on stable/4.3 branch
* Don't use xattr 0.9.4
* Added amqp1.0 collectd daemon

4.3.0
-----

* storage: move MeasureQuery in REST API
* storage: remove find\_measures
* storage: make find\_measures batched
* Remove unused tox venv
* tests: disable warning for py27-mysql-ceph-upgrade-from-4.0
* doc: fix some syntax mistakes in Ceph paragraph
* Update mergify configuration
* Test against python3.7
* redis: fix list\_split\_keys with multiple metrics
* use fromiter to build array
* Docs: add reference to a Go SDK
* support resampling on calendar dates
* api: avoid some indexer queries
* Add automatic backport labels
* storage: get\_aggregated\_measures can retrieve multiple metrics
* new requests lib released
* Use rebase strategy to merge PR
* gate fix
* deps: fix min requirement of cradox
* storage: allow to list split keys for different metric at the same time
* redis: use hiredis parser
* file: allow to create a subdir to create less root directory
* Replace Pastamaker by Mergify
* swift: avoid Connection aborted
* injector: cleanup
* Update mergify configuration
* Enable mergify
* storage: allow to batch splits retrieval for multiple metrics
* indexer: drop/create missing constraint in slash reencoding migration script
* swift: pass the project domain
* Add gnocchi-injector
* metricd: fix typo in update\_capabilities
* incoming: provide group\_metrics\_by\_sack method
* tests: Fix debug logging
* tests: refresh metric instead of polling
* speed up iteration over ts
* tests: replace refresh\_metrics() with trigger\_processing in statsd
* api: remove parameter passing via Accept header
* ignore webob 1.8.0, it's broke
* don't do work if no measures
* chef: merge refresh\_metric and process\_new\_measures
* metricd: use process\_new\_measures\_for\_sack in test code
* metricd: publish statistics about processing speed
* storage: update and delete all splits for all metrics at once
* storage: update\_metric\_splits can batch several metrics at once
* tests: fix duplicate resource id between tests
* storage: batch split storage on multiple metrics
* storage: \_delete\_metric\_splits can now batch over multiple metrics
* git: ignore setuptools\_scm 1.16.0/1/2
* chef/storage: process all metrics from the sack in one single batch
* tests: fix conflicting user\_id UUID in test
* chef: lock sack when using process\_new\_measures\_for\_sack
* incoming: introduce process\_measures\_for\_sack
* Don't use pbr to get current version
* storage: postpone splits deletion/storage after BoundTimeSerie update
* carbonara: make BoundTimeSerie.set\_values return callback result
* ceph: change list\_keys\_to\_process to return values
* storage: merge all \_compute\_split\_operations calls into one
* storage: more batching of store/delete operations in add\_measures
* Make the build reproducible
* storage: do all listing for all aggregations at once in \_add\_measures
* storage: \_add\_measures can handle multiple aggregations at the same time
* storage: add a basic test for \_get\_splits\_and\_unserialize
* carbonara: pass Aggregation object to AggregatedTimeSerie.unserialize
* storage: add some tests for get\_measures\_aggregated
* Move out from pbr
* storage: remove metric existence check when retrieving splits
* storage: fix corruption scenario
* storage: stop raising AggregationDoesNotExist on measures retrieval
* storage: allow to pass different aggregations to measures retrieval functions
* storage: list split keys for all aggregations in one call
* doc: fix grafana doc url
* storage: introduce get\_aggregated\_measures and deprecate get\_measures
* storage: do not return empty data set on non-existing metric
* expand test to validate measures are deleted
* storage/file: fix new incoming measures deletion
* tests: Ensure signal are propagated to subshell
* doc: don't build sdist
* Set minimal setuptools version
* doc: Update setuptools for gnocchi.xyz
* storage: list\_split\_keys can now list several aggregations at once
* Add filter format in aggregation
* carbonara: use Aggregation object to create AggregatedTimeSerie
* storage: truncate the whole AggregatedTimeSerie, not every split
* doc: add more doc on pull-request and Pastamaker
* doc: document filter parameter
* carbonara: allow eq and ne comparison to SplitKey
* carbonara: make fetch() return an AggregatedTimeSerie
* carbonara: use \_\_slots\_\_ on SplitKey
* carbonara: handle timeseries derivation for rate aggregations
* storage: make \_add\_measures take an Aggregation object as argument
* storage: change \_delete\_metric\_measures to \_delete\_metric\_splits
* storage: replace \_store\_timeserie\_split by \_store\_timeserie\_splits
* Fix unicode error in filter error message
* storage: replace \_store\_unaggregated\_timeserie by \_store\_unaggregated\_timeseries
* tests: run functional tests on real backends
* storage: replace \_get\_unaggregated\_timeserie by \_get\_or\_create\_unaggregated\_timeseries
* storage: replace \_store\_metric\_measures with \_store\_metric\_splits
* rest: stop using set to validate archive policies
* Remove devstack support
* chef: move get\_sack\_lock from incoming
* incoming: introduce a Sack object
* chef: import process\_new\_measures and refresh\_metric
* storage: remove useless recomputing of values
* Add Chef class to orchestrate complex actions
* incoming: batch incoming measures retrieval
* improve documentation on tuning the number of sacks
* redis: use a Lua script to get measures
* redis: create metrics using a single hsetnx() operation
* redis: batch new measures retrieval with a Lua script
* api: simplify archive policy validation
* redis: use a Lua script to list split keys
* rest: use common function to validate some query arguments
* cleanup storage exceptions
* storage: stop requiring a coordinator
* travis: don't bootstrap useless pythonenv
* tox: don't install gnocchi twice
* Stop testing upgrade from Gnocchi 3.1
* tests: test upgrade from Gnocchi 4.2
* storage: pass Aggregation object to storage get\_measures()
* doc: update conf for stable/4.2

4.2.0
-----

* uwsgi: fix freeze, http/1.1 and keepalive
* uwsgi: --thunder-lock doesn't take param in cmd
* api: add some uwsgi flags
* redis: hmget requires at least one args
* redis: only check key existence if no keys are retrieved
* rest: load metric details for ACL
* tox: only run doc8 in docs target
* use concatenate consistently
* further work to make resource create docs match reality
* redis: concatenate bytes before unserializing
* indexer: detach metric from resource when marked as 'deleted'
* batch: allow to pass archive policy/unit
* api: don't raise 400 in MeasuresListSchema
* update documentation regarding resource ids
* docs: grammar fixes for statsd.rst
* redis: make socket\_timeout optional
* remove old leftover note
* ceph: understandable error on misconfiguration
* cleanup only when new object
* Introduce Aggregation object
* Remove bundled in tree tempest plugin
* set \_\_ne\_\_ method
* bump voluptuous requirement
* doc: add a configuration sample
* indexer: fix not operator
* service: log version number at startup
* metricd: use human readable member id
* rest: export the available metricd processors in status
* rest: store coordinator in pecan.request
* aggregates: add rateofchange method
* indexer: ap rule, catch invalid ap
* doc: fix gnocchi.xyz for stable/3.? by setting a tiny range for lz4
* cleanup some numpy math and casting
* storage: force granularities to be specified
* rest/aggregates: declare \_get\_measures\_by\_name as static
* test\_rest: enhance error checking in negative aggregation test
* optimise percentile computation with pure numpy
* fix median aggregation
* service: fix utils.parallel\_map number of workers setting
* tests: Fix resource type with optional uuid
* simplify uncompressed serialization path
* declare expected array instead of insert
* remove unused from\_tuples
* storage: truncate aggregated time series before storing
* doc: reorder Dynamic Aggregate chapters
* api: share ArchivePolicyDefinitionSchema definition
* api: remove custom type for validation and leverage voluptuous
* speed up median aggregate
* Retry and log on drivers initialization failure
* rest: narrow down the response attributes
* tests: remove useless response\_headers field that breaks with Gabbi 1.39.0
* speed up min/max aggregates
* redis: implement batched \_get\_measures
* storage: make \_get\_measures batched
* Add datetime for resource attribute type
* storage: rework search\_value
* devstack: redis on opensuse needs to have default config
* rest: lazy load backends
* fix devstack coordination setup
* metricd: group metric by sack when expunging
* optimise aggregations
* bad internal link rest docs
* storage: stop checking for archive policy aggregation methods match
* cleanup numpy+list usage
* storage: merge GranularityDoesNotExist and AggregationDoesNotExist
* storage: remove double check of granularity
* file: move directory creation in the upgrade path, not init
* incoming: only know about metric id
* file: do not write the unaggregated time serie atomically
* Prometheus: job and instance are not mandatory
* prometheus: no need to sanitize /
* append once when merging
* rest: do not catch too wide exception
* doc: reenable gnocchi.xyz job
* doc: fail if something go wrong with the hack
* doc: fix py2/3 unicode issue
* doc: build documentation with Python 3
* Remove unused tox targets
* doc: fix formatting with \`remoteuser\`, enhance notes on basic
* rest: do not validate paging keys in metric listing
* rest: simplify archive policy aggregation method validation
* rest: validate pagination options with voluptuous
* rest: fix exception handling in batch measures
* Ban keystonemiddleware 4.19
* rest: fail properly if granularity is not a timespan
* rest: fix error string on invalid aggregation method
* doc: Update grafana screeshot
* metricd: expose greedy option
* doc: add an intro about metricd
* rest: use resource\_policy\_filter when listing metrics
* indexer: add support for resource\_filter in list\_metrics
* indexer: add a policy\_filter on list\_metrics
* rest: fix error handling on resource conflict
* indexer: do not return empty IN statement in QueryFilter
* rest: use custom json renderer
* rest/prometheus: use operation\_timeout to stop retrying
* indexer: fix upgrade when password contains a %
* rest/influxdb: remove already caught exception
* aggregates: allow wildcard as metric name
* rest: reduce number of index queries
* Only install futures on Python 2
* aggregates: catch indexer exception
* aggregates: return resources/metrics only once
* api: add an InfluxDB API endpoint
* api: rename refresh\_timeout option to operation\_timeout
* rest: make specific attributes generic in get\_or\_create\_resource\_and\_metrics
* rest: move get\_or\_create\_resource\_and\_metrics out of the Prometheus class
* rest: make get\_or\_create\_resource\_and\_metrics() resource type creation optional
* rest: make Prometheus get\_or\_create\_resource\_and\_metrics() static
* cli: use --http-socket rather than --http for uwsgi
* api: add a metric policy filter mechanism
* rest: load details on metric to apply ACL correctly
* redis: add documentation for the url
* py3: pass a bytes type object to tooz coordinator
* indexer: replace ids argument with attribute filter in list\_metrics()
* indexer: replace names filter in list\_metric by attribute\_filter
* indexer: replace kwargs filtering by regular attribute filter
* doc: fix heading level for titles in intro
* doc: move comparison in intro
* doc: add a procedure to clean out Gnocchi data
* doc: add an example configuration file for mod\_wsgi
* rest: fix some id search issue
* docs: add some note about grafana config
* Simplify Ceph flavor
* redis: enhance error message is redis is not installed
* Add promeutheus storage adapter
* doc: rewrite intro
* aggregates: make references optional
* aggregates: rework API output
* Depends on oslo.db 4.29.0 which fixes 2 bugs we hit in tests
* cli: load uwsgi plugins if needed
* doc: introduces a REST use-cases section
* tests: Assert on NAN
* doc: add some note about resample
* Remove oslo.db from config generator
* make rest docs more consumable
* Remove deprecated dynamic aggregation
* tests: make sure upgrade from 4.1 is supported
* doc: add a note about issues with good first issue in contributing
* doc: add reno for 4.1 and switch stable to 4.1

4.1.0
-----

* rest: allow to pass resource\_id in the metric creation payload
* Move coordination\_url option out of the storage section
* return empty series if empty series given
* aggregates: new fill=drop-na
* aggregates: remove useless checks
* remove boundary requirements
* gnocchi-api: add support for VIRTUAL\_ENV
* incoming: use utils.parallel\_map rather than futures
* Move coordinator out of utils
* storage: do not create coordinator oneself
* rolling window over matrix
* aggregates: resources search api
* transpose once
* aggregates: more tests
* aggregated: remove useless resample argument
* aggregates: implements more operations
* Rename storage.aggregation\_workers\_number to parallel\_operations
* aggregates: fetch api
* Update apache-ported-gnocchi.template
* statsd: StatsdServer inherits from asyncio.Protocol
* aggregates: make aggregated() extensible
* Revert "batch GET metric interface"
* aggregates: rename cross\_metric to aggregates
* aggregate: remove transformation code
* api: convert exceptions JSON data struct rather than just a string
* api: remove abort unused extra arguments
* incoming: fix logging on SackDetectionError
* Set a correct default value for aggregation\_workers\_number
* doc: update flavor list
* metricd: factorize error handling in \_run\_job
* rest: expose the gnocchi build
* redis: do not emit notifications until sack is processed
* rados: Bump min version
* storage: remove process\_background\_tasks
* metricd: cache sacks to process
* metricd: fix coordinator not implemented error
* metricd: be specific about tooz.NotImplemented
* metricd: only re-add sack to be processed on failure
* move Metric model to indexer
* move Measure model to incoming
* doc: simplify archive policy example, fix worst case scenario
* Force to specify the number of agg methods in archive policy size tool
* Fix gnocchi-archive-policy-size with recent Numpy switch
* always return no overlap if there's no overlap
* more tests for cross metric aggregation
* bump tenacity req
* Use name order with pattern ordering in archive policy rules
* clarify cross metric docs
* remove pandas serialisation
* numpy instead of pandas backfill
* statsd: don't fetch resource on each flush()
* incoming: add iter\_on\_sacks\_to\_process support for Redis
* Add notification mechanism in incoming driver to be used by metricd worker
* cli: add a wakeup() method to stop process waiting if needed
* cli: rename \_get\_tasks to \_get\_sacks\_to\_process
* Doc - add note regarding metric modification
* Allow to rename archive policy rules
* travis: Don't fail to build master or tag
* Simplify error handling in IncomingDriver.get\_storage\_sacks
* Change link style of "coord <-> api" in arch img
* Add glossary anchors for doc
* Move doc image into dedicated folder
* supporting rolling aggregates
* fix pagination for resource history
* rest: implements pagination links
* Add documentation for delete-metric API
* Fix fake metricd used in gabbi
* Added support for max\_pool\_connections on s3 driver
* Fix doc word usage inconsistency - 'time series'
* catch transformation errors
* Glossary: add 'aggregate' and modify the doc
* Doc: update deprecated grafana plugin source
* load api modules only when needed
* travis: don't build merge push
* split gnocchi commands
* doc: Ensure doc/build is empty
* doc: Enable warning as error on multiversion
* add note regarding basic auth encoding
* doc: fix formatting issues in default archive policies list
* rest: fix ACL enforcement for non-admin on metric list
* Fix old doc build
* doc: Add subsection in many section
* doc: add rate of change in aggregations list
* doc: enable logging
* swift: replace unused swift\_preauthurl by swift\_url
* small spelling change
* rest: don't load useless resource
* Add an ISSUE\_TEMPLATE for users opening GitHub issues
* move api\_opts so we don't load everything
* Move REST API code in its own submodule
* Simplify dependencies by requiring Carbonara
* rest: don't allow empty in
* rest: filter query string validation
* Move cross aggregation computing to gnocchi.rest
* storage: define SackLockTimeoutError as a StorageError
* storage: make CorruptionError a StorageError
* Add missing pyparsing requirement
* Remove resample from storage
* rest: cross aggregation transformation
* Add resample tranformer
* Allow to transform measures
* use map instead of enumeration
* Add Gordon Chung to .mailmap
* don't blindly truncate on init
* rest: fix error message UUID attribute validation in resource type
* rest: fix docstring for strtobool
* Push tag to PyPI using Travis
* cors: fix CORS example formatting in Grafana page
* Use pytimeparse to parse time span
* Fix circular dependency on import
* Add #!/usr/bin/python to gnocchi-api
* redis: remove default connection timeout
* make to\_timedelta return numpy
* Fix pep8 with file()
* share series representation across incoming and storage
* use searchsorted to slice
* use numpy datatype
* rest: add a like test
* rest: Fix invalid query validation
* doc: stop building 2.x doc on gnocchi.xyz
* rest: allow filter= for batch delete
* enforce boundaries on overlap
* carbonara: don't need floor divide during serialization
* incoming: return directly a Numpy array of measures
* fix syslog\_log\_facility option spelling
* carbonara: remove weird key check
* Remove most of Pandas usage from Carbonara
* ceph: fix ReportGenerationError raise
* carbonara: print AggregatedTimeSerie benchmark result in op/s
* Modify a mistake in plan Gnocchi storage
* fix benchmark data generation
* BoundedSerie: don't truncate on init
* carbonara: correctly handle all frombuffer errors
* incoming: use numpy to serialize measures
* indexer: fix ne operator
* tests: set logging level to debug when setting GNOCCHI\_TEST\_DEBUG
* carbonara: speed up AggregatedTimeSerie.unserialize by using frombuffer
* rest: return timestamp without conversion
* storage: use a namedtuple for Measure
* carbonara: speed up BoundTimeSerie.unserialize by leveraging frombuffer
* carbonara: compute random timestamps once and sort them
* simplify hashing
* carbonara: make sure all data are list and not just iterables
* incoming: unserialize using numpy rather than Pandas
* carbonara: remove outdated comment
* carbonara: remove useless calls to pandas.to\_datetime
* use pandas index values
* logging: fix syslog output
* carbonara: use numpy native types for computing
* Add rate of change aggregation methods
* Update tenacity requirement to 4.0.0
* Add missing configs for Swift storage
* carbonara: simplify unserialize
* carbonara: use sampling from SplitKey
* storage: return SplitKey objects when listing split keys
* Only retry connection to external components in metricd
* indexer: remove connect() method
* utils: do not return coordinator id
* utils: fix to\_timestamps when value list is empty
* tests: fix gabbi test title
* Remove worker\_sync\_rate option
* incoming: set maximum number of sacks to 65535
* document open-ended aggregation behaviour
* tests: remove useless pandas import in test\_aggregates
* utils: rely on numpy rather than Pandas to handle timestamps
* doc: do not specify just \`pip install\`
* aggregation: validate metrics uuid
* Allow metric aggregation with a POST
* tests: pass incoming driver to load\_app() in Gabbi tests
* Move gnocchi.storage.common to gnocchi.common
* Move gnocchi.storage.incoming to gnocchi.incoming
* storage: remove incoming driver from storage object
* test: fix check for SACK\_PREFIX
* Make gnocchi-api wrap uWSGI
* gendoc: call tearDown on test class
* tests: We must ensure variable are reinit
* log metric deletion on completion
* swift: we must use the number of default sack
* Don't run python3 functional tests for swift
* Make command line tools log to stderr
* deprecate moving average (& minimally fix what exists)
* Remove deprecated noauth auth mode
* doc: disable all tags building in versioning
* tests: exit when an error happens with storage setup
* Remove genconfig target
* utils: use ASCII bytes as member id
* rest: return 404 when granularity does not exist
* Remove ugly Travis/docker workaround
* batch GET metric interface
* doc: mention gnocchi-openshift as an install solution
* statsd: remove deprecated user/project ids opts
* Improve indexer and storage INFO logs
* Remove deprecated app.wsgi
* devstack: stop using deprecated WSGI file
* devstack: remove deprecated $GNOCCHI\_USE\_MOD\_WSGI
* tox: don't specify envdir
* Install gnocchi flavor of pifpaf
* cli: fix close\_services() order
* rest: move \_carbonara.SackLockTimeoutError to storage
* Fix Travis new image permissions
* doc: improve various doc and add comparison table
* Test upgrades from 4.0
* Add upgrade directory to gitignore
* test: don't print the whole config file
* tests: hide useless rados output
* rest: make sure we use an absolute path for api-paste file
* doc: mention gnocchi-docker in install options
* Remove workaround Gnocchi 3.1 and alembic in upgrade testing
* dynamically set bin path
* doc: Add missing oslotest for old docs
* Don't generate releasenotes of old branches/tags
* ceph: change default timeout
* doc: add release note for 4.0

4.0.0
-----

* tests: don't use wait without pid
* Remove oslotest dependency
* catch error trying to change sack on pre-gnocchi4 storage
* Rename gabbi\_prefix to gabbi
* gabbi: upgrade test to basic authentication instead of noauth
* Switch from oslo.log to daiquiri
* Return new metrics when creating metrics for a resource
* tests: speed-up data generation
* Remove gnocchi-config-generator from tox
* tests: Update travis/tox configuration
* travis: remove install step
* Install pifpaf with ceph extra
* use generators when possible
* remove ignore\_too\_old\_timestamps path
* tests: remove half of tests
* doc: improve upgrading documentation
* auth: Add REMOTE\_USER env support
* auth: pass complete request
* cors: Allow Authorization header
* reuse storage coordinator
* Remove devstack gate support
* sqlalchemy: be explicit about the PostgreSQL driver
* travis: fetch all refs for docs
* tox: add missing redis dep for functional tests
* append rather than combine\_first
* drop unused \_timestamps\_and\_values\_from\_dict method
* Remove gitreview config
* Remove useless debug message
* incoming-only connection
* storage: fix resample on empty metric
* Remove indexer argument to storage upgrade()
* drop unused clean
* Fix typos in docs
* travis: remove irc bot join/leave
* Fix doc build
* Remove catching of non existent ArchivePolicyInUse exception
* don't load indexer in reporting process
* doc: add a note on pull-requests
* doc: fix issue tracker link not being in RST
* reduce memory for slim report
* Unify the number of sacks argument
* travis: rebase pull requests
* archive\_policy: Raise Error if calculated points is < 0
* change copyright template
* fix swift slim reporting
* remove residual queue
* add contributing guidelines
* Uses Grafana 4.3.1
* cleanup devstack
* doc: add incoming configuration option note
* use pipeline to batch push measures
* doc: add where to find source code
* Remove OpenStack from setup.cfg
* Bump Cradox requirement to 1.2.0
* Add Gnocchi logo source files
* Remove requirement comments
* doc: stop advertising OpenStack ML and change bugs link
* Add status badges in README
* travis: fix travis-ci docker image
* wsgi: use pbr wsgi binary
* add release note for sacks
* Remove oslo.utils dependency
* carbonara: rewrite lock debug statement
* Stop using oslo\_utils.netutils
* Stop using oslo\_utils.fnmatch
* redis: fix CLIENT\_LIST\_ARGS parsing
* Fix Carbonara compression with Cradox and LZ4 >= 0.9.2
* ceph: store measures in omap values
* Stop relying on dictutils
* Replace oslo\_utils.units.M by its value
* ceph: fix errno\_to\_exception
* fix workload logging
* ceph: async write new measures
* doc: move storage plan to running
* drop metric lock
* don't lock on delete
* sack-changer cli
* configurable sacks framework
* configurable hashring replicas
* implement hashring partitioning
* doc: fix typo and URL in collectd page
* s3: push to multiple sacks
* swift: push to multiple sacks
* file: push to multiple sacks
* ceph: push to multiple sacks
* redis: push to multiple sacks
* add note to clear backlog before upgrade
* push incoming into different sacks
* rest: do not duplicate non-existing resource ids
* swift: make sure to retry if the client cannot find Swift
* tempest: rework gabbi setup
* use redis as coordinator
* tests: more live verification
* rest: Extends metric list filters
* fix search by user\_id/project\_id
* ceph: remove usage of errno
* ceph: Don't fail if the container does not exists
* update aggregation workers help
* doc: Change grafana url
* tests: don't use eval for last call on pifpaf run
* Rename GNOCCHI\_SERVICE\_URL to GNOCCHI\_ENDPOINT
* coordination: use redis if available
* s3: check for consistency after write
* storage: introduce add\_measures\_batch for Ceph
* Drop usage of importutils
* utils: replace bool\_from\_string by builtin distutils strtobool
* ceph: make sure aio\_remove operations return
* doc: fix sphinx warning
* doc: override html theme for old version
* hide lock error on delete\_metric
* doc: fix deps for old version
* tox: remove useless variable declarations
* tox: factorize docs dependencies
* Switch to new Gnocchi logo
* doc: remove oslosphinx support
* json: use ujson to dumps
* Replace oslo\_serialization.jsonutils with simpler version
* Use NULL as creator in ResourceUUID conversion
* drop scheduler process
* drop single bucket partitioning
* drop ceph incoming upgrade
* redis: remove useless dep on msgpack-python
* drop \_delete\_unaggregated\_timeserie
* s3: use a single bucket for aggregate storage
* Use HostAddressOpt for opts that accept IP and hostnames
* doc: last release is the greatest tag
* cleanup live tests
* Modify wrong revision
* default\_aggregation\_methods configuration worked in gnocchi-upgrade
* cleanup empty test folder
* tests: Add travis configuration
* docs: default to master
* carbonara: reduce the number of array copy
* load policy from oslo.config locations
* search to oslo.config locations for api-paste
* tests: functional with tox+pifpaf
* don't raise error if unaggregated empty
* devstack: remove verbose option
* check unprocessed measures cleared on delete
* redis: drop encoding
* tempest: don't use Ceilometer's resource type
* follow redis key naming conventions
* drop delete\_unaggregated\_timeserie method
* default to v3 format
* redis: increase query limit
* redis: use hashes for aggregated storage
* Correct bad use response\_strings in live.yaml
* devstack: Change URL of grafana plugin source
* Modify outdated parameters comment
* test that storage is deleted
* fix redis storage delete
* utils: fix Epoch timestamp parsing
* redis: switch incoming to use list
* carbonara: use lz4 0.9.0 new interfaces
* file, s3, swift: create incoming buckets/containers on upgrade
* fix redis report
* Using fixtures.MockPatch instead of mockpatch.Patch
* cleanup unused var
* Remove upgrade code from 2.2 and 3.0
* Test upgrade from 3.1 instead of 3.0
* carbonara: remove numpy warning
* storage: Add redis driver
* use bytes for coordination
* simplify swift report
* Mark noauth authentication as deprecated
* delete unprocessed measures on expunge
* carbonara: remove misleading comment
* Move msgpack to global requirements
* devstack: Allow to change the processing delay
* Ban alembic 0.9.0
* tests: Hide useless tests output
* indexer: fix typo
* doc: use regexp for doc version whitelisting
* ceph: Allow to configure timeout
* remove openstack link
* Document the possible locations of the config file
* Remove unused logging import
* s3: set maximum length for s3\_bucket\_prefix option
* docs: generate docs for all stable versions
* indexer: remove Ceilometer legacy resources
* devstack: do not create legacy resource type if Ceilometer is enabled
* tests: make gabbi test no rely on legacy resources types
* test non-uuid and add debug for upgrade gate
* ensure original\_resource\_id is not none
* gabbi: use history
* fix bad slash migration
* doc: various update and add architecture diagram
* s3: use a different bucket prefix for each test
* s3: fix new metric listing
* s3: fix minimum botocore version
* tests: split two kind of functional tests
* Remove obsolete comment
* Add release notes for 3.1

3.1.0
-----

* devstack: do not install gnocchiclient
* tools: make measure injector works without gnocchiclient
* paginate ceph report generation
* indexer: make sure original\_resource\_id is never NULL
* rest: string → UUID conversion for resource.id to be unique per user
* tests: specify columns to compare in resource list
* modernise gabbi tests
* supporting disabling reporting process
* fix live gabbi test
* ceph: set return limit
* tests: do not create a resource with a custom resource type in 2.2
* tests: factorize measure generation to speed up test
* sqlalchemy: factorize retry on transaction issue/table def change
* mysql: retry on table changes
* Revert "indexer: catch another mysql exception"
* carbonara: numpy 1.9 have some bug with ? for bool
* tests: use GNU sed where needed
* storage: Read incoming config correctly
* noauth: force user to be provided
* cleanup noauth path
* doc: move devstack at the end
* tests: clean upgrade variable
* Required some configuration options
* allow required=True when patching resource type
* rest,indexer: handle ResourceUUID conversion in the REST API
* sqlalchemy: use a list rather than if/elif to convert type in queries
* Revert "indexer: fix datetime with mysql >= 5.7.17"
* Update Pandas requirements to 0.18
* Add a release note about storage/incoming split
* drop gnocchi\_<id>\_container object
* indexer: catch another mysql exception
* stop validating aggregation on init
* increase timeout
* Remove redundant comma
* carbonara: resample() with scipy/numpy
* Fix error message
* carbonara: add tests for each aggregation
* carbonara: add resample() benchmark
* utils: use proper timedelta conversion
* tests: increase benchmark timeout for Carbonara
* sqlalchemy: fix compat search on created\_by\_project\_id
* serialise: simplify array format
* carbonara: add merge() benchmark
* carbonara: don't use groupby for split
* Remove non-existent -all suffix in tox targets
* Remove py{27,35} from valid tox targets
* indexer: fix datetime with mysql >= 5.7.17
* carbonara: Add benchmark for split()
* carbonara: use numpy for unserialization
* carbonara: use numpy for serialization
* carbonara: Don't use clean\_ts()
* carbonara: handle timestamps from struct with numpy
* carbonara: remove a pandas.iteritems()
* carbonara: prepare datetime for pandas.to\_datetime()
* add metricd tester for profiling
* rest: returns orignal resource id
* indexer: fix migration script "no\_more\_slash"
* Remove workaround to upgrade from 2.2.0
* utils: allow ResourceUUID to convert UUID
* cleanup invalid upgrade errors
* archive\_policy: provide a boolean storage archive policy by default
* storage: add more debug information to trace behaviour
* opts: list entry points with pkg\_resources rather than stevedore
* mysql: fix timestamp upgrade
* rest: reject / as resource id and metric name
* tests: Fix upgrade script
* ceph: enhance the documentation
* Introduce "basic" authentication mechanism
* don't override logging when loading alembic module
* upgrade: fix OS\_AUTH\_TYPE variable name
* Add sem-ver flag so pbr generates correct version
* ceph: fix data compression when oldest\_mutable\_timestamp == next(key)
* Add gnocchi-config-generator
* Remove broken script
* Fix a typo in estimated sizing per metric under archive policies
* test: remove unnused method
* Create a base exception for resource type error
* ceph: Workaround for oslo.config interpolation bug
* indexer: fix resource type update
* Tests to confirm resources are searchable
* rest: introduce auth\_helper to filter resources
* rest: add auth\_mode to pick authentication mode
* Move default policy.json away from etc/
* Ship api-paste.ini out of etc/
* rest: make sure 409 is returned when double creating resource with non-UUID
* tools: import a small tools to compute size of archive policies
* archive\_policy: lighten the default archive policies
* run-tests: use case rather than if/elif/else
* metricd: move metricd options in metricd group
* storage: remove temporary incoming setup
* Introduce new storage groups for storage
* devstack: prepare ceph keyring before using it
* Adjust testr group\_regex to not group on 'prefix'
* storage: split s3 driver
* Fix expected content-type and move CORS tests to gabbi
* [doc] Note lack of constraints is a choice
* gabbi: remove unused variable
* rest: catch create\_metric duplicate
* Revert "add mysql minimum version check"
* add mysql minimum version check
* All granularity input should be parsed as timespan
* fill series when aggregating cross metrics
* carbonara: log a message and do not fail if a file is missing
* Enable H904 hacking check
* storage: split swift driver
* doc: add a page talking about collectd support
* Enable oslo\_middleware healthcheck middleware by default
* use datetime when defining series range
* storage: split ceph driver
* storage: split file driver
* fix oslo.db 4.15.0 breakage
* rest: remove user\_id and project\_id from metric schema
* api: use egg entry\_point rather than code path
* doc: Add reference to gnocchi-nagios tool
* fix logging..
* rest: don't ignore measures of created metrics
* Modify variable's using method in Log Messages
* Fix two trivial docs errors in architecture.rst
* storage: split the storage interface
* config: only include oslo.middleware options that are shipped
* doc: remove unused links
* file: remove tmp configuration
* storage: remove \_pending\_measures\_to\_process\_count()
* storage: split process\_new\_measures()
* Remove 95pct and median from default archive policies
* rest: wait for the  thread pool executor result
* indexer: list\_metric(), skip sql if names is empty
* rest: Don't use private webob API
* rest: fix batching error handling
* rest: don't fail if the batch measure is not a dict
* Replace retry with tenacity.retry
* ceph: make computed measures read async
* utils: do not retry on any exception
* Remove usage of deprecated operatorPrecedence and remove duplicate operators
* drop pytimeparse requirement
* support pandas.to\_timedelta
* Bump hacking to 0.12
* rest: use flatten\_dict\_to\_keypairs instead of recursive\_keypairs
* carbonara: add support for Gnocchi v2 measures format
* support resampling on aggregation endpoint
* support resampling
* Use tenacity.TryAgain rather than a own-defined exception
* rest: allow to create missing metrics when sending measures in batch
* Interpolate strings using logging own methods
* metricd: retry slowly coordination connection failure
* rest: don't use is\_body\_seekable
* Allow timespan to be floating values
* rest: empty search query in resource search
* ceph: move out of xattr completely
* support consistent timestamps
* Revert "drop non-I/O threading in upgrade"
* rest: register default JSON converter using pecan.jsonify
* Don't hang with wsgiref
* Add missing granularity to base storage class
* json: remove outdated comment
* Update doc because default services are all being added to settings
* accommodate new oslo.config
* devstack: stop all gnocchi services, not just api
* Fix incorrect EXTRA\_FLAVOR in plugin.sh
* rest: using ujson to deserialize
* doc: add s3 to the list of Carbonara based drivers
* Fix typo in release note file
* Unify timestamp parsing
* rest: fix Epoch timestamp parsing
* test: rewrite test\_post\_unix\_timestamp in Gabbi
* Remove pecan\_debug option
* test: allow to pass OS\_DEBUG
* Remove unused requests dependency
* carbonara: fix SplitKey with datetime greater than 32bits value
* Revert "Remove the file named MANIFEST.in"
* Add helper for utcnow to epoch nano
* Add http\_proxy\_to\_wsgi to api-paste
* Use Cotyledon oslo config glue
* Add a S3 based storage driver
* tox: only install all storage drivers in py-$index or py-#index-all
* Remove Python 3.4 support
* doc,tests: fix reaggregate/reaggregation mispelling
* Fix oslo.log minimum requirement
* Remove the file named MANIFEST.in
* Stop adding ServiceAvailable group option
* sqlalchemy: use precise DATETIME rather than DECIMAL in MySQL
* enable threading of batched writes
* switch to stop validating batch individually
* Don't mock ceph
* upgrade tests: don't patch gnocchi 3.0
* tests: Cover resource-type modification
* Use xx=None instead of xx=[] to initialize the default value
* Fix some gabbi tests
* Add STRICT\_RESPONSE\_HEADERS check to gabbi tests
* Add upgrade targets for Gnocchi 3.0
* tox: shorter envdir name for upgrade target
* remove the pandas module in test test\_carbonara.py
* doc: include stable/3.0 release notes
* Fix typos in tests/gabbi/gabbits/resource.yaml
* Add granularity in searching for values in metrics
* Modify api startup parameters in devstack plugin
* Replace retrying with tenacity
* ceph: fix python3 issue
* Add simple upgrade tests
* compute new first\_block\_timestamp once

3.0.0
-----

* track the metric locked time
* Fix gnocchi-metricd shutdown
* resource\_type: check that min is not None before comparing with max
* cli: do not run tooz watchers in parallel
* metricd: fix a data type inconsistent bug
* ceph: rename optional extra names
* Fix PostgreSQL migration script with resource\_type\_state\_enum
* carbonara-drivers: elapsed can be zero
* Fix a typo in sqlalchemy.py
* devstack: rename werkzeug to simple
* carbonara: replace msgpack encoding with struct for new measures
* carbonara: implement compressed format for BoundTimeSerie
* devstack-gate: do not create legacy resources
* storage: increase default processing delays
* Allow to retry to delete a resource
* lower processor job polling and handle queuing
* releasenotes: fix typo in storage-engine-v3
* carbonara: retrieve unaggregated timeserie only once for upgrade
* doc: remove the rolling upgrade documentation
* ceph: Fix metricd start
* ceph: fix setup extra
* This patch is used to delete batch of resources
* Allow to pass search filter in the query string
* tox: remove useless keyword
* cleanup metricd shutdown process
* doc: reverse release note order
* reno: fix formatting in resource type patch
* gendoc: allow DELETE to have body
* swift: bump swiftclient dependency to 3.1.0 and set retries=0
* Allow to update resource-type (delete attributes)
* Allow to update resource-type (add attributes)
* cleanup carbonara - drop update method
* share groupings across aggregates
* Put the regex first
* swift: switch default auth version to 3
* tests/carbonara: use \_serialize\_v2 without mocking
* carbonara: Timeserie.aggregate
* carbonara: optimize uncompressed serialization
* carbonara: compress non padded timeseries
* carbonara: use calcsize rather than hard coded value
* storage: re-store/write read-only splits
* carbonara: write full data when the split is going read-only
* search: Fix in operator
* Put CORS middleware at the pipeline beginning
* block oslo.db 4.13.2
* Check whether the resource type attribute min is less than or equal to max
* storage: test splits existing after delete
* ceph: fix write emulation
* Pin oslo.db<=4.13.0
* Ignore EEXIST when removing measures directories
* indexer: fix retry on PostgreSQL transaction error
* test: fix a random failure with metric listing
* storage: return list of split as a set
* swift: remove retrying code
* carbonara: factorize out \_get\_unaggregated\_timeserie\_and\_unserialize
* correct the debug log info, add a blank in log info
* drop non-I/O threading in upgrade
* paginate on upgrade
* remove default=None for config options
* carbonara: avoid using futures altogether if no aggregation workers
* storage: make sure the deletion tests are synchronous
* storage: do not list metrics on each measure processing
* storage: add an intermediate verification
* carbonara: expose first\_block\_timestamp as public
* Fix Gnocchi tempest.conf generation
* ceph: fix write emulation
* Remove null drivers
* Add bindep.txt to express binary dependencies
* statsd: simplify testing code
* Update reno for stable/2.2
* doc: remove unused devstack.rst
* Add 2.2 series release note
* only look for v2 objects on upgrade
* add support to process measures on GET
* storage: remove unused mock in tests
* rest: fix status test
* swift: optimize metric reporting in detail mode
* carbonara: fix benchmark output now that compression is out
* carbonara: remove unused class
* rest: allow to specify reaggregation methods in aggregation
* rest: remove aggregation dead code
* change to 3600 point object size
* highlight pagination more prominently
* storage: allow to specify regaggregation over aggregation retrieval
* Put py34 first in the env order of tox
* ceph - write only new points
* offset serialisation
* statsd: tweak logging
* statsd+metric: make retry code common

2.2.0
-----

* drop v1.3 to v2.x migration, drop TimeSerieArchive
* sqlalchemy: increase the number of max\_retries
* test: fix race condition in update testing
* add support for coordination
* tests: extend the test timeout to 120s for migration sync testing
* Add home-page in setup.cfg
* carbonara: embed a benchmark tool
* carbonara: do not use oslo\_log
* indexer: put extend\_existing in \_\_tables\_args\_\_
* improve task distribution
* sqlalchemy: simplify kwarg of retry
* Add iso8601 to requirements
* metricd: cleanup logging message for progress
* sqlalchemy: remove deprecated kwargs retry\_on\_request
* sqlalchemy: fix PostgreSQL transaction aborted in unmap\_and\_delete\_tables
* Fix list resource race
* rest: set useful default values for CORS middleware
* rest: enable CORS middleware without Paste
* truncate AggregatedTimeSerie on init
* return explicitly InvalidPagination sort key
* fix object\_exists reference
* Indicate we added a bunch of new features
* doc: Update grafana plugin documentation
* metricd: use Cotyledon lib
* devstack: Move to grafana 3.x
* add missing key param to method definition
* rest: allow to use X-Domain-Id in policy rules
* Add support for Python 3.5
* Fix CORS middleware setup
* fix tooz requirement
* ceph: uses only one ioctx
* simplify model loading
* Revert "carbonara: compress all TimeSerie classes using LZ4"
* devstack: Fix requirement typo
* Use pbr WSGI script to build gnocchi-api
* ceph: change make method names for new measures
* Expose resource type state to the API
* track resource\_type creation/deletion state
* carbonara: compress all TimeSerie classes using LZ4
* separate cleanup into own worker
* Tuneup gabbi metric.yaml file to modern standards
* Tuneup gabbi resource\_type.yaml file to modern standards
* Tuneup gabbi search\_metric.yaml file to modern standards
* Tuneup gabbi resource\_aggregation.yaml file to modern standards
* Tuneup gabbi resource.yaml file to modern standards
* sqlalchemy: fix MySQL error handling in list\_resources
* \_carbonara: use tooz heartbeat management
* \_carbonara: set default aggregation\_workers\_number to 1
* Enable CORS by default
* Rename gabbits with \_ to have - instead
* Correct concurrency of gabbi tests for gabbi 1.22.0
* tests: fix Gabbi live test to not rely on legacy resource types
* swift: force retry to 1
* swift: raise an explicit error if bulk-delete is unavailable
* Added endpoint type on swift configuration
* use async delete when remove measures
* Fix tempest tests that use SSL
* \_carbonara: fix race condition in heartbeat stop condition
* enable pagination when querying metrics
* doc: include an example with the \`like' operator
* metricd: only retry on attended errors and print error when coordinator fails
* metricd: no max wait, fix comment
* test: move root tests to their own class
* rest: report dynamic aggregation methods in capabilities in a different field
* \_carbonara: stop heartbeat thread on stop()
* tests: create common resources at class init time
* tests: remove skip\_archive\_policies\_creation
* tests: do not create legacy resources
* sqlalchemy: add missing constraint delete\_resource\_type()
* sqlalchemy: no fail if resources and type are deleted under our feet
* sqlalchemy: retry on PostgreSQL catalog errors too
* sqlalchemy: retry on deadlock in delete\_resource\_type()
* Enable releasenotes documentation
* Tuneup gabbi transformedids.yaml file to modern standards
* Tuneup gabbi search.yaml file to modern standards
* Tuneup gabbi pagination.yaml file to modern standards
* Tuneup gabbi metric\_granularity.yaml file to modern standards
* raise NoSuchMetric when deleting metric already marked deleted
* Tuneup gabbi history.yaml file to modern standards
* Tuneup gabbi batch\_measures.yaml file to modern standards
* Tuneup gabbi base.yaml file to modern standards
* Tuneup gabbi async.yaml file to modern standards
* Tuneup gabbi archive.yaml file to modern standards
* Tuneup gabbi archive\_rule.yaml file to modern standards
* Tuneup gabbi aggregation.yaml file to modern standards
* fix some typos in doc, comment & code
* add unit column for metric
* devstack: ensure grafana plugin for 2.6 is installed
* Revert "tests: protect database upgrade for gabbi tests"
* Make tempest tests compatible with keystone v3
* sqlalchemy: retry on deadlock for create\_resource\_type()
* sqlalchemy: retry on deadlocks in get\_resource()
* sqlalchemy: avoid deadlock on list\_metrics()
* sqlalchemy: retry on deadlock for create\_metric()
* sqlalchemy: retry on deadlock for create\_resource()
* sqlalchemy: add retry on deadlock for delete\_resource()
* sqlalchemy: set max\_retries & all when retrying
* tests: move custom agg setup code in the tests using it
* tests: protect database upgrade for gabbi tests
* fix details filter for measures report
* gate: remove old job conf
* devstack: remove support for old devstack ceph plugin
* Backlog status not accurate when batching
* sql: default to pymysql
* support shrinking/extending policy timespan
* doc: add a glossary
* rest: catch InvalidResourceAttributeName when creating resource type
* doc: fix the number of points for 30 days
* rest: return a better error message when history is not found
* Fixed typo in documentation
* remove verbose option in devstack plugin
* Update hacking to 0.11
* doc: fix the number of storage drivers
* gate: work with old and new devstack ceph plugin
* [alembic] delete a blank line from script.py.mako
* Fix uuidgen not installed in some ubuntu installs
* Remove annoying debug log
* Replace logging with oslo\_log
* use thread safe fnmatch
* fix resource\_type tablename for instance\_net\_int
* tests: Add more integration tests coverage
* Drop useless enum
* Don't delete archive policy used by ap rule
* Reduce length of some foreign keys
* Fix foreignkey names of host/host\_history table
* doc: add resource history in features
* doc: remove legacy resource types listing
* Fix broken ceilometer resources migration script
* tests: fix a fuzzy test for archive policy rules
* doc: rely on oslo-config-generator to generate the config file
* Don't encode exception message in ascii
* Remove unused requirement PrettyTable

2.1.0
-----

* rest: fix typo in metric list filtering for non-admin
* Fix dependency from tempest-lib to os-testr
* tests: tempest plugin
* doc/ap: document default archive policies and tweak them
* carbonara: print out the speed of measures/s
* indexer: teach SQL query compiler numeric and string types
* Use pifpaf rather than overtest
* carbonara: add a processing speed in debug logs
* ceph: Don't fetch useless omap attributes
* Revert "Use pbr WSGI feature to build gnocchi-api"
* Use pbr WSGI feature to build gnocchi-api
* dict.iteritems() method is not available in py3
* carbonara: catch LockAcquireFailed exception
* devstack: rename UWSGI file
* fix resource\_type table migration
* ceph: make requirements clearer
* devstack: remove useless ceph permission
* devstack: Allow to use devstack-plugin-ceph
* Fix --version string on all command line tools
* resample only data affected by new measures
* cleanup split function
* remove timeserie\_filter param
* InfluxDB: drop support
* devstack: allow gnocchi-api to run on different host from keystone
* Add some resource types tests
* Don't create Ceilometer resource types by default
* Move legacy Ceilometer resource into indexer
* Implements resource attribute bool
* Implements resource attribute number
* Implements resource attribute uuid
* Implements resource attribute string
* Implements resource type CRUD
* (Really) Remove sqlalchemy warning
* Use omap insteads of xattr
* clean up doc phrasing
* devstack: allow uwsgi deployments
* tools: Add tools to quickly add measurements
* Fix an IN-predicate SAWarning
* Added docs about new snmp related resource types
* Revert "Log retrieve/store data speed in Carbonara based drivers"
* workaround to \_strptime import issue on py2
* Add note to the docs regarding archive-policy deletion
* Replace deprecated LOG.warn with LOG.warning
* doc: fix link to config generator conf file
* disable swift retry
* Create default archive policies out of the box
* Increase partitioning logic period
* fix swift measure reporting
* [doc] update configuration for WSGI pipeline
* fix swift bulk-delete
* Fixed typo on "series"
* rest: None is not a valid timestamp
* rest: make sure all timestamps are after Epoch
* swift: use bulk deletes
* carbonara: raises an error if timestamp before Epoch is sent
* Move resource type into their own sql table
* carbonara: aggregation method should be mandatory
* Make the content of PKG-INFO can be decoded
* Pass aggregation when create AggregatedTimeSerie
* ensure timeseries has unique index
* Allow to pass the ceph secret
* ceph: fix help string
* optimise timeseries
* close queues
* synchronously delete archives
* fix migration from v1.3 to v2.0
* Added new resource types for snmp metrics
* fix partitioning

2.0.0
-----

* Use '#flake8: noqa' to skip file check
* storage: make sure we delete old measures respecting archive policy
* rest: implement groupby in resource/metric aggregation
* indexer: replace get\_metrics() by list\_metrics()
* partition unprocessed measures across workers
* Allows to use cradox with ceph storage
* Log retrieve/store data speed in Carbonara based drivers
* shrink test length
* storage: autoconfigure coordination\_url
* carbonara: compress AggregatedTimeSerie using LZ4
* minimise calls when generating report
* Update configuration document
* storage: fix typo in Metric.\_\_eq\_\_
* Rework the handling of the resource ID
* carbonara: make sampling mandatory in AggregatedTimeSerie
* ceph: remove useless code
* genconfig: do not fail to install if unable to build configuration file
* carbonara: make sure we hearbeat our coordination driver
* Don't use time.timezone
* ceph: delete measures asynchronously
* grab less data when adding measures
* KEYSTONE\_CATALOG\_BACKEND is deprecated
* Extend measures batching to named metrics
* minimise swift processing metric size
* carbonara: compute sampling at init time
* carbonara: remove carbonara-dump
* Fixes routing of aggregation endpoint
* Simply how to get keystone url
* Don't require trollius on Python 3.4 and newer
* carbonara: implement full listing for new measures
* Remove useless indexes
* devstack: fix type when keystone is absent
* Renable lint for WebTest
* Added original\_resource\_id field into resource
* Bypass the auth when listing Gnocchi versions
* setup: build config file at build time
* storage: run expunge\_metric in sync mode
* swift, ceph: take smaller batch of new measures to process
* tests: remove measures reporting test
* devstack: support publicURL retrieval in both keystone v2/v3 format
* fix metricd workers
* storage: fix typo in exception formatting
* devstack: fix publicURL retrieval
* Disable rados thread system
* Bump tooz version in requirements
* Remove custom api-paste.ini for testing
* rest: fix metric access for linked projects
* storage/carbonara: store TimeSerieAggregated in splits
* Skip already processed measurements
* ceph, swift: do not fail if unprocess measures already deleted
* Convert user and project IDs from UUIDs to Strings
* plugin cleanup
* homogenise resource type not found exceptions
* tox: fix py27-gabbi dependencies
* sqlalchemy: switch to new oslo.db facade
* rest: fix timestamp parsing for aggregates
* storage,rest: add support for granularity in aggregation
* Use overtest to setup InfluxDB
* Handle all resources type with one controller
* Generate configuration file in sdist
* Resource list filtered by project\_id or created\_by user\_id and project\_id
* influxdb: do not try to create a database
* devstack: remove Ceilometer support
* devstack: remove Aodh support
* indexer: always order the result returned by list\_metrics()
* Fix the wrong datetime format in \_store\_measures method
* ceph: fix the metric list to process with new measures
* Do not enable Keystone by default
* Fix the typos in the \_\_init\_\_.py
* Use keystone middleware fixture
* Replace the redundant code with the utility function
* Fix gnocchi resource update without change
* rest: add batch/measures support
* Use overtest to setup PostgreSQL and MySQL in tests
* indexer: fix a possible test failure due to a race condition
* statsd: Use archive policy rule
* doc: add granularity argument for measure retrieval
* carbonara: allow to split AggregatedTimeSerie
* carbonara: allow to create TimeSerie from existing ts
* storage: round back from\_timestamp in get\_measures()
* carbonara: serialize time period in seconds
* carbonara: deprecate TimeSerieArchive
* doc: add Grafana support
* doc: add a note about client
* doc: complete index, architecture and running
* doc: move init/upgrade to install
* doc: fix some markups
* doc: split out running
* Upgrade Grafana and its Gnocchi plugins
* indexer: read from environment variable
* tests: read config file if GABBI\_LIVE is set
* sqlalchemy: fix metric expunge
* Miscellaneous minor docco corrections
* Fix the typos in the Gnocchi
* rest: fix revision creation
* swift: fix typo in unprocessed measures deletion
* Change LOG.warn to LOG.warning
* Replace LOG.warn with LOG.warning
* indexer: do not store useless revision
* test: avoid loading default config file via Keystone middleware
* Fix the typos in the gnocchi
* doc: fix markup
* doc: split config out of install
* doc: split out architecture
* Make README points to main doc
* remove python 2.6 trove classifier
* rest: remove dead code
* tests: do not read default config files
* Make gnocchi.xyz doc output in a sane directory
* avoid metric join on resource delete
* metric: make sure start/stop can be used with timezone
* storage/carbonara: create an executor on each call
* swift: make sure we retrieve full listing in containers
* Switch to RTD theme for gnocchi.xyz
* tox: create a target for each indexer
* Allow the volume display\_name field to be null
* storage/carbonara: simplify tooz locking
* tests: block when acquiring processing lock
* storage: fix expunge\_metric
* Resolving use of deprecated dispatcher configuration
* devstack: add gnocchi-statsd
* statsd have some required configuration options
* tox: exclude .eggs in flake8
* influxdb: avoid running first query if unnecessary
* Correlate correctly the needed\_overlap
* Adds some docs about aggregation across metrics
* Checks percent\_of\_overlap when one boundary is set
* Adds aggregation across metrics tests
* carbonara: move aggregated() to AggregatedTimeSerie
* storage: make exception inherits from StorageError
* storage: retry to delete metric on failure
* ceph: delete unaggregated timeserie when deleting metric
* tests: improve fake Swift client delete\_container
* Remove keystonemiddleware workaround
* Make the wheel universal
* fix expunge\_metrics method
* remove duplicate test
* statsd: fix flush() scheduling
* retrieve resource with metric only when needed
* only get details when required
* fix pecan \_lookup usage
* allow image\_ref equals none when creating resource
* MySQL: fix testing with MySQL >= 5.7.9
* change DB, allow image\_ref to be null
* fix error in alembic when upgrade postgresql
* Split requirements in smaller part
* typos in rest.j2
* increase number of wsgi threads
* clean up integration test urls
* carbonara: add a \_\_repr\_\_ for AggregatedTimeSerie
* carbonara: implement an integer sampling attribute
* carbonara: make offset conversion consistent
* archive\_policy: enforce types
* \_carbonara: dedicated methods to store raw timeserie
* cli: allow to upgrade in 2 passes
* storage: support storage upgrade
* Rename dbsync to upgrade
* Add missing PrettyTable dependency
* ceph: fix computation of read offset
* Ensure file basepath exists
* Use oslo\_config new type PortOpt for port options
* carbonara: optimize \_first\_block\_timestamp
* Add host and port config opts to statsd
* copyright Openstack should be OpenStack
* set indexer url as required
* Remove unused logging
* tests: move storage/test\_carbonara to storage
* influxdb: skip Carbonara specific test
* influxdb: update to 0.9.4.2
* Make swift timeout configurable
* devstack: install PostgreSQL development headers
* remove default=None for config options
* Fix metricd TypeError's due to bad method signature
* Remove Ceilometer test dependency
* Replace pytz by iso8601
* carbonara: fix exception when creating metric
* carbonara: remove unused prototype

1.3.0
-----

* rest: remove outdated comments
* storage,rest: allow to retrieve one granularity only
* archive\_policy: make sure points/granularity > 0
* archive\_policy: disallow to have identical granularities
* rest: add\_measures never raises MetricDoesNotExist
* rest: do not store empty measure set
* Fix minimum Pandas required version
* carbonara: handle empty update
* Depend on oslo.middleware, add CORS default conf
* api: use Paste to deploy WSGI server
* Don't need to expose direct entry of statsd service in statsd.py
* docs: add some ceph driver notes
* rest: deserialize directly with file descriptor
* devstack: remove unused utf8 argument
* Use mod\_wsgi for SWIFT
* Add README file for Devstack plugin
* Use config file for oslo-config-generator instead of generate-config-file.sh
* Make sure that swift doesn't block gnocchi startup
* Use ListOpt for default\_aggregation\_methods option
* carbonara: replace sort() by sort\_values()
* Use lighter validation to post measurements
* docs: add some notes about tooz
* ceph: Fix tooz coordinator connection leaks
* sqlalchemy: use retry\_on\_deadlock in update\_resource()
* doc: improve the layout and gnocchi.xyz
* indexer: fix exception text
* Use a capital letter in the project name
* Don't fail when data are unreadable
* rest: Always return complete exceptions
* aggregates: normalize timestamp
* devstack: create a default archive policy rule
* Removing ceph locking system
* tests: Allow more postgres connection
* carbonara: add more debug info on measures processing
* match archive policy rule based on longest match
* rest: use a fork friendly app with werkzeug
* add api controller for instance\_disk and network\_interface resources
* devstack: stop using USE\_CONSTRAINTS and setup\_package
* devstack: use gnocchiclient to create default archive policies
* devstack: install gnocchiclient from pip
* carbonara: optimize resampling
* indexer: change to lower case when appropriate
* sqlalchemy: fix metric status migration
* Remove unused file
* carbonara: drop empty points from resample before combine
* carbonara: only resample on the last point
* cli: fix reporter
* cli: fix reported values
* Use the testr from os-testr env
* rest: export overall status
* storage: remove index from measures\_report()
* Create signature of measures\_report in base class
* Make metric deletion async
* Mark InfluxDB driver as experimental
* tox: fix too much test running in specific envs
* Fix InfluxDB template in tox
* Don't hide module with local variable
* Add some reporting to metricd
* rest: respect RBAC rules when deleting archive policy rules
* rest: respect RBAC rules when deleting archive policies
* devstack: only tail Apache error and access log
* devstack: install gnocchiclient
* gate: use port 8041
* Remove useless code
* Ensure needed\_overlap is a number
* tox: Allow to pass some OS\_\* variables

1.2.0
-----

* storage: fix potential race condition in Ceph and file drivers
* tox: factor default py{27,34} target
* tox: use factor feature to simplify layout
* tox: remove unused hacking exceptions
* tox: remove install commands
* alembic: make migration template PEP8 compliant
* Use influxdb 0.9.4
* tests: fix InfluxDB config
* improve the influxdb-python version
* Make metricd use a collection of Process not Pool
* At line 24 of install.rst, the word 'command' is missing
* doc: remove details option
* rest: remove the Web interface
* devstack: fix Keystone CORS configuration
* devstack: umount grafana datasource plugins on unstack
* Add support for Grafana installation
* Remove $GNOCCHI\_USE\_KEYSTONE and check that Keystone is enabled
* indexer: remove details on create\_metric()
* carbonara: fix % of overlap when no point match
* devstack: enable debug if asked
* carbonara: add some logging
* doc: add metricd service in devstack
* Add posting measures to live gabbi test
* Add reason for MetricUnaggregatable
* devstack: update to latest stable version of influxdb
* sqlalchemy: catch invalid datetime conversion in search
* sqlalchemy: convert UUID correctly before doing a search
* Add two new resources
* move keystonemiddleware to requirements.txt
* devstack: remove ceilometer from service list
* Use new location of subunit2html
* metricd: fix method name typo
* devstack: explicit path in run\_process calls
* Turn on influxdb in gate\_hook
* In test\_rest run process\_measures after a request
* Only exclude Alembic 0.8.1
* Create conf directory during install phase
* archive policy rule: make them available on all metric creations
* rest: remove convert\_metric()
* file: use \_get\_tempfile() in metric storage
* file: store measures atomically
* rest: implements /resource/generic/UUID/history
* Exclude Alembic>=0.8.1
* Introduce a resource id translation shim
* rest: Pass the project name to middleware config
* Rudimentary support for influxdb in devstack plugin
* file: fix potential race condition in storing measure
* storage: remove create\_metric()
* devstack: fix gnocchi url with aodh
* indexer: raise an error if deleting a non-existent metric
* Make pagination gabbi test no longer xfail
* gabbi: fix a typo in name of a test
* Add to influx command's $PATH
* InfluxDB storage driver

1.1.0
-----

* Some clarification of install and config procedures
* indexer: remove wrong FK catch
* sqlalchemy: use DBReferenceError to generate the correct exception
* storage/carbonara: add timestamp as measure suffix
* archive\_policy: validate agg methods values
* rest: fix archive policy controller
* rest: return metrics for ../<resource\_id>/metric
* rest: Add links to /v1 endpoint
* Implements list\_resources limit/ordering
* devstack: use $API\_WORKERS to set the number of Apache WSGI workers
* indexer: always eagerly load archive\_policy
* rest: directly pass metric to search\_value()
* rest: validate timestamp in metric value search query
* Drop downgrade field in alembic script.py.mako
* Declare some options as secret
* gate: fixup gabbi live tests
* Don't update resource if nothing has changed
* Unify requirements
* opts: use new min= in IntOpt from oslo.config
* Disable global constraints in devstack
* rest: improves NamedMetricController errors
* file: do not raise if dir is created in the meantime
* Increase gabbi poll length in two tests
* sqlalchemy: expunge objects before returning them
* statsd: stop mocking indexer.get\_metrics in tests
* Don't allow duplicate timestamps in carbonara series
* Remove special configuration of heat plugin
* metricd: allow to be killed by SIGTERM
* In devstack use our own install redis command
* Tail the correct apache log files in devstack
* Cleanup handling of metricd and its logs in devstack
* Use a settings file for the devstack plugin
* Remove ceilometer dispatcher
* fix broken devstack storage logic
* carbonara: stop storing full res timeserie in archives
* rest: returns 404 when controller does not exists
* ceph: make the driver asynchronous
* sqlalchemy: fix lazy-loading of attributes
* Fix gnocchi-metricd start
* Make devstack use Keystone API v3 for user/project creation
* Update pytimeparse to 1.1.5
* Fix abstract \`process\_measures\` method signature
* Allow gnocchi API at /metric
* Ensure location header urls account for script\_name
* Don't reclone the repo we already did
* Ensure live gabbi tests run in gate
* carbonara: add a serializable mixin
* archive\_policy: add max\_block\_size property
* Use a more unique postgresql port
* metricd: start several processes to process more metric
* Make test\_rest keystone cache work with keystonemiddleware 2.0
* utils: replace utcnow() by new oslo.utils version
* Introduce gnocchi-metricd
* Use indexer RDBMS as tooz coordinators
* perf tools: remove deprecated API
* Make measures processing asynchronously
* carbonara: add an option to ignore too old points
* devstack: move all logs to /var/log/gnocchi
* perf tools: Don't fail if result directory exists
* rest: return 202 when posting measures
* Avoid conflicts with ceilometer.conf in dispatcher tests
* Remove upper cap on oslo libs
* Remove pypy tox target
* Stop using TZ unaware datetime and isotime()
* Require pecan 0.9, gaining 405 and unicode fixes
* Handle indexer connections more cleanly in tests
* Use pg\_ctl for initdb
* Raise the PostgreSQL connections to 200 + Remove AvoidDictInterface
* dispatcher:fix func of \_match\_metric
* Switch to PyMySQL and enable MySQL on py34
* indexer: enable MySQL schema migration test
* Move SQL backends to requirements
* Add missing License file
* Add more tests for archive policy rule
* Remove redundant metric tests from test\_rest
* pass LANG into testing environment
* Run functional tests using virtualenvs in devstack
* Remove redundancy in ArchivePoliciesController tests
* Change the type of flavor\_id from int to string
* Remove unreachable return statement
* Add more gabbi test coverage for metrics
* Ensure the indexer is disconnected in gabbi fixtures
* tests: start/stop coord before using it
* Sync requirements between Python and Python 3
* Cover and correct unicode handling in mod\_wsgi setup
* Install redis-server if needed
* indexer: use binary UUIDType
* sqlalchemy: use RDBMS check constraint where available
* Add Alembic support
* sqlalchemy: name FK constraints
* sqlalchemy: resource\_history.id is not nullable
* sqlalchemy: remove 'metric' from enum type
* Create a project long description in README file
* Add gabbi tests for the NamedMetricController
* Handle a 404 when posting a new named metric
* Add a gabbi check for valid user and project uuid
* Remove usage of dict for gnocchi object
* Generate configuration file in default tox target
* Filter more swift metrics
* Load archive\_policy named resource metric
* Add html rendering for measurements of aggregation
* ceilometer: Use http session in dispatcher
* devstack: Change default backend to file
* Fix the minimum required tooz version
* Correct use of phases in devstack plugin
* Install the gnocchi heat plugin
* Fix minimum version for keystonemiddleware
* Remove version constraints for oslo.db dependency
* rest: add a test for measures with no mean agg method in AP
* Fix resources rendering in web browsers
* rest: fix access to metric for owned resources
* Fix gnocchi-statsd can't start by flush\_delay
* doc: fix typo about duration/lifespan
* doc: create metrics when creating a resource
* Update doc about storage/indexer drivers
* Fix value for default\_archive\_policy
* Include Ceilometer dispatcher YAML file in tarball
* Adds missed history param into IndexerDriver list\_resource method
* Return detailed metric info on create
* Use Archive Policy Rule in create metric api
* Fix typo in policy name
* Use lazy loading of gnocchi project to filterout
* Use project instead of user for activity filter
* devstack: Fix the creation of archive policy
* return 404 on not-existing resource
* Let WebOb read the body of a PATCH when creating docs
* Add support for ArchivePolicy Rule Endpoints
* devstack: sync the apache template
* Fixes the setup of the keystonemiddleware
* Remove an xfail test that is now handled by another test
* doc: fixes a few typos and update some data
* Correctly enable keystone middleware
* Documentation typo
* Implements ETag for resource
* Keep history of updated resource attributes
* indexer: add support for filtering by duration
* Allow comparison of timestamp field to None
* Move JSON encoding routing in its own module
* Avoid query metric object twice from indexer
* Don't touch the sqla orm object
* gabbi: merge metric and metrics test files
* rest: pass the whole metric to aggregation
* rest: do not use expect\_error in tests
* rest: enhance metric retrieval in controllers
* Adding Gabbi Tests to Metric(s) API
* indexer: return resource objects rather than dict
* indexer: return objects rather than dict
* rest: allow to search for metric value
* Move common resource attributes into a mixin
* Add gabbi tests to cover the ArchivePoliciesController
* Adjust ResourcesController to provide get\_all()
* Update resource.yaml to reflect recent fixes
* rest: Add list of resources types URL on /v1/resource
* Only query metrics by uuid if we have uuids
* rest: encode all timestamps with timezone
* Bump to oslo.serialization 1.4.0
* Use modern versions of the oslo packages
* Don't use static host string in dispatcher test
* Fix gnocchi repository url
* Update .gitreview for project rename
* storage: pass query rather than predicate in value\_search
* rest: add more operators in complex queries
* swift: retry if content length is 0
* tests: drop testscenarios usage for storage
* Correct handling of fixtures and server in gate tests
* rest: validate metric format before using it in indexer
* Put gnocchi meters in prefixed swift containers
* rest: validate UUID before sending it to indexer
* carbonara: stop caring about other less precise points
* Adds resource description in doc
* Improves resource class names in rest
* Add dist to gitignore
* Generate the testr results html format
* Add support for per metric Archive Policy
* Make '/' URL return meaningful information about API versions

1.0.0a1
-------

* storage: add a test for delete inexistent metric
* sqlalchemy: enhance QueryTransformer
* Remvoe version, add URL and other fields
* Add 'image' resource support
* Add 'stack' resource
* Enforce policy before request validation
* Add ipmi resource
* Add identity resource
* Add network resource
* Add ceph\_account resource
* refactor indexer.sqlalchemy
* Remove useless cachetools
* Use six.text\_type() to convert exceptions
* test: Use gabbi tests on live gnocchi-api
* Add AggregationDoesNotExist exception
* Don't use MultiStrOpt
* devstack: set the gnocchi url for ceilometer-alarm
* fix wrong quote format in doc/devstack.rst
* storage: add measure query class
* rest: fix exception JSON encoding
* ceph: ensure object name are str
* rest: uses search query to filter on metric aggregation
* rest: change metric aggregation URL
* test: remove useless variable
* test: move a test\_capabilities out of scenarios
* rest: remove PATCH schemas
* storage: add support for value research
* devstack: fix creation of the swift reseller admin
* tests: copy archive policy before modifying it
* default pecan debug to false
* Remove direct usage of iso8601
* Remove ceilometer alarm stuffs
* tests: make authtoken less verbose
* tests: stop generating scenarios for all indexer
* rest: return a correct error code if NotImplemented
* Switch to oslo.policy
* Stop using global cfg.CONF object
* Remove Python 3.3 from tox
* rest: run the tests with no auth
* rest: replace list+filter by search mechanism
* Add a chart for each metric when viewing a resource in a browser
* Add HTML rendering for "/v1/resource/generic/<resource\_id>" URL
* indexer: allow created\_by\_{user,project}\_id to be null
* gabbi: add "" around some strings
* Fix uuid format of post resource
* carbonara: percentile must be a float
* Add the nova shiny test output
* Cover the basic resource API with gabbi tests
* ceph: don't rely on a particular agg. method
* Remove a redundant existence check in resource PATCH
* Add a py27-cover tox target
* Move oslotest from requirements to test-requirements
* service: validate default values
* archive\_policy: have a sane default list of agg methods
* Base infrastructure to support gabbi tests
* rest: implement complex query for resource listing
* Put dbname in the path section of postgresql URL
* Start statsd service correctly
* Move and fix statsd option
* Fix statsd documentation file extension
* Add volume resource
* devstack: fix plugin with rename of get\_or\_add\_user\_role
* storage: pass the archive policy in various methods
* Initial statsd daemon implementation
* tests: add a missing random metric name
* tests: randomize metric name
* devstack-gate: fix gate hooks
* Use werkzeug to run the developement API server
* devstack: change Gnocchi service type to metric
* tests: do not set debug mode
* devstack-gate: allow to configure drivers
* Add some instance metrics
* remove hacking exception gettextutils
* carbonara: implement nanosecond support
* rest: add support for percentile as aggregation method
* carbonara: add support for percentile
* Fix aggregation race when no timeserie exists
* Fix devstack setup when swift is not installed
* Fix gnocchi alarm validation
* Add ceilometer alarm rule and evaluator
* Update oslo-incubator
* rest: allow aggregation against any metrics
* Add capabilities documentation
* Detect the left/right boundary of an aggregate
* Add gate hook that test the devstack setup
* rest: cascade delete on metrics from resources
* Declare method static where needed
* Use --no-defaults with mysql database creation
* carbonara: use dropna() rather than ~isnull()
* carbonara: clean up useless code
* carbonara: add serialize\_to\_file()
* carbonara: do not iterate over values
* carbonara: set all values at once
* Add Carbonara CLI tools
* Add capabilities API
* rest: allow to specify the list of aggregation methods
* indexer: store aggregation methods in archive policies
* Duration performance test
* tests: fix relative test failing sometimes
* Partially revert database tests patches
* Fix order of arguments in assertEqual
* storage/carbonara: stop using pandas
* rest: allow to use relative timestamps
* Remove useless requirements
* Devstack plugin for Gnocchi
* Fix ResourceSchema to allow None user\_id and project\_id
* Improve database handling in tests
* Adds missing argument in function call
* Switch to file:// coordination by default
* tox: fix doc8 command in py27
* rest, indexer: make the JSON encoder UUID aware
* ceph: use ceph instead of tooz for locking
* Add ceph as storage driver
* duplicate UUID method
* Switch to oslo.log
* rest: allow to render measures in HTML
* indexer: use ArchivePolicy in create\_archive\_policy()
* Allows cross-metric-aggreg. with missing points
* Use oslo.serialization.jsonutils to serialize JSON
* Upgrade to hacking 0.10
* Store aggregation\_methods in ArchivePolicy
* Fix ceilometer dispacher to conform to the new name
* tests: fix AP retrieval
* storage: change create\_metric() to accept ArchivePolicy as argument
* Create an archive\_policy module
* indexer: only load metrics on explicit demand
* Check RBAC policy on aggregated metric access
* rest: do not retrieve the metric twice in get\_all()
* Allow to retrieve several metrics at once from the indexer
* rest: fix typo in metric policy
* Disallow linking resources and metrics from different users
* rest: allow to filter metrics listing by user/project
* carbonara: store timestamps as integer, not string
* Remove py33-postgresql
* Update oslo-incubator
* tests: use non-admin user by default in test
* indexer: do not delete metric on resource delete
* policy: fix creator rule
* rest: convert UUID in token to correct format
* rest: enhance enforce context
* Fix executor using in \_carbonara
* rest: allow timespans to be integers
* rest: return 404 on not found instead of 400
* \_carbonara: fix futures import
* Update futures from global requirements
* storage: switch default driver to file
* opts: add missing oslo-incubator options
* rest: check that the Content-Type is JSON
* indexer: simplify resource ↔ metric relationship
* rest: allow to delete archive policies
* indexer: add delete\_archive\_policy
* indexer, rest: simplify metric model
* rest: allow to list metrics via GET /v1/metric
* Remove sphinx from Python 3 requirements
* aggregates: added moving average
* docs: generate HTTP request from real data
* Remove useless dependencies
* Allows to get aggregated measurements of metrics
* Remove mox from import exceptions
* rest: add policy to list all resource
* rest: add policy for resources
* rest: add policy check for archive policy creation
* rest: add policy for archive policies listing
* rest: add policy enforcement for archive policy retrieval
* Fix Ceilometer dispatcher after i18n transition
* Use oslotest as base class for unittests
* rest: return 400 when creating resource with invalid metric
* rest: return 404 if metric id is empty
* rest: return 404 on non existent archive policy
* tests: use SQL scripts to setup env and run any command
* Fix doc8 errors
* extension for moving aggregates
* indexer: fix typo in docstring
* rest, indexer: allow the {user,project}\_id to be empty
* rest: implement policy check for create entity
* rest: add policy support for get entity
* rest: add policy for delete entity
* policy: change default rules
* Rename Entity to Metric
* ceilometer: remove useless variables from dispatcher
* Add keystone support to ceilometer dispatcher
* rest: add and expose back\_window attribute of archive policies
* Allows to filter out the gnocchi generated samples
* Add a gnocchi dispatcher for ceilometer
* Allow to run any version of Pecan, except 0.8
* rest, indexer: store creators of the resources
* rest: remove Carbonara exception leak
* rest: add policy for get measures
* rest: implement policy checks for post measures
* Switch posix\_ipc dependency to sysv\_ipc
* Import policy from oslo-incubator
* Update oslo-incubator
* Fix and test the NullStorage driver
* storage: merge coordination and carbonara
* doc: fix typo in resource type type
* Add get\_entity method in indexer
* rest: allow to have infinite retention in policies
* Minor readability improvements to carbonara
* storage: do not include to\_timestamp in the range
* Remove custom 204 response code setting
* rest: validate archive policies definitions
* carbonara: fix the default fetch() behavior
* carbonara: fix archive back window
* Remove assertEqual when request method has params for it
* Move oslosphinx to requirements
* storage: multi-thread add\_measure in Carbonara based drivers
* storage: factorize carbonara based drivers
* Add '?details=true' to GET '/v1/entity/<entity\_id>' route
* postgresql: redirect logs to /dev/null
* Add 'GET' routes to retrieve Entity informations
* Import documentation
* Use 'pg\_ctl' instead of 'postgres' utility to start and stop database
* Allow to filter resources on NULL values
* Empty gnocchi/tests/\_\_init\_\_.py
* Ensure Location header are string
* Limit Pecan version, fix Pandas usage
* rest: granularity is also a Timespan
* rest: allow to use timespan to define archive policy
* Don't raise 500 on carbonara NoDeloreanAvailable
* rest: add a test on GETing a non existent archive policy
* Set a minimal version for oslo.utils
* Use basepython instead of baseversion
* Fix python3 gate issue
* Keep gnocchi/\_\_init\_\_.py empty
* Fix typo in gnocchi wsgi script
* Add server\_group to instance resource
* Don't try to load empty middleware
* rest: enable Keystone auth\_token middleware by default
* Add config generator support
* Update oslo-incubator
* rest: add support for create/get archive policies
* indexer: remove entities from Entity
* tests: fix race condition on archive policies
* sqlalchemy: remove with\_for\_update()
* indexer: store archive policies
* Fix pep8 errors
* Switch user\_id and project\_id to be UUID
* Update to latest oslo-incubator
* Allows to append entities to a resource
* Ensures ipc semaphore are released in our tests
* Add swift\_account resource
* Fix and re-renable Python 3 testing
* Stop using oslo-incubator lockutils
* storage: switch to ipc:// coordinator by default
* Remove outdated option
* Provide the gnocchi wsgi script
* rest: store archive\_policy and export entities as resources
* Connect to database before upgrading it
* Return 404 if patched resource doesn't exists
* Stop using standard NotImplementedError to skip tests
* sqlalchemy: use new DBReferenceError from oslo.db
* indexer: make entities be resources
* storage: implement archiving policy
* Add support for mysqld not in $PATH
* indexer: use sqlalchemy-utils for UUID type
* Fix tests with latest releases of testtools
* Work toward Python 3.4 support and testing
* Added file storage backend
* Remove pandas version limitation
* swift: avoid doing a HEAD to check container presence
* Switch to tooz 0.3
* rest: returns 404 on entity not found rather than 400
* Use oslo new libraries
* rest: allow to access named entities via resources
* tests: explicitly close index connections
* Allow up to 100 connections in PG for tests
* Switch to oslo.db
* api: allow to retrieve resources details when listing
* indexer: allow to retrieve details on resources
* swift: remove compression
* carbonara: change time serie aggregation implementation
* tests: fix MySQL tests
* Update hacking
* Update oslo-incubator
* Import oslo units module
* Fix test with pecan>=0.6
* carbonara: remove useless method
* Avoid 409 Conflict on entity deletion
* Add upper bound on pecan dependency
* rest: verify that archives values are > 0
* Allow more than 2 measurements per entity to be stored
* Fix up examples in README.rst
* Fix typo
* Remove debug code
* rest: factorize resource\_class
* rest: allow to PATCH instance attributes
* tests: factorize patchable attribute testing
* Remove architecture attribute from instance
* rest: returns 409 when trying to recreate a resource
* Set project name when parsing configuration
* tests: run on MySQL too
* indexer: allow to update any attribute
* indexer, rest: allow to filter on any resource attribute
* rest: allow to use project\_id to filter projects
* Fixed ReST syntax errors
* Adds install instructions to Gnocchi README
* Imposed string length limit in sqlalchemy.py
* indexer: allow to filter by project\_id
* sqlalchemy, tests: fix table creation race condition
* sqlalchemy: fix ended\_before
* rest: allow to filter via user\_id
* indexer: allow to filter by user\_id
* Limit pandas version
* Ignore pbr generated files
* indexer, rest: add support for ended\_before
* Port to Python 3
* Add gnocchi-dbsync command
* Rename integ to PostrgeSQL
* Add .gitreview file, do not run integ tests by default
* rest: allow to pass started\_after in listing requests
* indexer: allow to retrieve resources with started\_after
* rest: add resource listing
* indexer: implements list\_resources()
* rest: properly handle already existing resource
* rest: support instance CRUD
* Store resource type in SQL
* Factorize resource\_type
* Allow to retrieve instances
* Factorize more code
* Rename 'resource' to 'generic'
* Move generic resources under /generic
* Factorize resource to dict return
* Allow to create instances in the indexer
* Add support for Unix timestamps in API
* Fix timestamp issues + use transactions
* Handle patching of ended\_at
* Fix voluptuous validation/conversion
* indexer: allow to update resource ended\_at
* Handle patch with non existent entity
* Correctly handle PATCH on non-existent resource
* Use PATCH to modify entities
* Force user/project to be set
* Allow to specify start/stop timestamp when creating resources
* Return user/project in resources
* Store start/end timestamps in resources
* Actually allow to update entities only
* Add user\_id and project\_id to resources
* Allow to GET resources
* Allow to update resources
* Fix indent
* Fix pep8 errors
* Allow to delete resources
* Allow to create entities with a resource
* Allow to create resources via the REST API
* Rename entity name attribute to id in REST
* Add a name to entities linking
* Remove tooz from external/unverified
* indexer: store entity as UIDs
* rest: do not allow to specify the entity name
* Import
