Skip to content

count

Count aggregation operator. There are two variants of the :count operator.

Aggregation

Input Stack:
query: Query
Output Stack:
AggregationFunction

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:

Namenf.appnf.nodeData
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:

NameData
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:
expr: TimeSeriesExpr
Output Stack:
TimeSeriesExpr

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:

BeforeAfter
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