#[non_exhaustive]pub enum Aligner {
Show 20 variants
AlignNone,
AlignDelta,
AlignRate,
AlignInterpolate,
AlignNextOlder,
AlignMin,
AlignMax,
AlignMean,
AlignCount,
AlignSum,
AlignStddev,
AlignCountTrue,
AlignCountFalse,
AlignFractionTrue,
AlignPercentile99,
AlignPercentile95,
AlignPercentile50,
AlignPercentile05,
AlignPercentChange,
UnknownValue(UnknownValue),
}Expand description
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.
§Working with unknown values
This enum is defined as #[non_exhaustive] because Google Cloud may add
additional enum variants at any time. Adding new variants is not considered
a breaking change. Applications should write their code in anticipation of:
- New values appearing in future releases of the client library, and
- New values received dynamically, without application changes.
Please consult the Working with enums section in the user guide for some guidelines.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
AlignNone
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.
AlignDelta
Align and convert to
DELTA.
The output is delta = y1 - y0.
This alignment is valid for
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.
AlignRate
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.
AlignInterpolate
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.
AlignNextOlder
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.
AlignMin
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.
AlignMax
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.
AlignMean
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.
AlignCount
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.
AlignSum
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.
AlignStddev
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.
AlignCountTrue
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.
AlignCountFalse
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.
AlignFractionTrue
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.
AlignPercentile99
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.
AlignPercentile95
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.
AlignPercentile50
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.
AlignPercentile05
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.
AlignPercentChange
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.
UnknownValue(UnknownValue)
If set, the enum was initialized with an unknown value.
Applications can examine the value using Aligner::value or Aligner::name.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Aligner
impl<'de> Deserialize<'de> for Aligner
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
impl StructuralPartialEq for Aligner
Auto Trait Implementations§
impl Freeze for Aligner
impl RefUnwindSafe for Aligner
impl Send for Aligner
impl Sync for Aligner
impl Unpin for Aligner
impl UnwindSafe for Aligner
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.