- Version 2.3.1 (2018-04-21)
- When setting up aggregators, advance to the first data point equal to or greater
than the query start timestamp. This helps with calendar downsampling intervals.
- Add support to the Nagios check script for downsampling fill policies.
- Fix expression calculation by avoiding double execution and checking both
output types for boolean values.
- Fixing missing tools scripts in builds.
- Default HBase 1.2.5 in the OSX install script
- Upgrade AsyncBigtable to 0.3.1
- Log query stats when a channel is closed unexpectedly.
- Add the Java 8 path in the debian init script and remove Java 6.
- Pass the column family name to the get requests in the compaction scheduler.
- Fix a comparison issue in the UI on group by tags.
- Filter annotation queries by the starting timestamp, excluding those in a row that
began before the query start time.
- Tiny stap at purging backticks from Gnuplot scripts.
- Remove the
finalannotation from the meta classes so they can be extended.
- Fix the javacc maven plugin version.
- Fix the literal or filter to allow single character filters.
- Fix query start stats logging to use the ms instead of nano time.
- Move Jackson and Netty to newer versions for security reasons.
- Upgrade to AsyncHBase 1.8.2 for compatibility with HBase 1.3 and 2.0
- Fix the Highest Current calculation to handle empty time series.
- Change the cache hits counters to longs.
- Version 2.4.0 RC2 (2017-10-08)
- Modify the RPC handler plugin system so that it parses only the first part of
the URI instead of the entire path. Now plugins can implement sub-paths.
- Return the HTML 5 doctype for built-in UI pages
- Add an optional byte and/or data point limit to the amount of data fetched
from storage. This allows admins to prevent OOMing TSDs due to massive queries.
- Allow a start time via config when enabling the date tiered compaction in HBase
- Provide the option of using an LRU for caching UIDs to avoid OOMing writers and
readers with too many strings
- Optionally avoid writing to the forward or reverse UID maps when a specific TSD
operational mode is enabled to avoid wasting memory on maps that will never be
- Roll back UTF8 issue with UIDs in RC1 wherein the stored bytes weren't converting
properly and vice-versa. We'll have to work on full UTF8 support in 3.x
- Fix a build issue for Javacc
- Add Kryo as a dependency to the fat jar
- Javadoc fixes
- Fix an issue with calendar aligned downsampling by seeking to the start time of
the query when the zone-aligned timestamp may be earlier than the query start time
- Add the missing QueryLimitOverride to the makefile
- Fix compatibility with Bigtable for 2.4
- Enable standard read-only APIs when the TSD is in write only mode
- Version 2.3.0 (2016-12-31)
- Release of 2.3.0.
- Add example classes for using the Java API.
- Same fixes as in 2.2.2
- Fix a null UID check on decoding metric names from row keys.
- Fix unit tests for JDK 8 and later.
See also 2.3.0RC1 and 2.3.0RC2
- Version 2.2.2 (2016-12-29)
- Fix an issue with writing metadata where using custom tags could cause the compare-
and-set to fail due to variable ordering in Java's heap. Now tags are sorted so the
custom tag ordering will be consistent.
- Fix millisecond queries that would miss data the top of the final hour if the end
time was set to 1 second or less than the top of that final hour.
- Fix a concurrent modification issue where salt scanners were not synchronized on the
annotation map and could cause spinning threads.
- Version 2.3.0 RC2 (2016-10-08)
- Added a docker file and tool to build TSD docker containers (#871).
- Log X-Forwarded-For addresses when handling HTTP requests.
- Expand aggregator options in the Nagios check script.
- Allow enabling or disabling the HTTP API or UI.
- TSD will now exit when an unrecognized CLI param is passed.
- Improved ALPN version detection when using Google Bigtable.
- Fix the DumpSeries class to support appended data point types.
- Fix queries where groupby is set to false on all filters.
- Fix a missing attribute in the Nagios check script (#728).
- Fix a major security bug where requesting a PNG with certain URI params could execute code
on the host (#793, #781).
- Return a proper error code when dropping caches with the DELETE HTTP verb (#830).
- Fix backwards compatibility with HBase 0.94 when using explicit tags by removing the
fuzzy filter (#837).
- Fix an RPM build issue when creating the GWT directory.
- Version 2.2.1 (2016-10-08)
- Generate an incrementing TSMeta request only if both enable_tsuid_incrementing and
tsd.core.meta.enable_realtime_ts are enabled. Previously, increments would run
regardless of whether or not the real time ts setting was enabled. If tsuid
incrementing is disabled then a get and optional put is executed each time without
modifying the meta counter field.
- Improve metadata storage performance by removing an extra getFromStorage() call.
- Add global Annotations to the gnuplot graphs (#773)
- Allow creation of a TSMeta object without a TSUID (#778)
- Move to AsyncHBase 1.7.2
- Fix Python scripts to use the environment directory.
- Fix config name for "tsd.network.keep_alive" in included config files.
- Fix an issue with the filter metric and tag resolution chain during queries.
- Fix an issue with malformed, double dotted timestamps (#724).
- Fix an issue with tag filters where we need a copy before modifying the list.
- Fix comments in the config file around TCP no delay settings.
- Fix some query stats calculations around averaging and estimating the number
of data points (#784).
- Clean out old .SWO files (#821)
- Fix a live-lock situation when performing regular expression or wildcard queries (#823).
- Change the static file path for the HTTP API to be relative (#857).
- Fix an issue where the GUI could flicker when two or more tag filters were set (#708).
- Version 2.3.0 RC1 (2016-05-02)
- Introduced option --max-connection/tsd.core.connections.limit to set the maximum number
of connection a TSD will accept (#638)
- 'tsdb import' can now read from stdin (#580)
- Added datapoints counter (#369)
- Improved metadata storage performance (#699)
- added checkbox for showing global annotations in UI (#736)
- Added startup plugins, can be used for Service Discovery or other integration (#719)
- Added MetaDataCache plugin api
- Added timeshift() function (#175)
- Now align downsampling to Gregorian Calendar (#548, #657)
- Added None aggregator to fetch raw data along with first and last aggregators to
fetch only the first or last data points when downsampling.
- Added script to build OpenTSDB/HBase on OSX (#674)
- Add cross-series expressions with mathematical operators using Jexl
- Added query epxressions (alias(), scale(), absolute(), movingAverage(), highestCurrent(),
highestMax(), timeShift(), divide(), sum(), difference(), multiply()) (#625)
- Add a Unique ID assignment filter API for enforcing UID assignment naming conventions.
- Add a whitelist regular expression based UID assignment filter
- Add a time series storage filter plugin API that allows processing time series data
and determining if it should be stored or not.
- Allow using OpenTSDB with Google's Bigtable cloud platform or with Apache Cassandra
- Some improperly formatted timestamps were allowed (#724)
- Removed stdout logging from packaged logback.xml files (#715)
- Restore the ability to create TSMeta objects via URI
- Restore raw data points (along with post-filtered data points) in query stats
- Built in UI will now properly display global annotations when the query string is passed
- Version 2.2.0 (2016-02-14)
- Add the option to randomly assign UIDs to metrics to improve distribution across
HBase region servers.
- Introduce salting of data to improve distribution of high cardinality regions
across region servers.
- Introduce query stats for tracking various timings related to TSD queries.
- Add more stats endpoints including /threads, /jvm and /region_clients
- Allow for deleting UID mappings via CLI or the API
- Name the various threads for easier debugging, particularly for distinguishing
between TSD and AsyncHBase threads.
- Allow for pre-fetching all of the meta information for the tables to improve
- Update to the latest AsyncHBase with support for secure HBase clusters and RPC
- Allow for overriding metric and tag widths via the config file. (Be careful!)
- URLs from the API are now relative instead of absolute, allowing for easier reverse
- Allow for percent deviation in the Nagios check
- Let queries skip over unknown tag values that may not exist yet (via config)
- Add various query filters such as case (in)sensitive pipes, wildcards and pipes
over tag values. Filters do not work over metrics at this time.
- Add support for writing data points using Appends in HBase as a way of writing
compacted data without having to read and re-write at the top of each hour.
- Introduce an option to emit NaNs or Nulls in the JSON output when downsampling and
a bucket is missing values.
- Introduce query time flags to show the original query along with some timing stats
in the response.
- Introduce a storage exception handler plugin that will allow users to spool or
requeue data points that fail writes to HBase due to various issues.
- Rework the HTTP pipeline to support plugins with RPC implementations.
- Allow for some style options in the Gnuplot graphs.
- Allow for timing out long running HTTP queries.
- Text importer will now log and continue bad rows instead of failing.
- New percentile and count aggregators.
- Add the /api/annotations endpoint to fetch multiple annotations in one call.
- Add a class to support improved bulk imports by batching requests in memory for a
full hour before writing.
- Allow overriding the metric and tag UID widths via config file instead of
having to modify the source code.
- Rework the QueryStats output to be a bit more useful and add timings from the
various scanners and query components.
- Modify the UI to allow for group by or aggregate per tag (use the new query feature)
- Rework the UI skin with the new TSDB logo and color scheme.
- Add the QueryLog config to logback.xml so users can optionally enable logging of
all queries along with their stats.
- Add the option to randomly assign UIDs to metrics to improve distribution across
- Version 2.1.4 (2016-02-14)
- Fix the meta table where the UID/TSMeta APIs were not sorting tags properly
prior to creating the row key, thus allowing for duplicates if the caller changed
the order of tags.
- Fix a situation where meta sync could hang forever if a routine threw an exception.
- Fix an NPE thrown when accessing the /logs endpoint if the Cyclic appender is not
enabled in the logback config.
- Remove an overly chatty log line in TSMeta on new time series creation.
- Version 2.2.0 RC3 (2015-11-11)
- Fix build issues where the static files were not copied into the proper location.