CHANGES
=======

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
