Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is aligned to the same time interval boundaries, then the set of time series is optionally reduced in number.
Alignment consists of applying the per_series_aligner
operation to
each time series after its data has been divided into regular
alignment_period
time intervals. This process takes all of the
data points in an alignment period, applies a mathematical
transformation such as averaging, minimum, maximum, delta, etc., and
converts them into a single data point per period.
Reduction is when the aligned and transformed time series can optionally
be combined, reducing the number of time series through similar
mathematical transformations. Reduction involves applying a
cross_series_reducer
to all the time series, optionally sorting the
time series into subsets with group_by_fields
, and applying the
reducer to each subset.
The raw time series data can contain a huge amount of information from
multiple sources. Alignment and reduction transforms this mass of data
into a more manageable and representative collection of data, for
example “the 95% latency across the average of all tasks in a cluster”.
This representative data can be more easily graphed and comprehended,
and the individual time series data is still available for later
drilldown. For more details, see Filtering and
aggregation <https://cloud.google.com/monitoring/api/v3/aggregation>
__.
An Aligner
describes how to bring the data points in a
single time series into temporal alignment. Except for
ALIGN_NONE
, all alignments cause all the data points in an
alignment_period
to be mathematically grouped together,
resulting in a single data point for each alignment_period
with end timestamp at the end of the period. Not all
alignment operations may be applied to all time series. The
valid choices depend on the metric_kind
and value_type
of the original time series. Alignment can change the
metric_kind
or the value_type
of the time series.
Time series data must be aligned in order to perform cross-
time series reduction. If cross_series_reducer
is
specified, then per_series_aligner
must be specified and
not equal to ALIGN_NONE
and alignment_period
must be
specified; otherwise, an error is returned.
The set of fields to preserve when cross_series_reducer
is
specified. The group_by_fields
determine how the time
series are partitioned into subsets prior to applying the
aggregation operation. Each subset contains time series that
have the same value for each of the grouping fields. Each
individual time series is a member of exactly one subset. The
cross_series_reducer
is applied to each subset of time
series. It is not possible to reduce across different resource
types, so this field implicitly contains resource.type
.
Fields not specified in group_by_fields
are aggregated
away. If group_by_fields
is not specified and all the time
series have the same resource type, then the time series are
aggregated into a single output time series. If
cross_series_reducer
is not defined, this field is
ignored.