Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Graphite web exponentialMovingAverage function #12

Closed
carrieedwards opened this issue Jun 10, 2022 · 0 comments
Closed
Labels
enhancement New feature or request

Comments

@carrieedwards
Copy link
Collaborator

carrieedwards commented Jun 10, 2022

Is your feature request related to a problem? Please describe.
The exponentialMovingAverage() function is implemented in Graphite web, but is missing from CarbonAPI. In order to enable users to be able to use the exponentialMovingAverage() function, it needs to be implemented in CarbonAPI.

Describe the solution you'd like
The exponentialMovingAverage() function should be implemented in CarbonAPI, with the same functionality as the Graphite web function. The description of the function is as follows:

exponentialMovingAverage(seriesList, windowSize)
Takes a series of values and a window size and produces an exponential moving average utilizing the following formula:

ema(current) = constant * (Current Value) + (1 - constant) * ema(previous)
The Constant is calculated as:

constant = 2 / (windowSize + 1)
The first period EMA uses a simple moving average for its value.

Example:

&target=exponentialMovingAverage(*.transactions.count, 10)
&target=exponentialMovingAverage(*.transactions.count, '-10s')

Additional context
Tests should be added to verify that the functionality matches that of the Graphite web exponentialMovingAverage() function.

@carrieedwards carrieedwards added the enhancement New feature or request label Jun 10, 2022
@carrieedwards carrieedwards changed the title Add support for Graphite web exponentialMovingAverage() function Add support for Graphite web exponentialMovingAverage function Jun 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant