The Aligner
specifies the operation that will be applied to the data
points in each alignment period in a time series. Except for
ALIGN_NONE
, which specifies that no operation be applied, each alignment
operation replaces the set of data values in each alignment period with
a single value: the result of applying the operation to the data values.
An aligned time series has a single data value at the end of each
alignment_period
.
An alignment operation can change the data type of the values, too. For
example, if you apply a counting operation to boolean values, the data
value_type
in the original time series is BOOLEAN
, but the value_type
in the aligned result is INT64
.
Constants
ALIGN_NONE
value: 0
No alignment. Raw data is returned. Not valid if cross-series reduction
is requested. The value_type
of the result is the same as the
value_type
of the input.
ALIGN_DELTA
value: 1
Align and convert to
[DELTA][google.api.MetricDescriptor.MetricKind.DELTA].
The output is delta = y1 - y0
.
This alignment is valid for
[CUMULATIVE][google.api.MetricDescriptor.MetricKind.CUMULATIVE] and
DELTA
metrics. If the selected alignment period results in periods
with no data, then the aligned value for such a period is created by
interpolation. The value_type
of the aligned result is the same as
the value_type
of the input.
ALIGN_RATE
value: 2
Align and convert to a rate. The result is computed as
rate = (y1 - y0)/(t1 - t0)
, or "delta over time".
Think of this aligner as providing the slope of the line that passes
through the value at the start and at the end of the alignment_period
.
This aligner is valid for CUMULATIVE
and DELTA
metrics with numeric values. If the selected alignment
period results in periods with no data, then the aligned value for
such a period is created by interpolation. The output is a GAUGE
metric with value_type
DOUBLE
.
If, by "rate", you mean "percentage change", see the
ALIGN_PERCENT_CHANGE
aligner instead.
ALIGN_INTERPOLATE
value: 3
Align by interpolating between adjacent points around the alignment
period boundary. This aligner is valid for GAUGE
metrics with
numeric values. The value_type
of the aligned result is the same as the
value_type
of the input.
ALIGN_NEXT_OLDER
value: 4
Align by moving the most recent data point before the end of the
alignment period to the boundary at the end of the alignment
period. This aligner is valid for GAUGE
metrics. The value_type
of
the aligned result is the same as the value_type
of the input.
ALIGN_MIN
value: 10
Align the time series by returning the minimum value in each alignment
period. This aligner is valid for GAUGE
and DELTA
metrics with
numeric values. The value_type
of the aligned result is the same as
the value_type
of the input.
ALIGN_MAX
value: 11
Align the time series by returning the maximum value in each alignment
period. This aligner is valid for GAUGE
and DELTA
metrics with
numeric values. The value_type
of the aligned result is the same as
the value_type
of the input.
ALIGN_MEAN
value: 12
Align the time series by returning the mean value in each alignment
period. This aligner is valid for GAUGE
and DELTA
metrics with
numeric values. The value_type
of the aligned result is DOUBLE
.
ALIGN_COUNT
value: 13
Align the time series by returning the number of values in each alignment
period. This aligner is valid for GAUGE
and DELTA
metrics with
numeric or Boolean values. The value_type
of the aligned result is
INT64
.
ALIGN_SUM
value: 14
Align the time series by returning the sum of the values in each
alignment period. This aligner is valid for GAUGE
and DELTA
metrics with numeric and distribution values. The value_type
of the
aligned result is the same as the value_type
of the input.
ALIGN_STDDEV
value: 15
Align the time series by returning the standard deviation of the values
in each alignment period. This aligner is valid for GAUGE
and
DELTA
metrics with numeric values. The value_type
of the output is
DOUBLE
.
ALIGN_COUNT_TRUE
value: 16
Align the time series by returning the number of True
values in
each alignment period. This aligner is valid for GAUGE
metrics with
Boolean values. The value_type
of the output is INT64
.
ALIGN_COUNT_FALSE
value: 24
Align the time series by returning the number of False
values in
each alignment period. This aligner is valid for GAUGE
metrics with
Boolean values. The value_type
of the output is INT64
.
ALIGN_FRACTION_TRUE
value: 17
Align the time series by returning the ratio of the number of True
values to the total number of values in each alignment period. This
aligner is valid for GAUGE
metrics with Boolean values. The output
value is in the range [0.0, 1.0] and has value_type
DOUBLE
.
ALIGN_PERCENTILE_99
value: 18
Align the time series by using percentile
aggregation. The resulting
data point in each alignment period is the 99th percentile of all data
points in the period. This aligner is valid for GAUGE
and DELTA
metrics with distribution values. The output is a GAUGE
metric with
value_type
DOUBLE
.
ALIGN_PERCENTILE_95
value: 19
Align the time series by using percentile
aggregation. The resulting
data point in each alignment period is the 95th percentile of all data
points in the period. This aligner is valid for GAUGE
and DELTA
metrics with distribution values. The output is a GAUGE
metric with
value_type
DOUBLE
.
ALIGN_PERCENTILE_50
value: 20
Align the time series by using percentile
aggregation. The resulting
data point in each alignment period is the 50th percentile of all data
points in the period. This aligner is valid for GAUGE
and DELTA
metrics with distribution values. The output is a GAUGE
metric with
value_type
DOUBLE
.
ALIGN_PERCENTILE_05
value: 21
Align the time series by using percentile
aggregation. The resulting
data point in each alignment period is the 5th percentile of all data
points in the period. This aligner is valid for GAUGE
and DELTA
metrics with distribution values. The output is a GAUGE
metric with
value_type
DOUBLE
.
ALIGN_PERCENT_CHANGE
value: 23
Align and convert to a percentage change. This aligner is valid for
GAUGE
and DELTA
metrics with numeric values. This alignment returns
((current - previous)/previous) * 100
, where the value of previous
is
determined based on the alignment_period
.
If the values of current
and previous
are both 0, then the returned
value is 0. If only previous
is 0, the returned value is infinity.
A 10-minute moving mean is computed at each point of the alignment period
prior to the above calculation to smooth the metric and prevent false
positives from very short-lived spikes. The moving mean is only
applicable for data whose values are >= 0
. Any values < 0
are
treated as a missing datapoint, and are ignored. While DELTA
metrics are accepted by this alignment, special care should be taken that
the values for the metric will always be positive. The output is a
GAUGE
metric with value_type
DOUBLE
.