# Aggregation Functions

Statistical functions are applied to values in each period to calculate period statistics.

Syntax | Description |
---|---|

`count` | Number of samples during the period. |

`min` | Minimum value during the period. |

`max` | Maximum value during the period. |

`sum` | Sum of values during the period. |

`avg` | Average value during the period. |

`percentile(n)` | `n` -th percentile, for example `PERCENTILE(75)` or `PERCENTILE(99.5)` .`n` is a decimal number between `[0, 100]` . |

`median` | Median value, same as 50% percentile. |

`standard_deviation` | Standard deviation of values during the period.√ of the variance. |

`median_abs_dev` | Median absolute deviation of values during the period.`median(abs(value - median(value)))` . |

`first` | First value received during the period. |

`last` | Last value received during the period. |

`delta` | Delta is the difference between the last value in the period and the last value in the previous period.If no last value is present in the previous period (empty period), then `delta` is the difference between the last and first values during the current period.See also `counter` aggregator. |

`counter` | Sum of the differences between consecutive values in the period. If the difference between any two values is negative, the difference is replaced with the value itself. If the difference between values is always non-negative, the `counter` aggregator returns the same value as the `delta` aggregator.Refer to this Example to better understand the difference between `COUNTER` and `DELTA` . |

`wtavg` | An average created via the multiplication of each component by a factor reflecting importance.Weight is assigned based on timestamps rather than index.Data points with older timestamps contribute less to the weighted mean than more recent data. The weight of a sample is proportional to the `current_time – first_time + 1` (in seconds), where `current_time` is the timestamp of the sample, and `first_time` is the timestamp of the first sample received during the period.Weights are normalized, their sum is equal to `1` .Refer to the calculation example below. |

`wavg` | A weighted average of samples received during the period.The weight of a sample is proportional to the index of the sample in the time-ordered array of all samples during the period. Weights are normalized, their sum is equal to `1` .A weighted average is sum of sample values multiplied by weight. Refer to the Calculation Example below. |

`min_value_time` | Time when the minimum value (`min` ) occurred for the first time during the period. |

`max_value_time` | Time when the maximum value (`max` ) occurred for the first time during the period. |

`threshold_count` | Number of threshold violations during the period.A violation is a sequence of one or more successive data points exceeding the specified threshold. Example: The following values are collected every `5` minutes.`1, 2, 5, 7, 1, 1` . If the threshold is set to `4` , then one sequence (`5` ,`7` ) exceeds the threshold. |

`threshold_duration` | Total duration of threshold violations during the period in milliseconds.A violation is a sequence of one or more successive data points exceeding the specified threshold. Example: The following values are collected every `5` minutes.`1, 2, 5, 7, 1, 1` .If the threshold is set to `4` , then one sequence (`5` ,`7` ) exceeds the threshold and its total duration based on linear interpolation is `550` seconds.If the threshold is `5` , then duration is `850` seconds.For periods at the beginning of the timespan, at the end of the timespan or after a missing period, the value at the beginning of the period is set to the first value, and the value at the end of the period is set to last value. |

`threshold-percent` | Percent of time during which the value remained below threshold (no violation).Formula: `threshold_percent = 100 - threshold_duration / period_duration * 100` |

## Interpolation Functions

If the period does not contain any detailed values, they are excluded from the results. The default behavior `NONE`

can be modified by specifying an interpolation function to fill missing periods.

Function | Description |
---|---|

`NONE` | No interpolation. Periods without any raw values are excluded from results. |

`LINEAR` | Calculate period value using linear interpolation between previous and next period values. |

`PREVIOUS` | Set value for the period based on the previous period’s value. |

`NEXT` | Set value for the period based on the next period’s value. |

`VALUE` | Set value for the period to a specific number. |

### Examples

`AVG`

, `WAVG`

, and `WTAVG`

Example

See the Excel spreadsheet for testing and calculation.

`wtavg()`

: Weighted time average.

Calculation: `Weight = (sample.time - first.time)/(last.time - first.time + 1)`

## Examples

**Box Chart with percentile**

**Histogram with percentile**

**Time Chart with delta**

**Time Chart with count and delta**