X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=ReleaseNotes;h=f9677e3939fc3c1c5b34d2df2fb33d921537fe54;hp=3227a66d513d1ce96007e262603226629185ae56;hb=2a77f65fe90397f95f6f83fa394e7c1ee304b09e;hpb=a01edf46f26cbb0e9bdba87d781c6015545a6463 diff --git a/ReleaseNotes b/ReleaseNotes index 3227a66..f9677e3 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -6,6 +6,14 @@ 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 @@ -19,6 +27,149 @@ +Version 0.6.0, Release Date: 2014-11-17 +--------------------------------------- + + This release focuses on a clearer query language. The underlying + architecture has been refactored to allow for more powerful and generic + expressions. + + * core: + - Added support for arrays. Elements may be of any other supported + data-type but only integers, decimals, and strings are fully supported. + * store: + - Refactored matchers: all matchers now operate on one or two expressions + or other matchers, replacing the old and less flexible conditional + matchers. + - Attribute values may now be used anywhere in an expression. + - On data-type mismatch when comparing attribute values, the values will + be cast to string (previously only done for regex matches). + - Added support for querying an object's backends (array of strings). + - Added support for iterating child objects and array values. + - All matchers now return false if any operand is NULL (except for IS + NULL). + - All operations now return NULL if any operand is NULL. + - Fixed behavior of not-operators (!=, !~) and let them not match if any + of the operands is NULL. + - Add support for looking up all object types (hosts, services, metrics). + - Refactored the JSON formatter to be more flexible and powerful. + - Record parent objects for each stored object. + * frontend: + - Added a separate parser mode for expressions. + - Added a new queryable field 'name' to be used in place of the rather + magical keyword 'host' when looking up hosts. + - Improved error reporting in the parser and the (newly introduced) + analyzer. + - Apply filters to hosts in the FETCH command. + * query language: + - All operators may now be used in all places if the involved data-types + support the respective operation. For example, regular expressions may + be used to match any value. Non-string values are cast to strings for + that purpose. IS NULL / IS NOT NULL may be applied to arbitrary + expressions. + - Introduced the 'IN' operator to check if a value or an array of values + is included in an array. + - Added support for arrays: [,,...] + - Added support for string and array concatenation using the '||' + operator. + - Attribute names have to be strings instead of identifiers now. + - Access object fields using '' rather than '.'. + - Let the LOOKUP and FETCH commands support services and metrics. + - Introduced 'FETCH service|metric . ' replaces + 'MATCHING service|metric|attribute ' expressions. + +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[]'. + - Changed syntax for accessing queryable fields to '.'. + * 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 --------------------------------------- @@ -75,7 +226,7 @@ Version 0.3.0, Release Date: 2014-08-01 - Store plugin identifier (host, plugin, plugin_instance, type, type_instance) as service attributes. -Version 0.2.0, Release Date: 2014-07-01 +Version 0.2.0, Release Date: 2014-07-02 --------------------------------------- This is another development snapshot of SysDB. The main focus of this