Releases: go-graphite/carbonapi
Releases · go-graphite/carbonapi
0.15.1
0.15.0
- [Breaking] - cache (including memcache) now uses sha256 for a hash function for keys. This might break existing setup
- [Breaking] - new config variable
slowLogThreshold
underupstreams
section controls what request time would be required for request to be logged inslow
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
0.14.2
- [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 tofalse
to match carbonapi behavior, however in 0.15.0 it will be changed totrue
. - [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
- [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
and0
as bool arguments forTrue
andFalse
. (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
- [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 of100
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
- [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 likediff
andtotal
. - [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
0.13.0-rc.2
- [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 likediff
andtotal
.
0.13.0-rc.1
- [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