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

[FEATURE]PPL new trendline command (SMA) #655

Closed
YANG-DB opened this issue Sep 12, 2024 · 1 comment
Closed

[FEATURE]PPL new trendline command (SMA) #655

YANG-DB opened this issue Sep 12, 2024 · 1 comment
Labels
0.6 enhancement New feature or request Lang:PPL Pipe Processing Language support

Comments

@YANG-DB
Copy link
Member

YANG-DB commented Sep 12, 2024

Is your feature request related to a problem?

Adding a new PPL trendline command to support computing a moving averages of fields.

We would like to support two flavours of moving average:

SMA : Simple moving average

  • f[i]: The value of field 'f' in the i-th data-point
  • n: The number of data-points in the moving window (period)
  • t: The current time index

SMA(t) = (1/n) * Σ(f[i]), where i = t-n+1 to t


WMA : Weighted moving average

WMA(t) = Σ(w[i] * f[i]) / Σ(w[i]), where i = t-n+1 to t
Where w[i] is the weight for the i-th data-point.

In a typical WMA, the weights are linearly decreasing from the most recent to the oldest data-point:
w[i] = n - (t - i), where i = t-n+1 to t

The complete forumlation would be:
WMA(t) = Σ((n - (t - i)) * f[i]) / Σ(n - (t - i)), where i = t-n+1 to t


Example

The next command shows a trendline over a 5 month period events by month

source=t | stats count(date_month) | trendline sma(5, count) AS trend | fields  trend

The next command would compute a 5-point simple moving average of the 'cpu_usage' field and store it in a new field called 'smooth_cpu'.

source=t| trendline sma(5,cpu_usage) as smooth_cpu

Multiple trendlines could be calculated in a single command, such as

| trendline sma(10,memory) as mem_trend wma(5,network_traffic) as net_trend.
@salyh
Copy link
Contributor

salyh commented Oct 29, 2024

This issues and associated PRs covers Simple moving average (SMA) only.
For WMA (Weighted moving average) see issue #831

@YANG-DB YANG-DB changed the title [FEATURE]PPL new trendline command [FEATURE]PPL new trendline command (SMA) Oct 30, 2024
@salyh salyh moved this from In Progress to InReview in PPL Commands Oct 30, 2024
@YANG-DB YANG-DB closed this as completed Nov 1, 2024
@github-project-automation github-project-automation bot moved this from InReview to Done in PPL Commands Nov 1, 2024
@YANG-DB YANG-DB removed the status in PPL Commands Nov 1, 2024
@YANG-DB YANG-DB moved this to Done in PPL Commands Nov 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0.6 enhancement New feature or request Lang:PPL Pipe Processing Language support
Projects
Status: Done
Development

No branches or pull requests

2 participants