Skip to content

Releases: go-graphite/carbonapi

0.15.1

03 Mar 17:39
Compare
Choose a tag to compare
  • [Fix] Fix back compatibility for default listen on localhost:8081 (thx to @Felixoid)

0.15.0

01 Mar 22:34
Compare
Choose a tag to compare
  • [Breaking] - cache (including memcache) now uses sha256 for a hash function for keys. This might break existing setup
  • [Breaking] - new config variable slowLogThreshold under upstreams section controls what request time would be required for request to be logged in slow logger.
  • [Breaking] - remove semi-broken support for graceful restarts (See #552)
  • [Fix] Fix parsing tags from backend replies (adds support of = in tag values, make them more compatible with graphite-web)
  • [Fix] Fix how request splitting worked for maxBatchSize != 0 (thx to @tantra35)
  • [Improvement] Bad requests will return error 400 instead of 500 (thx to @Felixoid)
  • [Improvement] VictoriaMetrics >= 1.53.1 backend should work a bit faster for find queries
  • [Improvement] Do not apply tag-deduplication for VictoriaMetrics >= 1.50.0 (less memory consumption, faster queries)
  • [Improvement] Use VictoriaMetrics's graphite-compatibe API to query for tags (less memory consumption, faster queres)
  • [Feature] Support add function (thx to @Felixoid)
  • [Feature] removeEmptySeries supports xFilesFactor parameter (thx to @faceair)
  • [Feature] Allow to specify multiple listen addresses
  • [Feature] Optional caching DNS resolver

0.14.2.1

22 Nov 23:48
Compare
Choose a tag to compare
  • [Fix] Fix test for timeShift function. This doesn't affect the way how carbonapi works, just makes CI happy

0.14.2

22 Nov 23:37
Compare
Choose a tag to compare
  • [Feature] Separate backend protocol for VictoriaMetrics. Based on prometheus protocol (and share some of it's code), but uses some of VM-specific features to improve performance for /metrics/find queries (Related to #521)
  • [Feature] timeShift function supports resetEnd parameter (thx to @faceair). Current default is set to false to match carbonapi behavior, however in 0.15.0 it will be changed to true.
  • [Feature] Resepct pixelRatio parameter from referer if not specified in request. (thx to @lomik)
  • [Fix] Handling of maxBatchSize (maxGlobs) in config file. Respect overrides on backend level.
  • [Fix] Warnings about duplicate functions when carbonapi starts.
  • [Fix] Resulting tags in groupByTags are now correct (thx to @Felixoid)
  • [Fix] Fix handling of requests that fetches data with different start/end times (thx to @Felixoid). Related to #526
  • [Fix] Fix the way how pow function works with NaN in values (thx to @zhelyabuzhsky)
  • [Fix] CSV format now produce dates in UTC (like in graphite-web) (thx to @jonasbleyl)
  • [Fix] Fix from/util timestamp aligning in all moving* functions (thx to @Felixoid)

0.14.1

19 Aug 09:51
Compare
Choose a tag to compare
  • [Feature] Implement doMultipleRequestsIfSplit config option which could be useful for go-carbon and huge requests (See #509)
  • [Improvement] Return stacktrace on panic (thx to @Felixoid)
  • [Fix] Fix case where some metrics passed to functions like group or sumSeries were missing. Fixes #438
  • [Fix] Accept 1 and 0 as bool arguments for True and False. (thx to @Felixoid)
  • [Fix] Align precision of multiple metrics (thx to @Felixoid, see #500 and #501)
  • [Fix] fallbackSeries now works properly (thx to Egor Redozubov)
  • [Fix] Panic when trying to render png/svg of an empty response (Fixes #503)
  • [Fix] Fix Error 500 when sendGlobsAsIs is false (Fixes #506)
  • [Fix] prometheus backend: carbonapi should send 'end' instead of 'stop' in queries (thx to Alexandre Vincent)
  • [Fix] change metrics resulting tags to match graphite-web in some cases (thx to @Felixoid)
  • [Fix] Prometheus backend: trust timestamps from the backend (Fixes #504, Fixes #514)
  • [Fix] percentileOfSeries: return first of filtered datapoints in case only one series have valid data (Fixes #516)
  • [Code] merge aliasByNode and aliasByTags (thx to @Felixoid)

0.14.0

12 Jul 16:13
Compare
Choose a tag to compare
  • [Breaking][Code] expr library and all functions now requires caller to pass context. See #485
  • [Breaking][Config] for protocol auto there is now no default implied concurrency limit of 100 as it was before.
  • [Breaking][Config] Changed default value for notFoundStatusCode to 200 to match graphite-web behavior
  • [Feature] Add a backendCache option that implements dedicated cache for backend responses. See #480 (thx to @jaroslawr)
  • [Feature] For Prometheus backend it is now possible to specify max_points_per_query
  • [Feature] weightedAverage function (thx to @Felixoid)
  • [Improvement] carbonapi now pass maxDataPoints to backends that support carbonapi_v3_pb format. Previously 0 was passed.
  • [Fix] metric find requests to backend now pass start and end time (thx to @faceair)
  • [Fix] Fix 404 status code if backend have errors (thx to @lexx-bright)
  • [Fix] Fix sorting in *seriesLists functions (thx to Egor Redozubov)
  • [Fix] Potential panic during groupByNode evaluation if callback is invalid expression
  • [Fix] Partially overlapping backend groups caused some queries to return empty result
  • [Fix] Sorting metrics should work now in the same way as in graphite-web (thx to @Felixoid)
  • [Fix] Time of the first timestamp was wrong if multiplySeries was applied (it matched request from)

0.13.0

27 May 18:52
Compare
Choose a tag to compare
  • [Fix] smartSummarize now supports wildcards in the metric names (thx to @Peter-Sh)
  • [Fix] json format correctly distinguishes between +-inf and nan (thx to @faceair)
  • [Fix] prometheus backend: fix a bunch of problems related to globs and regex escaping (thx to @rodio)
  • [Fix] Proper fix for prometheus backend and non-taged render requests with groupByNodes function
  • [Fix] Align timestamps in prometheus backend (thx to @rodio, #467)
  • [Fix] Prometheus backend wasn't working correctly for non-taged render requests (#465, thx to @menai34 for proposed fix)
  • [Fix] Fix panic when using prometheus tagged response for non-tagged queries in groupByTags function (and maybe more)
  • [Fix] Add proper aliases for aggregate functions - that would make groupByTags properly usable with functions like diff and total.
  • [Improvement] Redesign error handling and logging. Logging should be now less noisy and all error messages should contain better reasoning about error cause
  • [Improvement] Move some of the logging messages to Debug level - that should make logs less noisy and still preserve ability to see detailed errors on Debug level
  • [Improvement] Add a config parameter to disable tldCache (useful for clickhouse-based backends)
  • [Improvement] Implement noNullPoints query parameter. Works only with JSON as in graphite-web
  • [Improvement] For all SeriesLists functions, allow to specify default argument (thx to kolobaev@)
  • [Improvement] Add support for round function (thx to kolobaev@)
  • [Improvement] Add integralByInterval function (thx to faceair@)
  • [Improvement] Add sortBy function (thx to misiek08@)
  • [Improvement] Add smartSummarize function (thx to misiek08@)
  • [Fix] /render and /metrics/find URLs now works correctly for format=carbonapi_v2_pb (protov3) and for new format (carbonapi as a carbonapi's backend)
  • [Fix] Allow '%' in metric names
  • [Fix] zipper metrics now exported again
  • [Fix] applyByNode - fix various incompatibilities with graphite-web (node starts with 1, some rewrite related issues, etc) (thx to faceair@)
  • [Fix] Honor SendGlobAsIs and AlwaysSendGlobAsIs (important for pre-0.12 configs)
  • [Fix] Fix panic in some cases when one of the metrics is missing
  • [Fix] Compatbility fixes to useAboveSeries (now it's behavior matches graphite-web's)
  • [Fix] Fix seriesList functions in case of unsorted responses (*seriesList sorts denomniators and numerators first of all)
  • [Fix] Fix pprof endpoint routing (thx to faceair@)
  • [Fix] Various fixes around error handling (thx to faceair@)
  • [Fix] Avoid multiple requests for time moving based functions (thx to faceair@)
  • [Code] Make linters much more happier about the code (thx to faceair@ for contribution)
  • [Breaking] [Code] Comment out support for gRPC backend type. It was never properly tested and likely need complete rework before it will be usable
  • [Breaking] [Build] Minimum Supported golang version is 1.13.0

0.13.0-rc.3

20 May 20:06
Compare
Choose a tag to compare
0.13.0-rc.3 Pre-release
Pre-release
  • [Fix] Proper fix for prometheus backend and non-taged render requests with groupByNodes function
  • [Fix] Align timestamps in prometheus backend (thx to @rodio, #467)

0.13.0-rc.2

17 May 20:50
Compare
Choose a tag to compare
0.13.0-rc.2 Pre-release
Pre-release
  • [Fix] Prometheus backend wasn't working correctly for non-taged render requests (#465, thx to @menai34 for proposed fix)
  • [Fix] Fix panic when using prometheus tagged response for non-tagged queries in groupByTags function (and maybe more)
  • [Fix] Add proper aliases for aggregate functions - that would make groupByTags properly usable with functions like diff and total.

0.13.0-rc.1

03 May 12:30
Compare
Choose a tag to compare
0.13.0-rc.1 Pre-release
Pre-release
  • [Improvement] Redesign error handling and logging. Logging should be now less noisy and all error messages should contain better reasoning about error cause
  • [Improvement] Move some of the logging messages to Debug level - that should make logs less noisy and still preserve ability to see detailed errors on Debug level
  • [Improvement] Add a config parameter to disable tldCache (useful for clickhouse-based backends)
  • [Improvement] Implement noNullPoints query parameter. Works only with JSON as in graphite-web
  • [Improvement] For all SeriesLists functions, allow to specify default argument (thx to kolobaev@)
  • [Improvement] Add support for round function (thx to kolobaev@)
  • [Improvement] Add integralByInterval function (thx to faceair@)
  • [Improvement] Add sortBy function (thx to misiek08@)
  • [Improvement] Add smartSummarize function (thx to misiek08@)
  • [Fix] /render and /metrics/find URLs now works correctly for format=carbonapi_v2_pb (protov3) and for new format (carbonapi as a carbonapi's backend)
  • [Fix] Allow '%' in metric names
  • [Fix] zipper metrics now exported again
  • [Fix] applyByNode - fix various incompatibilities with graphite-web (node starts with 1, some rewrite related issues, etc) (thx to faceair@)
  • [Fix] Honor SendGlobAsIs and AlwaysSendGlobAsIs (important for pre-0.12 configs)
  • [Fix] Fix panic in some cases when one of the metrics is missing
  • [Fix] Compatbility fixes to useAboveSeries (now it's behavior matches graphite-web's)
  • [Fix] Fix seriesList functions in case of unsorted responses (*seriesList sorts denomniators and numerators first of all)
  • [Fix] Fix pprof endpoint routing (thx to faceair@)
  • [Fix] Various fixes around error handling (thx to faceair@)
  • [Fix] Avoid multiple requests for time moving based functions (thx to faceair@)
  • [Code] Make linters much more happier about the code (thx to faceair@ for contribution)
  • [Breaking] [Code] Comment out support for gRPC backend type. It was never properly tested and likely need complete rework before it will be usable
  • [Breaking] [Build] Minimum Supported golang version is 1.13.0