Time Window Functions
Details of the following time window functions are available.
EMA Function
EMA(N,<field>) returns Exponential Moving Average over N previous values of the numerical valued <field> among all events matching the query criteria.
Syntax
EMA(N, <eventAttribute>) - eventAttribute must be a numerical type.
EMA(N,Function(<eventAttribute>)) – The Function must return a numerical value and cannot be an aggregate attribute.
Any query using SMA needs to have at least one of the time aggregation fields included. Supported time aggregation fields include
- Hourly (phRecvHour)
- Daily (phRecvDate)
- Weekly (phRecvWeek)
- Monthly(phRecvMonth)
In Elasticsearch, these nested function categories are allowed:
- Extraction Function, String Manipulation Functions
Note: Only LEN allowed in String Manipulation Functions
In ClickHouse, these nested function categories are allowed:
- Conversion Functions, String Manipulation Functions
Note: Only LEN allowed in String Manipulation Functions
Scope
Works for ClickHouse and Elasticsearch queries from release 7.0.0 onwards.
Example
Raw Data
eventRecvTime |
hostName |
cpuUtil |
---|---|---|
Apr 19, 2023, 12:00:00 PM |
H1 |
3.00% |
Apr 19, 2023, 12:15:00 PM |
H1 |
2.37% |
Apr 19, 2023, 12:30:00 PM |
H1 |
2.68% |
Apr 19, 2023, 12:45:00 PM |
H1 |
2.72% |
Apr 19, 2023, 13:00:00 PM |
H1 |
2.55% |
Apr 19, 2023, 13:15:00 PM |
H1 |
2.43% |
Apr 19, 2023, 13:30:00 PM |
H1 |
2.50% |
Apr 19, 2023, 13:45:00 PM |
H1 |
2.74% |
Apr 19, 2023, 14:00:00 PM |
H1 |
2.64% |
Apr 19, 2023, 14:15:00 PM |
H1 |
3.74% |
Apr 19, 2023, 14:30:00 PM |
H1 |
2.12% |
Apr 19, 2023, 14:45:00 PM |
H1 |
3.84% |
EMA query response
eventRecvHour |
hostName |
EMA(2,cpuUtil) |
---|---|---|
Apr 19, 2023, 12:00:00 PM |
H1 |
2.69 |
Apr 19, 2023, 13:00:00 PM |
H1 |
2.60 |
Apr 19, 2023, 14:00:00 PM |
H1 |
2.92 |
alpha = 2/(window size + 1) = 2/(2 + 1) = 0.667
AVG(cpuUtil) [12:00-12:59:59] = (3.00 + 2.37+ 2.68+ 2.72)/4 = 2.6925 AVG(cpuUtil) [13:00-13:59:59] = (2.55+2.43+2.50+2.74)/4 = 2.555 AVG(cpuUtil) [14:00- 4:59:59] = (2.64+3.74+2.12+3.84)/4 = 3.085 EMA(2,cpuUtil) [12:00:00] = AVG(cpuUtil) [12:00-12:59:59] = 2.69 EMA(2,cpuUtil) [13:00:00] = alpha * AVG(cpuUtil) [13:00- 13:59:59] + (1 - alpha) * AVG(cpuUtil) [12:00-12:59:59] = 0.66 * 2.555 + (0.37)*2.6925 = 2.60 EMA(2,cpuUtil) [14:00:00] = alpha * AVG(cpuUtil) [14:00- 14:59:59] + (1 - alpha) * AVG(cpuUtil) [13:00- 13:59:59] = 0.66 * 3.085 + 0.37*2.555 = 2.92
Restrictions
- HAVING clause is not supported.
SMA Function
SMA(N,<field>) returns Simple Moving Average over N previous values of the numerical valued <field> among all events matching the query criteria.
Syntax
SMA(N, <eventAttribute>) - eventAttribute must be a numerical type.
SMA(N,Function(<eventAttribute>)) – The Function must return a numerical value and cannot be an aggregate attribute.
In Elasticsearch, these nested function categories are allowed:
- Extraction Function, String Manipulation Functions
Note: Only LEN allowed in String Manipulation Functions
In ClickHouse, these nested function categories are allowed:
- Conversion Functions, String Manipulation Functions
Note: Only LEN allowed in String Manipulation Functions
Scope
Available for ClickHouse and Elasticsearch queries from release 7.0.0 onwards.
Example
Raw Data
eventRecvTime |
hostName |
cpuUtil |
---|---|---|
Apr 19, 2023, 12:00:00 PM |
H1 |
3.00% |
Apr 19, 2023, 12:15:00 PM |
H1 |
2.37% |
Apr 19, 2023, 12:30:00 PM |
H1 |
2.68% |
Apr 19, 2023, 12:45:00 PM |
H1 |
2.72% |
Apr 19, 2023, 13:00:00 PM |
H1 |
2.55% |
Apr 19, 2023, 13:15:00 PM |
H1 |
2.43% |
Apr 19, 2023, 13:30:00 PM |
H1 |
2.50% |
Apr 19, 2023, 13:45:00 PM |
H1 |
2.74% |
Apr 19, 2023, 14:00:00 PM |
H1 |
2.64% |
Apr 19, 2023, 14:15:00 PM |
H1 |
3.74% |
Apr 19, 2023, 14:30:00 PM |
H1 |
2.12% |
Apr 19, 2023, 14:45:00 PM |
H1 |
3.84% |
SMA Query response
eventRecvHour |
hostName |
SMA(2,cpuUtil) |
---|---|---|
Apr 19, 2023, 12:00:00 PM |
H1 |
2.69 |
Apr 19, 2023, 13:00:00 PM |
H1 |
2.62 |
Apr 19, 2023, 14:00:00 PM |
H1 |
2.85 |
SMA(2,cpuUtil) [12:00:00] = AVG(cpuUtil) [12:00-12:59:59] = (3.00 + 2.37+ 2.68+ 2.72)/4 = 2.6925 SMA(2,cpuUtil) [13:00:00] = (AVG(cpuUtil) [12:00-12:59:59] + AVG(cpuUtil) [13:00- 13:59:59] ) /2 = [2.6925 + (2.55+2.43+2.50+2.74)/4] / 2 = [ 2.6925 + 2.555 ] / 2 = 2.62 SMA(2,cpuUtil) [14:00:00] = (AVG(cpuUtil) [13:00-13:59:59] + AVG(cpuUtil) [14:00- 14:59:59] ) /2 = [ 2.555 + (2.64+3.74+2.12+3.84)/4] / 2 = [ 2.555 + 3.085 ] / 2 = 2.85
Restrictions
- HAVING clause is not supported.