Skip to content

Release v0.2.0

Compare
Choose a tag to compare
@azhiltsov azhiltsov released this 18 Aug 07:21
· 437 commits to master since this release
03ba16d

This is a long overdue release where most of our efforts were spend on stability and testing.

This code was tested by fairly long production run.

Change Log

FEATURE: Add timeLagSeries function for computing a time lag
FEATURE: Add timeLagSeriesLists function
FEATURE: Implement filterSeries function
FEATURE: add integralByInterval function
FEATURE: asPercent: rewrite to support different resolution metrics
FEATURE: diffSeries: support different resolution metrics

CHANGE: Supported Go version is 1.16
CHANGE: When checking for block rules, accept absence of file as empty set of rules; no error in that case
CHANGE: carbonapi 404 is not considered an error anymore - carbonapi has separate metric for not-founds for find
CHANGE: Various Default Config changes
CHANGE: Removed x11 parameter to cairo, which is no longer supported.
CHANGE: Changed finds error fan-in logic

  • If all backends return and all errors are not found -> return 200 with empty body
  • If all backends return errors, and they are mixed -> return 500

CHANGE: Refactored the api to have one backend by design.
CHANGE: Removed back-end filtering for /info, /find, /render requests. Removed dummy merging for all these as well.
CHANGE: New error logic for zipper
CHANGE: Refactored render handler for api. The requests now fail per-target.
CHANGE: Made error merging in zipper more liberal: now at least 3 backend failures are needed along with others all being 404 to result in 500. Before it was 1. - logging improvement Note: this is a temporary solution. The real one is to add replica semantics to zipper backend cluster config
CHANGE: Removed unused graphiteWeb function. Cleaned up limiter that was used only there
CHANGE: Set send_globs to true by default, and mark when otherwise.
CHANGE: Update http handlers for api and zipper to use gorilla/mux
CHANGE: Router: start using middlewares
CHANGE: find: answer with http 422 for requests that are too complex
CHANGE: Changed moving* behavior

BUGFIX: Not found metrics request return HTTP 404
BUGFIX: Fix typo in Prom metric name
BUGFIX: Fix linearRegression index out of range typo
BUGFIX: Fix applyByNode function
BUGFIX: Fix carbonzipper response size calculation
BUGFIX: Fix grace reload usage.
BUGFIX: Fix auto-complete suggestions for groupByNode
BUGFIX: AggregateSeries: update callback function to return (value, isAbsent)
BUGFIX: AggregateSeries: fix case when len(seriesList) == 0
BUGFIX: constantLine: add one more datapoint
BUGFIX: holtWintersAberration: fix index out of range error
BUGFIX: parser: return errors if there are syntax bugs in metric names wrapped by a function

IMPROVEMENT: Added new mode to use memcached.
IMPROVEMENT: Fixed double-counting of requests in case of not-found - not found for find is not considered an error anymore
IMPROVEMENT: Added dockerfiles for carbonapi and zipper
IMPROVEMENT: traces: add two new options: jaegerBufferMaxCount and jaegerBatchMaxCount
IMPROVEMENT: Terminate goroutine on canceled outbound request
IMPROVEMENT: Reanimated expression parser fuzzer
IMPROVEMENT: Multiple Prometheus metrics improvements.
IMPROVEMENT: Added errors merge and exposure in carbonapi. Now we actually fail when everything fails. Relevant unit tests added
IMPROVEMENT: Added sorting when returning json response in api
IMPROVEMENT: Added context cancellations counter to zipper. It counts cancellations of the main request, not the sub-requests
IMPROVEMENT: Broke /render handler in api into smaller pieces
IMPROVEMENT: Code cleanup, vendor cleanup.
IMPROVEMENT: Removed superfluous use of testify lib. The lib can be pruned from dependencies now
IMPROVEMENT: Changed the logic for encoding find responses. Now results with identical expanded text are not duplicated
IMPROVEMENT: Refactored App. Start func into smaller ones
IMPROVEMENT: Removed unused single backend render function in rpc
IMPROVEMENT: Refactored error handling.
IMPROVEMENT: Multiple new unit tests and test improvements in general.
IMPROVEMENT: Improved performance test scripts.
IMPROVEMENT: Removed worker num limitation.
IMPROVEMENT: Add logging for requests with metrics of different step times.
IMPROVEMENT: Allow application/octet-stream to be used as protobuf content type
IMPROVEMENT: Added functional docker-compose
IMPROVEMENT: Renamed carbonzipper.conf to carbonzipper.yaml because it's, well, yaml
IMPROVEMENT: Added tagging of responses by if they are served from cache
IMPROVEMENT: Optimized int to str conversions
IMPROVEMENT: Supported cairo version v1.14.6
IMPROVEMENT: Enable findCache in carbonapi app object
IMPROVEMENT: Add caching to find handler
IMPROVEMENT: Change findHandler to reuse existing resolve globs functionality