CHANGES
=======

9.0.0.0rc1
----------

* Drop lower-constraints.txt and its testing
* Add SSL support for InfluxDB connection
* Add Python3 zed unit tests
* Update master for stable/yoga

6.0.0
-----

* Add Python3 yoga unit tests
* Update master for stable/xena

5.0.0
-----

* Fix Docker build
* Fix zuul publish docker image job
* Add Python3 xena unit tests
* Update master for stable/wallaby

4.0.0
-----

* Fix zuul publish docker image job
* Add doc/requirements
* Remove six
* bump py37 to py38 in tox.ini
* Set legacy\_kafka\_client\_enabled = False on default for Docker
* Add Python3 wallaby unit tests
* Limit legacy jobs to stable branches
* [goal] Migrate testing to ubuntu focal
* Update master for stable/victoria

3.0.0
-----

* Add Python3 victoria unit tests
* Remove unnecessary test to bring compatibility with py38
* Set legacy\_kafka\_client\_enabled = False on default
* drop mock from lower-constraints
* Stop to use the \_\_future\_\_ module
* Switch to newer openstackdocstheme and reno versions
* Remove ujson from lower-constraints
* Add CONTRIBUTING.rst
* Remove .testr.conf
* Fix hacking min version to 3.0.1
* Update master for stable/ussuri
* Update hacking for Python3
* Migrate from ujson to simplejson
* Cleanup py27 support

2.0.0.0rc1
----------

* Add tests for cassandra/retry\_policy.py
* Fix constraints and requirements to fix failing tests
* Fix batch\_size configuration option in Docker
* Add configuration option influxdb.batch\_size
* Change README.rst with a better title
* [ussuri][goal] Drop python 2.7 support and testing
* Support default\_retention\_hours for influxdb
* Support Kafka events enable option
* Support automatic db creation for InfluxDB
* Move data\_points to repository class
* Switch to Ussuri jobs
* Bump the openstackdocstheme extension to 1.20
* Blacklist sphinx 2.1.0 (autodoc bug)
* Support multiple kafka consumers
* Update master for stable/train

1.15.0
------

* Tool to migrate existing data to db per tenant
* Implement separate db per tenancy
* Update the constraints url
* Set job with Java persister non-voting
* Deprecate Java implementation
* Exclude influxdb 5.2.3 for python
* Add option for kafka client
* Fix InfluxdbClientError exception bug
* Use Confluent Kafka client
* Support Kafka\_events option in docker evn
* Update all columns in metrics on an update to refresh TTL
* Disable monasca-tempest-java-influxdb job
* Add Python 3 Train unit tests
* Add tests for cassandra/token\_range\_query\_manager.py
* Add tests for cassandra/alarm\_state\_history\_repository.py
* Change lower-constraints for cassandra-driver
* Support kafka num\_processors option
* Adds release note warning of InfluxDB recommended version change
* cassandra metrics\_id contain null value bug
* Support cache\_size option in docker env
* Clarify dependency on cachetools in recreate-metric-id tool
* Add tests for influxdb/metrics\_repository.py
* Replace git.openstack.org URLs with opendev.org URLs
* Add utils.py tests
* Fix a typo and add troubleshooting in tools README
* Fix app\_repo in Docker with new git url
* Create a tool for recreating missing metrid\_id in Cassandra
* Minor refactoring for utils.py
* Add tests for repositories/persister.py
* Add tests for influxdb/alarm\_state\_history\_repository.py
* Add tests for cassandra/metric\_batch.py
* OpenDev Migration Patch
* Improve Docker README file
* Add logging configuration to docker image
* Dropping the py35 testing
* Push Docker image to Docker Hub
* Change process\_message() to static
* Widen exception catch for point parse failure
* Add coverage report display
* cassandra contact\_points bug
* Update master for stable/stein

1.14.0
------

* Docker support influxdb parse point error
* Fix Cassandra tempest tests job name
* Fix config file in docker
* persister support cassandra in docker env
* README.rst: make it us-ascii
* some points unable to parse
* Update hacking version to latest
* Add job for releasenotes
* Update documentation to use new default config
* Use global job for building docker image
* add python 3.7 unit test job
* Replace persister.conf with monasca-persister.conf
* Fix default alarm\_state\_history\_driver value
* Add tempest tests jobs
* Change default for [kafka]num\_processors to 1
* Update .gitignore
* Drop monasca\_persister/LICENSE
* Fix the misspelling of "available"
* Change openstack-dev to openstack-discuss
* Remove setup.py check from pep8 job
* Disable ClassPathURLCheck for Java build

1.13.0
------

* Parse envelope fields from kafka to prepare the ES index
* Don't quote {posargs} in tox.ini
* Turn logging down from DEBUG in persister-logging.conf
* Use templates for cover and lower-constraints
* Remove pykafka from lower-constraints
* Clean up lower-constraints.txt
* Adding batch size for events configuration
* Disable B303 bandit test
* add python 3.6 unit test job
* import zuul job settings from project-config
* fix tox python3 overrides
* Add check for README.rst syntax

1.12.0
------

* Fixed the handling of metrics outside of the retention policy
* Add tooling for building Docker image
* Switch to using stestr
* Fix coverage job configuration
* includes options defined in kafka common
* Convert README.md to ReStructuredTest format
* update README with python section
* fix misspelling of "because"

1.11.0
------

* Update pep8 checks
* Clean up tox.ini
* add lower-constraints job
* Updated from global requirements
* Update links in README
* Remove PostgreSQL tempest jobs from Zuul
* Updated from global requirements
* Clean up tox.ini
* Add performance testing in Monasca persister

1.10.0
------

* Zuul: Remove project name
* Updated from global requirements
* Update links in pom.xml
* Enable all mysql tempest tests as voting
* Java persister config: defaults and robustness

1.9.0
-----

* Upper pom version to 1.3.0
* Add Cassandra tempest tests
* Add Cassandra db support
* Updated from global requirements
* Updated from global requirements
* Disable events persister per default
* Add support for persisting events
* Add .zuul.yaml file

1.8.0
-----

* Allow hostnames to be used as ip\_address
* Make legacy java gate working
* Allow persister to handle retention policies in influx
* Add .stestr.conf 
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Use ujson instead of json for parsing messages

1.7.0
-----

* Use oslo-config-generator
* Increase Persister Performance
* Updated from global requirements
* Define extra hacking rules to ensure code quality
* Updated from global requirements

1.6.0
-----

* Updated from global requirements
* Updated from global requirements
* Remove nose from test-requirements
* Fix requirements for influxdb and cassandra

1.5.0
-----

* Add bindep.txt
* Optimize the link address
* Updated from global requirements
* Document deployment of Python monasca-persister
* Pass version and description into oslo setup
* Updated from global requirements
* Copy persister configuration during install

1.4.0
-----

* Release version 1.2.1 for Java
* Updated from global requirements
* Turn on bandit check as part of pep8
* Changed author and author-email
* Updated from global requirements
* Updated from global requirements
* Add persister.py unit tests
* Granular logging control

1.3.0
-----

* Change Java version to 1.2.0
* add a one-line summary to the package metadata
* Clean imports in code
* Show team and repo badges on README
* Fix a typo
* Don't include openstack/common in flake8 exclude list

1.2.0
-----

* Updated from global requirements
* Remove redundant 'the'
* Updated from global requirements

1.1.0
-----

* Updated from global requirements
* Use constraints everywhere
* Sync tools/tox\_install.sh
* Check value meta length before writing to Vertica
* Revival of Cassandra repository
* Fix setup.cfg console\_scripts
* Fixes H201: no 'except:' at least use 'except Exception:'
* Remove influxdb from requirements.txt
* Removed H302, H305 and H307

1.0.0
-----

* Import simport from monasca-common
* fix alarm history
* [monasca-persister] Change tox to use https instead of git
* Remove oslo.service useless requirement
* Remove babel useless requirement
* Remove iso8601 useless requirement
* [monasca-persister] Constraint tox targets with upper-constraints
* Change tox file
* Enable the ability to run multiple consumer processes at once

0.1.15
------

* Remove cassandra repository
* Refactor the python persister
* Ensure the same branch is used for common build
* Fix message parsing when link or lifecycle state is None
* Eventlet library no longer used
* Fix error if link or lifecycle state doesn't exist in transition

0.1.14
------

* Pass link and lifecycle state in state transitions

0.1.13
------

* Mitaka compatibility
* Enable Cassandra Database
* Upgrade to Kafka 0.8.2.2
* Minor readme fixes
* Make persister shutdown on error
* Deprecated tox -downloadcache option removed
* Adjustments to support new oslo libraries
* Delete python bytecode before every test run
* Lack of time field caused loss of Alarm History
* Adapting persister because of changes to monasca common
* force measurement value to type float before writing to db
* Modifying Persister to use common kafka interface
* Change repositories from stackforge to openstack
* Update .gitreview for new namespace
* Validate metricsString does not exceed max length
* Store {} when value\_meta is empty
* Change camelCase to snake\_case in JSON
* Fix problem where value\_meta is null in JSON
* Fix problems with oslo.config
* Reconcile example and mini-mon configs
* Add virtenv dir and contents to .gitignore
* Upgrade influxdb python from 2.6.0 to 2.8.0
* target link was being created incorrectly
* Enhance fail fast on error functionality
* Fix java file licenses
* Trivial change to get Zuul to push a new jar

0.1.12
------

* Convert empty string to empty JSON for sub alarms
* Convert nulls to empty strings or empty JSON
* Reenable changes from https://review.openstack.org/#/c/193590/
* Reverted influxdb 0.9.0 changes as the Ansible is not yet ready
* Fixes for Influxd 0.9 latest
* Fixes for Influxdb 0.9 latest stable
* Always store value\_meta
* Fix jah-1654
* Include dimensions in measurement tags
* Migrate to Influxdb 0.9.0
* Exclude all .pyc files from git
* Use vertica's merge function
* Fail fast
* Bump the version to 1.1.0
* Update vertica code
* Bump to version 1.1
* Improve exception handling

2015.1
------

* Fix flush time calculation
* Fix mark read functionality
* Minor cleanup
* Cleanup
* Only the jar and sample config in the deb
* Remove Influxdb 8
* Cleanup dependency injection
* Allow unicode
* AlarmStateTransitionedEvent timestamp now in ms
* Add packages
* Refactor influxdb and vertica classes and code
* Send request and response data to Influxdb gzip encoded
* Fix bug with caches handled inefficiently with vertica
* Update influxdb-java version from 1.0 to 1.5
* Store tenant\_id and region as private
* Use Maven 3 for build
* Added java -jar monasca-persister.jar --version
* Only write value\_meta column if it has a value
* Add valueMeta support for Influx DB V9
* Conversion to milliseconds
* Make tenant\_id and alarm\_id tags in alarm state history
* Add measurement valueMeta
* Conversion to milliseconds
* Enable Alarm State Transitions to be written to Influxdb
* Changes for Influxdb 9 RC4
* Adding subalarm column for alarm state transition
* Use pooling managed httpclient
* Python persister batches data points with common name
* Fix persister startup for deb package
* No longer upgrading to kafka-python 0.9.3
* Add Influxdb 0.9.0 support
* Make it so the shaded jar has a deterministic name
* Changes to get the java code to build on StackForge
* Use standard Openstack config options for daemon
* Move tenant id and region to front of serie name
* Move tenant id to the front of the serie name
* Add logging at info level when persister is waiting to acquire locks

0.1.11
------

* Add high-availability

0.1.10
------

* Fix comment
* Add kafka configuration values
* Make info statement easier to read

0.1.9
-----

* Fix issue with restarts rereading kafka messages

0.1.8
-----

* Add logging of message count info when messages sent to influxdb
* Add banner

0.1.7
-----

* Set logging level to info

0.1.6
-----

* Fix shutdown problem

0.1.5
-----

* Add more error handling

0.1.4
-----

* Fix bug JAH-865

0.1.3
-----

* Added missing requirements

0.1.2
-----

* Specified all needed subpackages

0.1.1
-----

* Change to new package names for monasca-common
* Moved openstack package so imports are setup correctly

0.1.0
-----

* Make code more python-like
* Refactor out duplicate code paths
* Fix flush logic to remove unnecessary variable assignment
* Refactor code to remove duplication
* Allow unicode in metrics column
* Increase throughput of persister
* Fix unicode error when logging
* Add files for pypi
* Add servicerunner to run the persister using the Openstack service infrastructure
* WIP - Persist metrics along with alarm-state-history records in Influx
* Initial Python Persister
* Remove compiler warning
* Cleanup code
* Series name contains metadata
* Some files were renamed on master
* Use monasca everywhere
* Add a tar.gz to the package step
* Remove all dependencies on hpcloud maven repository
* Add file encoding system property
* Commit kafka reads once the item was persisted
* Fix when same metric has different columns (dimensions)
* Remove star from imports
* Initialize local var only once
* Handle measurements with no dimensions
* Changes to work with new monasca\_common build
* Change influxDBConfiguration to influxDbConfiguration
* Fix various pom issues
* Use DatabaseConfiguration from mon-influxdb
* Use InfluxDbConfiguration from mon-influxdb
* Fixed code formatting to follow guidelines
* Get initial build to work
* Ensure that metrics and alarms are flushed on shutdown and that the Kafka connection is shutdown properly also. This ensure that on normal shutdown, no metrics or alarms are missed or duplicated
* Change the build to use the mon-common from the local repository. Updated README.md with build instructions
* Make InfluxDBConfiguration nullable
* Refactor debug logging into separate methods
* Add copyright header
* Add measurement meter
* Remove time\_stamp column and use time column instead
* Change Kafka topics to be configurable instead of hard-coded
* Handles alarm state transitions with influxDB
* Handles metrics with influxDB
* Remove redundant MAX\_TENANT\_ID\_LENGTH
* Increase tenant\_id length to 255
* Update VerticaMetricRepository.java
* Update VerticaMetricsConstants.java
* Update VerticaMetricsConstants.java
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Add try-catch block to database operations
* Update README.md
* Removed .idea directory
* Update to the latest build of mon-common where MetricEnvelope timestamp is now in seconds
* Update to mon-common build 50 so that when api sends a MetricEnvelope with the new timestamp, it will still deserialize
* Modified copyright header one more time for good measure
* Modified copyright header
* Added copyright header and LICENSE file
* Shorten method name
* Fix spelling error
* Add meters and debugging stmts
* Clean up code. - make flush single transaction. - add warnings. - clean temporary caches on error
* Truncate columns greater than max
* Change VARCHAR to VARCHAR(255)
* Change SQL parameters to names of columns instead of positional numbers
* Change SQL parameters to names of columns instead of positional numbers
* Add hexString method to Sha1HashId
* Add debugging statements
* Add checks for null and empty strings in dimensions
* Remove alarm\_name and alarm\_description. Added reason\_data, which is hard-coded to "{}" for now
* Modified to use Metric in mon-common
* Changed metrics to yammer to codehal
* Re-factored to remove some duplicate code
* Migrate to Dropwizard 0.7.0. Change main class to MonPersisterApplication
* Migrate to Dropwizard 0.7.0
* Fix mon-model jar resolution issue
* Modified to use AlarmStateTransitionedEvent in mon.common and added alarm description
* Change schema to normalize definitions and dimensions
* Make DefinitionId class immutable
* Add DefinitionId class for proper hashing of definition ids
* metric\_definition\_id -> definition\_id
* Change vertica schema names.   monmetrics.metrics to monmetrics.measurements.   metric\_id to id.   metric\_definition\_id to id
* Added increment of threadNumber for Alarms too
* Fix threadNumber increment missing
* Make some changes based on Intellij analyze
* Added persistence of alarm state history
* Sort the dimensions by name when creating the metric def id
* Get banner working again
* Fix another spelling error
* Fix spelling
* Remove useless log4j.properties file
* Add comments about useless log4j.properties file
* Changed package name to com.hpcloud.mon.persister
* Minor class and variable name changes
* Remove redundant exception handler
* Add cache for metric definitions
* Only flush staging tables if enough time has elapsed since last flush
* Make commit always flush
* Use individual local temp staging tables
* Warn if not tenantId found
* Add catch for any exceptions
* Warn if not tenantId found
* Remove unnecessary @JsonProperty annotations
* Change JSON format to work with envelopes and meta data
* Add delete before insert for staging tables. Speeds up processing
* Add exception catch
* Add metrics
* Make Deduper delete and purge
* Add logger
* Refactor
* Add truncate after dedupe
* Add deduper
* Fully process metric messages into the DB
* Add log message. Get rid of unnecessary disruptor injection
* Fixed startup command
* Create deb
* Initial import of jdeb
* Start making types more general
* Construct instance of disruptor in provider constructor
* Added Disruptor exception handling
* Make disruptor threads parallel
* Add repository for vertica db
* Clean up DBI Provider
* Make Disruptor a Provider
* Make everything injectable
* Add config logging. Add disruptor shutdown code
* Starting organizing code into
* Basic functionality for sending string message to DB.   DB schema 'test'.   DB table 'test.metric'.   DB column 'test.metric.metric'
* Basic consuming functionality working.   kafka consuming and sending thru disruptor.   disruptor handlers handling
* Make properties all Strings for Kafka
* Added basic Kafka consumer
* Update README.md
* Start adding testing scaffolding
* Added Guice. Added a KafkaConsumer. Added KafkaConsumer configs
* Added logging to mon-persister-config.yml
* Collate the various META-INF/services entries in the JARs instead of overwriting them. (Jersey doesn’t work without those.)
* Add a simple fake health check to get rid of warnings on startup
* Added banner.txt
* A basic server that runs
* Add dropwizard dependency
* Added more UTF-8 encoding goodness
* Update README.md
* Update README.md
* Changed group.  Corrected spelling
* Amend the pom.xml
* Added initial pom.xml
* Initial commit
