Skip to content

Backend selection based on query#10

Draft
github-vincent-miszczak wants to merge 32 commits intomainfrom
filter-backends
Draft

Backend selection based on query#10
github-vincent-miszczak wants to merge 32 commits intomainfrom
filter-backends

Conversation

@github-vincent-miszczak
Copy link
Copy Markdown
Owner

@github-vincent-miszczak github-vincent-miszczak commented May 5, 2021

No description provided.

Felixoid and others added 30 commits March 26, 2021 23:22
Port a commit that Avito did in their fork of carbonapi

This commit adds an optional parameter `allowFormatStr`
to `alias` function, if set to `True` it will replace all
all `${expr}` passed in alias string with actual original
expression.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/aliasByBase64

Mostly done by errx@ and kolobaev@

This function allows to decode metric if it's base64-encoded
Original implementation: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/aliasByHash
Done by: errx@

Adds a function that queries Hash stored in Redis

Hash name is specified as a parameter in a query. Field name is the first part of a metric's name.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/baselines

Original authors: @el-yurchito, @errx

 * baseline computes baseline for the metric
 * baselineAbberation - computes deviation of a metric from baseline
This change is based on idea of function `event` from avito's carbonapi fork.

Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/event
Original authors: @PAFomin-at-avito, @el-yurchito

This adds an argument to transformNull function that would create a constant metric if
no results were returned from a backend.

This might be useful in case you are working with events that might not be present
for a certain periods of time in a past.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/heatMap
Original authors: @el-yurchito

This is a heat-map like function that do diff between series, based on their computed weight.

All metrics are assigned weights, based on the sum of their first 5 values and then sorted based on that.

After that for the sorted metrics, diff with the previous one will be computed.

Assuming seriesList has values N series in total (sorted by sum of the first 5 values):
(a[1], a[2], ..., a[N]). Then heatMap will output N-1 series: (a[2] - a[1], a[3] - a[2], ..., a[N] - a[N-1]).
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/highest
Original author: @PAFomin-at-avito

Add lowestMin and lowestMax functions and corresponding tests.
Updating description of heatMap function based on an answers from
kolobaev.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/integralWithReset
Origial author: @PAFomin-at-avito

Just like integral(seriesList) but with resets: every time resettingSeries is not 0, the integral resets to 0.
Tests were directly taken from: https://github.com/el-yurchito/carbonapi/commit/dfbb4cc53b4403826a9b3f004bf7208524b3153b#diff-32f5f0a7da5ffc6e0cfea529e4dd87956d1105ea271687a78d8316834eb5c8ad
Author of the tests: @PAFomin-at-avito

Also fix a problem with round function that it didn't respect that the argument can be a named argument.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/slo
Origianl authors: @el-yurchito

 * slo - Returns ratio of points which are in `interval` range and are above/below (`method`) than `value`
 * sloErrorBudget - Returns rest failure/error budget for this time interval
Origial commit: https://github.com/el-yurchito/carbonapi/commit/557c8f1c17073d279aa54e92a8a0266ae7e78aca#diff-8f6349c451235a3e9f838e963545c96fa546b551738b6dbbdd3e886575bb9928
Original author: @el-yurchito

Add a proper support for `reverse` paramter. It was advertised, but was never actually used.

Also append avito's test cases to one that we currently have.
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/timeShiftByMetric
Original author: @el-yurchito

Takes a seriesList with wildcard in versionRankIndex rank and applies shift to the closest version from markSource
Original code: https://github.com/el-yurchito/carbonapi/tree/master/expr/functions/scale
Original author: @el-yurchito

Adds an optional parameter to `scale` function, called `timestamp`

If present, it will scale metric only after certain point.

Difference from original implementation - that's not a separate function
… graphite-web@master

In current master, there are some new argument types and options available,

e.x. for smartSummarize and option `alignTo` it is not possible to specify
`null`, `true` and `false` as well as `"minutes"`, `"years"`, etc.

This requires some changes to functiondiff tool and to all to do some
internal data-type changes for the descriptions struct.
As those functions are not backed by graphiteWeb function, this should
be set to `false`, so removing those fields.
Check compatibility with latest stable graphite-web (1.1.7) and explicitly mention
which version was used.
…d countSeries

And update COMPATIBILITY.md file
…y when maxBatchSize > 0)

When request splitting was used and some of the servers didn't replied
but others did - such requests were handled as failed and no data
was returned, which resulted in error 500 from carbonapi.

Changing behavior in that case so requests that went through splitting
procedure will be fetched despite of partial failure to expand globs.

Fixes go-graphite#545
After a way how carbonapi resolve IP addresses it was no longer possible to
listen on `:8081` for example. Add a special case for that.

Also improve error message when resolving failed

Fixes go-graphite#600
Improve listening on `any` ip addresses
…g for unicode

Graphite metrics cannot contain certain symbols in the name, such as '(' or '"'.

Skip those symbols when unicode tables are used (without unicode it's a white-list of allowed)

Fixes go-graphite#598
Check if metric name doesn't contain disallowed characters if matchin…
Routine bump of everything that was updated upstream
@github-vincent-miszczak github-vincent-miszczak changed the title wip Backend selection based on query May 5, 2021
@github-vincent-miszczak github-vincent-miszczak force-pushed the filter-backends branch 5 times, most recently from 5e19859 to 1040ede Compare May 6, 2021 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants