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