count
Count aggregation operator. There are two variants of the :count operator.
Aggregation
| Input Stack: |
⇨ |
Output Stack: |
Compute the number of time series that match the query and have a value (non-NaN) for each
time interval. This is useful for understanding how many instances are reporting data at
any given time.
Parameters
- query: A query expression that selects the time series to count
Examples
Count how many time series match the query and have data:
name,ssCpuUser,:eq,
:count
When matching against the sample data in the table below, the highlighted time series would be
included in the aggregate result:
| Name | nf.app | nf.node | Data |
| ssCpuUser |
alerttest |
i-0123 |
[1.0, 2.0, NaN] |
| ssCpuSystem |
alerttest |
i-0123 |
[3.0, 4.0, 5.0] |
| ssCpuUser |
nccp |
i-0abc |
[8.0, 7.0, 6.0] |
| ssCpuSystem |
nccp |
i-0abc |
[6.0, 7.0, 8.0] |
| numRequests |
nccp |
i-0abc |
[1.0, 2.0, 4.0] |
| ssCpuUser |
api |
i-0456 |
[1.0, 2.0, 2.0] |
The values from the corresponding intervals will be aggregated. For the first interval using
the sample data above the values are 1.0, 8.0, and 1.0. Each value other than NaN
contributes one to the count. This leads to a final result of:
| Name | Data |
| ssCpuUser |
[3.0, 3.0, 2.0] |
The only tags for the aggregated result are those that are matched exactly (:eq clause)
as part of the choosing criteria or are included in a group by.
Math
| Input Stack: |
⇨ |
Output Stack: |
Compute the number of time series from the input expression that have a value (non-NaN) for
each time interval. This variant is typically used when you need to apply a different aggregation
function for grouping first, then count across the groups.
Parameters
- expr: A time series expression that may contain multiple series to count
Examples
First group by cluster, then count how many clusters have data:
| Before | After |
 |  |
name,sps,:eq,
(,nf.cluster,),:by
| name,sps,:eq,
(,nf.cluster,),:by,
:count
|
- :sum - Sum aggregation function
- :max - Maximum aggregation function
- :min - Minimum aggregation function
- :avg - Average aggregation function (uses count internally)
- :by - Group time series by tag values before aggregating