Releases: bookingcom/carbonapi
Release v0.3.0
Change Log
BREAKING CHANGE: Refactor sendGlobsAsIs, Ref: 2ad1cca
CHANGE: Update go-graphite protocol to latest version
CHANGE: Refactor log levels
CHANGE: Upgrade go version in dockerfiles
CHANGE: Remove zapwriter
CHANGE: Change logger config name for compatibility
CHANGE: Upgrade to go-1.18
CHANGE: cairo: migrate from bitbucket.org/tebeka/strftime to github.com/tebeka/strftime
IMPROVEMENT: Corrected floats comparison in a test
IMPROVEMENT: Removed unnecessary logging to stderr during tests
IMPROVEMENT: Eliminate access logger
IMPROVEMENT: Refactor logging
IMPROVEMENT: Refactor linters
IMPROVEMENT: Add consistency stats, monitoring, logs
FEATURE: Add mismatched render response metric
FEATURE: Add weightedAverage function to carbonapi
FEATURE: carbonapi/config: support setting tz with IANA Time Zone names, like "Europe/Amsterdam"
FEATURE: carbonapi: introduce new function medianSeries
FEATURE: Introduce zipper majority vote, Ref deae024
BUGFIX: Fix duplicates in logs fields
BUGFIX: Fix bug in majority vote function, Ref: d04496d
BUGFIX: Support all white spaces in carbonapi parser, Ref: 365595d
BUGFIX: carbonapi/render: EvalExpr should return series no exist as error, Ref: 4ce89ef
BUGFIX: carbonapi/render: do not return error for parser.ErrSeriesDoesNotExist, Ref: e450430
BUGFIX: carbonapi/render: continue query execution instead of not found/404, Ref: f74343c
Release v0.2.0
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
Release v0.1.0
This is the first release of carbonapi
from Booking.com. It is the tested version we are running in production. In our setup we use it together with:
Since this is the first release, here are the highlights. Next time it's going to be a changelog.
- improved overall quality, big refactorings, and code cleanups
- fixed request timeouts and cancellation
- better visibility with added metrics and logging
- now it's possible to block requests by a header
This is a fork from go-graphite/carbonapi. The fork happened on fc3f966816b53f40efe6f2e2a0156f7482c8a934