diff --git a/ReleaseNotes b/ReleaseNotes
index c27b0eb338ef843ef6030416b43b01283d77367f..9ba26928e6940dfb14115b7ea5026c89f71d4bc9 100644 (file)
--- a/ReleaseNotes
+++ b/ReleaseNotes
and very detailed list of changes can be obtained from the Git logs for each
release.
+ Compatibility Note:
+ ~~~~~~~~~~~~~~~~~~~
+
+ All pre 1.0 development snapshots are not considered stable yet. That is,
+ all interfaces, including the plugin API, the network protocol, or the query
+ language, may change in an incompatible way at any time. All changes are
+ documented here.
+
About SysDB:
~~~~~~~~~~~~
“System DataBase” (SysDB) is a multi-backend system management and inventory
Object names are canonicalized before they are added to the store to ensure
a consistent view of your infrastructure.
- <https://github.com/tokkee/sysdb>
+ <https://sysdb.io/>
+
+Version 0.5.0, Release Date: 2014-10-06
+---------------------------------------
+
+ This release focuses on simplifications and more flexibility in the frontend
+ and the query language. Most of those changes are not backward-compatible
+ but easy client implementations.
+
+ * sysdb:
+ - Include priority when printing log messages.
+ - Fixed handling of empty queries.
+ * store:
+ - When serializing the entire store (LIST command), return an array of
+ host objects (rather than wrapping it into another object).
+ - Fixed JSON format of time-series data.
+ - Fixed error checks of invalid compare expressions and reject them.
+ - Fixed lookups by back-end name.
+ - Added support for comparing attributes with different types by
+ comparing their string values.
+ * frontend:
+ - Clarified details about asynchronous messages and authentication
+ options and made client implementation more robust.
+ - Introduced a new message type encoding the JSON serialized response of
+ a query and its data type.
+ - Include the priority in log messages.
+ - Include object types in FETCH, LIST, and LOOKUP messages.
+ - Added support for including services and metrics in LIST responses and
+ skip hosts without the respective children.
+ * query language:
+ - Added support for services and metrics to LIST command.
+ - Changed syntax for attribute lookup to 'attributes[<name>]'.
+ - Changed syntax for accessing queryable fields to '.<field>'.
+ * utils:
+ - strbuf: Improved memory management.
+
+Version 0.4.0, Release Date: 2014-09-01
+---------------------------------------
+
+ This release features support for metrics and transparent access to a
+ backend's time-series data. Some backward-incompatible changes were applied
+ to some query commands for more consistency.
+
+ * build system:
+ - Added checks for format strings and arguments.
+ - Changed configure option for collectd::unixsock to
+ --enable-collectd-unixsock.
+ * core:
+ - Added support for “metric” objects which may be assigned to a host.
+ - Introduced support for handling time-series data: added new data
+ structures describing time-series data and a new type of plugins called
+ “time-series fetchers” which are used to access time-series
+ information.
+ * store:
+ - Fixed a memory leak.
+ - Apply (very) simple optimizations to lookup expressions.
+ - Added support for metrics and their “data-stores” (describing how to
+ access the actual data referenced by a metric).
+ - Added support for querying time-series data through the newly
+ introduced “time-series fetcher” plugins.
+ * frontend:
+ - Fixed a bug that might have caused reading too much data from the
+ connection buffer in certain situations.
+ * query language:
+ - The ‘MATCHING’ clause is now optional in ‘LOOKUP’ queries.
+ - The ‘LIST’ and ‘FETCH’ commands support ‘FILTER’ clauses as well.
+ - ‘LIST’ / ‘FETCH’ were changed to ‘LIST hosts’ / ‘FETCH host’.
+ - Added the ‘TIMESERIES’ command to query arbitrary time-series which
+ fetches time-series data from a backend's data-store for a given period
+ of time.
+ - Added support for date/time values.
+ - Added support for single quotes in string values: two adjacent single
+ quotes may be used to specify a single quote.
+ * documentation:
+ - Documented the frontend protocol in frontend/proto.h.
+ - Documented changes to the query language and new / updated plugins.
+ - Documented all supported data types.
+
+ Backends:
+ * collectd::unixsock:
+ - The plugin now uses metrics in place of services.
+ - New config options ‘TimeseriesBackend’ and ‘TimeseriesBaseURL’ to
+ specify access to time-series, currently limited to ‘rrdtool’ and
+ ‘rrdcached’ access.
+
+ Plugins:
+ * timeseries::rrdtool:
+ - New plugin adding support to fetch time-series from local RRD files.
+ - Supports flushing of values in RRDCacheD.
+
+Version 0.3.0, Release Date: 2014-08-01
+---------------------------------------
+
+ This release includes major enhancements and new features in the SysDB store
+ which is the core of the database. Most notably, complex expressions are now
+ supported when looking up information and filters may be used to preselect
+ the information to be returned. Some backward-incompatible changes were
+ introduced in the query language to avoid potentially confusing semantics.
+
+ * sysdb: Fixed non-interactive mode when using libedit.
+ * core:
+ - Fixed weird behavior when collector callbacks were registered without
+ any plugin context information (as it would, e.g., happen when using
+ LoadPlugin instead of LoadBackend in sysdbd).
+ * store:
+ - Introduced service attributes -- similar to host attributes but
+ assigned to a service object.
+ - Don't log “value too old” messages if an updated object uses the same
+ timestamp as the old object.
+ - Switched from linked-lists to AVL trees for storing all object types to
+ reduce lookup times from O(n) to O(log n).
+ - Added infrastructure for handling and evaluating arithmetic
+ expressions and filters (see also the changes to the query language
+ below).
+ - Export various fields describing base attributes of all stored object
+ types: last_update, age, interval, and backend. These fields may be
+ used when querying the store.
+ * frontend: Include new service attributes in JSON output.
+ * query language:
+ - Added support for ‘IS NULL’ attribute checks matching on non-existent
+ attributes.
+ - Changed ‘LOOKUP ... WHERE’ queries to ‘LOOKUP ... MATCHING’ to avoid
+ confusion with SQL semantics.
+ - Switched from ‘<obj>.name’ to ‘<obj>’ in MATCHING clauses, thus, no
+ longer shadowing attributes called “name”.
+ - Added support for arithmetic expressions in places that used simple
+ data values before. Arithmetic expressions support addition,
+ subtraction, multiplication, division, modulo, and concatenation
+ operations. The expressions may be based on constant values or
+ queryable fields of the stored objects (specified as ‘:last_update’,
+ ‘:age’, ‘:interval’, and ‘:backend’).
+ - Added ‘FILTER’ support to ‘LOOKUP’ queries. Filters are conditional
+ expressions which may optionally be used to limit the query and the
+ result to object (of any type) matching the filter condition.
+ - Added support to specify date and time values.
+ * utils:
+ - avltree: Added an AVL tree (self-balancing binary tree) implementation.
+ * documentation: Added documentation for the new query language features.
+ * testing: Run all unit tests through valgrind by default (if available).
+
+ Backends:
+ * collectd::unixsock:
+ - Added support for spaces in identifiers.
+ - Store plugin identifier (host, plugin, plugin_instance, type,
+ type_instance) as service attributes.
+
+Version 0.2.0, Release Date: 2014-07-02
+---------------------------------------
+
+ This is another development snapshot of SysDB. The main focus of this
+ release is on stabilizing existing features and extending the query
+ infrastructure to support all attribute types and further operators.
+
+ * build system: Fixed linking of sysdbd to include *all* necessary object
+ files. This bug caused some plugins to be un-loadable.
+ * sysdbd: Fixed shutdown process in case of errors.
+ * sysdb: Fixed a bug causing some server replies to be ignored when exiting
+ from the client.
+ * core:
+ - Always log to the standard output stream if no user-provided logging
+ callbacks had been specified. Previously this was disabled after
+ enabling logging to clients in the frontend.
+ - Simplified plugin naming information and determine configuration
+ callback names automatically to ensure better consistency.
+ * store:
+ - Simplified internal data management.
+ - Store the list of backends along with each stored object which provide
+ the respective object.
+ * frontend:
+ - Simplified and improved the internal architecture matching / looking up
+ objects.
+ - Fixed parser to correctly reject invalid object types.
+ - Automatically create the base directory of a listening UNIX socket.
+ * query language: Added support for numeric constants and added operators
+ for less and greater than or equal attribute comparison.
+ * documentation: Added missing files to the distribution tarball.
+
+ Plugins:
+ * syslog: Don't log debug messages to syslog.
Version 0.1.0, Release Date: 2014-06-01
---------------------------------------