- PR #463 support rewrite form \g{n} to allow for integers to follow expansion
- PR #464 support stop in aggregate section without send to
- cleanup of libtool build stuff left around after libfaketime removal
- Issue #442 support mTLS for incoming and outgoing connections
- Issue #342 re-open destinations on file clusters after SIGHUP
- decrease memory footprint especially in submission mode
- Issue #448 fix crash when attempting to use cluster server without hostname
- Issue #440 fix LZ4 decompression issue
- PR #450 increase maximum cluster size from 64 to 128
- fix collector in submission mode and debug, for stats, now use -S option (problem revealed by musl libc stdio handling)
- Issue #454 any_of failing nodes cause lag and possible metrics loss
- Issue #453 tag values are sanitised while they should not
- Issue_#455 crash when useall cluster host cannot be resolved
- Issue #442 allow setting min/max TLS protocol versions for SSL listener
- Issue #394 dispatcher can lost some metrics on connection with compression
- Issue #415 fixed an issue with listeners during shutdown that showed up on some platforms
- dispatcher fixed semaphore approach on Linux not to use excessive amounts of CPU
- dispatcher semaphore based thread suspension instead of interval based processing should reduce CPU usage and improve response times and throughput
- Issue #398 metric includes all tags up to one before last
- Issue #405 statistics 'send to cluster' counted as blackholed
- router now emits the bad string if an invalid port was given
- router new support for dynamic clusters
- router allow dynamic on/off debug mode (with SIGUSR1 sigal) Issue #367
- dispatcher allow limits to input and metric lengths Issue #354
- Issue #346 sporadic segfaults when using UDP connections
- Issue #368 segfault sending or receiving metrics using ssl transport
- Issue #369 quoted expressions aren't printed as such by relay
- Issue #377 periodic segfault on SIGHUP (diff popen failed)
- Issue #381 segfault on reload after removal of node from cluster
- Issue #384 some errors in router_readconfig invisible due to closed stderr
- Issue #386 some metrics on gzip tranported connections could get lost on close
- Issue #336 LZ4 compression update to use framed format.
- Issue #351 ssl transport cannot be used due to syntax errors
- defining aggregator with equal expire and interval causes a crash
- Issue #357 routes optimiser could get stuck in an infinite loop
- Issue #358
remove
-S
option from usage
- router
syslog
message type to emit syslog packets was added. Pull Request #329 - server will now set the SNI hostname before connecting over TLS.
- relay a new flag
-E
was added to disable disconnecting idle clients. Bug #330 - relay support for snappy compression was added.
- relay SSL support can now be used next to compression Bug #323
- relay add option to set CA certs using
-C
, in addition certificate verification failures are now treated as fatal Bug #314
- Issue #327 gzip compression leaking half closed sockets
- Issue #341 after SIGHUP with changed config relay no longer accepts connections
- passing a directory as config file silently succeeds with empty config as result
- dispatcher tags support was added, it is only activated when the
;
character is not in the list of allowed characters (-c
flag). Note that by default this character is not allowed, hence tags support enabled. Issue #311 - dispatcher support for oniguruma, pcre2 and pcre regex libraries was added. These libraries perform all better than the libc implementation, bringing down cpu time of the relay considerably.
- Fix conffile.tab.h dependency for parallel make.
- The deprecated
-S
and-m
options were removed. Use thestatistics
configuration file construct instead. - The
-i
option was removed. Use tuelisten
configuration file construct instead.
- relay the flag
-tt
can now be used to test the configuration and exit immediately. In this mode, any standard output is suppressed as well. Issue #247 - relay the
listen
construct was added to precisely control listen ports and protocols. - server unresolvable hosts are now treated as failed servers, this means the relay will only warn about unresolvable hosts, but not error out. If a host becomes unresolvable this server is transitioned to failed state until it is resolvable again. Issue #293
- relay compression and encryption support was added to listeners and servers. Issue #212 Issue #75
- Issue #265 exit code is sucess on error when daemonised
- Issue #266 incorrect hash when using aggregate function
- Issue #267 segmentation fault when trying to use a file cluster
- PR #273 regex matching slow on glibc due to lock contention
- Issue #287 unexpected warning about rejected socket bufsize
- PR #282 route using should not change the metric key sent
- PR #274 aggregator expiry deadlocks under pressure
- buckytools Issue #17 consistent-hash implementation returns a different distribution with the binary search approach
- router a new
route using
clause was added tomatch
rules to set the string to be used as key for consistent-hash based clusters. Pull Request #235 - consistent-hash node traversal is now done through a binary search instead of forward pointer chasing.
- Issue #261 unable to use numeric instance name
- Issue #262 DNS round-robin on any_of cluster doesn't rotate and causes lots of hung connections
- Issue #263
parser fails on
%
in regular expressions, and exits with a crash - Issue #264 carbon_ch hash algorithm change between 2.6 and 3.0
- Parsing of the configuration file has changed implementation in this version. Should you find problems with configurations that worked fine before, please report the problem.
- The use of
send statistics to
is now deprecated, use the newstatistics send to
instead. - The use of statistics controlling flags
-S
sending interval and-m
summary mode, are now deprecated because they can be set in the configuration.
- collector statistics now can be controlled via the configuration
file using the new
statistics
clause. This overrides some command line flags, and adds some new posibilities. - router the rewrite rule got a new replacement mode:
\.
This mode replaces all dots with underscores in the matched group. A combination with upper/lowercasing is possible, e.g.\_.
. - collector one can now set the internal statistics prefix Issue #25 Issue #113 Issue #249.
- Issue #249
send statistics
changes metric prefix from dots into underscores
- router
useall
is now also allowed forforward
andfailover
clusters - server hostnames are now re-resolved at every connect Issue #115
- server when connecting to a hostname, now /all/ resolved addresses are tried in order before failing
- relay A new
-O
flag allows to set the minimum rules threshold before trying to optimise the rules.
- Issue #246
using
stop
in amatch
rule does not stop metrics from being processed afterwards - Issue #206 some metrics are randomly prefixed with garbage characters
- Issue #239 segfault when date format is incorrect
- Issue #242 dispatcher/aggregations broken (relay seems too slow)
- router
match
rules now support avalidate
clause to do data filtering, Issue #228, Issue #142, Issue #121, Pull #127, Pull #87.
- server connection errors are no longer endlessly repeated
- Issue #240 'include' directive doesn't care about rewrites.
- Issue #241 XXX characters being prepended to metrics when sent via UDP
- Issue #204 relay is sending data randomly while kill -HUP happens
- Issue #213 Change to aggregates to not cause HUP to reload when more than 10 aggregates are defined.
- Issue #214
-U
option doesn't set UDP receive buffer size. - Issue #218 zeros inserted after some metrics.
- Issue #219 should fail if port is unavailable
- Issue #224 segfault during SIGHUP
- relay socket receive and send buffer sizes can be adjusted
the
-U
option was introduced to allow setting the socket buffer size in bytes, Issue #207.
- relay the listen backlog default got increased from 3 to 32
- server TCP_NODELAY is now set to improve small writes
- Issue #188 SIGHUP leads to SIGSEGV when config didn't change, or a SIGHUP is received while a previous HUP is being processed
- Issue #193 race condition in aggregator leads to crash
- Issue #195 assertion fails when reloading config
- Issue #200 use after free during shutdown in aggregator
- Issue #203 change default connection listen backlog
- Issue #208 TCP_NODELAY should be off for connections relaying data
- Issue #199 Various race conditions reported by TSAN
- router the optimiser now tries harder to form groups of consecutive rules that have a matching common pattern
- Issue #180 include directive possibly overrides previous included components
- Issue #184 router optimise doesn't work correctly with regex groups
- router
include
directive was added to add content of another file, see also Issue #165. The include can also use glob patterns, see Pull #174 - server the number of stalls performed on writes can now be
controlled (and also disabled) using the
-L
flag. Issue #172
- server incomplete writes are now retried a couple of times before they are considered fatal. This should reduce the amount of messages in the logs about them, and be more like the consumer expects, e.g. less sudden disconnects for the client.
- router reloading the config now prints the difference between the
old and the new config in
diff -u
format. - router reloading the config now maintains the queues for the servers, such that unavailable servers don't get metrics dropped.
- Issue #154 when a store becomes a bottleneck it shouldn't indefinitely stall
- Issue #164 config reload should re-use unmodified servers
- router
send statistics to
construct was added to direct internal statistics to a specific cluster
- collector UDP connections are now suffixed with
-udp
in destination target
- Issue #159 corrupted statistics for file clusters
- Issue #160 metricsBlackholed stays zero when blackhole target is used
- statistics dispatch_busy and dispatch_idle have been replaced with wallTime_us and sleepTime_us
- Issue #152 crash in aggregator_expire for data-contained aggregations
- statistics dispatch_busy is slightly more realistic now
- Issue #153
aggregator statistics are garbage with
-m
- relay new flags
-D
for daemon mode and-p
for pidfile creation
- dispatcher server stalling (to slow down too fast writers) is now based on a random timeout
- server write timeout is now large enough to deal with upstream relay stalling
- relay number of workers/dispatchers is now determined in a way that doesn''t need OpenMP any more
- relay new flag
-B
to set the listen backlog for TCP and UNIX connections, issue #143
- dispatcher switch from select() to poll() to fix crashes when too many connections were made to the relay
- Misc (memory) leak fixes
- relay startup and shutdown messages are now better in line
- relay fixed segfault when issuing
SIGHUP
under active load
- aggregator metrics are now written directly to dispatchers to avoid overload of the internal_submission queue, which is likely to to happen with many aggregates
- collector properly report file-based servers in statistics
- collector re-introduce the interal destination in statistics
- collector when run in debug and submission mode, there is a iostat like output
- relay reloading config now no longer unconditionally starts the aggregator
- aggregator misc cleanup/free fixes
- relay allow reloading aggregator
- Issue #133 _stub_aggregator metrics seen after a reload
- consistent-hash fix jump_fnv1a_ch metric submission, it didn''t work at all
- Issue #126 double free crash
- Issue #131 segfault using stddev in aggregator
- Issue #132 crash with glibc double free message
- consistent-hash new algorithm jump_fnv1a_ch for near perfect distribution of metrics
- distributiontest test program used to see unbalancedness of clusters for a given input metric see graphite-project/carbon#485
- router fix cluster checking with regards replication count and the number of servers to allow equal counts
- Issue #126 prevent calling read() too often
- router fix distribution of any_of cluster if members have failed
- many improvements
- Many aggregator improvements, more flexible routing support.
- Feature to set hash-keys for fnv1a_ch.
- Bugfix release for segfault when using any_of clusters.
- Reduced warning level for submission mode queue pileups. Allow writing to a file (cluster type). Fix splay on aggregator not to affect timestamps of input. No more dep on openssl for md5.
- Hefty optimisations on aggregations. Fix for UDP port closure.