Struct google_api_proto::google::cloud::timeseriesinsights::v1::EvaluatedSlice
source · pub struct EvaluatedSlice {
pub dimensions: Vec<PinnedDimension>,
pub detection_point_actual: Option<f64>,
pub detection_point_forecast: Option<f64>,
pub expected_deviation: Option<f64>,
pub anomaly_score: Option<f64>,
pub history: Option<Timeseries>,
pub forecast: Option<Timeseries>,
pub status: Option<Status>,
}
Expand description
Forecast result for a given slice.
Fields§
§dimensions: Vec<PinnedDimension>
Values for all categorical dimensions that uniquely identify this slice.
detection_point_actual: Option<f64>
The actual value at the detection time (see [detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time]).
NOTE: This value can be an estimate, so it should not be used as a source of truth.
detection_point_forecast: Option<f64>
The expected value at the detection time, which is obtained by forecasting on the historical time series.
expected_deviation: Option<f64>
How much our forecast model expects the detection point actual will deviate from its forecasted value based on how well it fit the input time series.
In general, we expect the detectionPointActual
to
be in the [detectionPointForecast - expectedDeviation, detectionPointForecast + expectedDeviation]
range. The more the actual
value is outside this range, the more statistically significant the
anomaly is.
The expected deviation is always positive.
anomaly_score: Option<f64>
Summarizes how significant the change between the actual and forecasted detection points are compared with the historical patterns observed on the [history][google.cloud.timeseriesinsights.v1.EvaluatedSlice.history] time series.
Defined as |a - f| / (e + nt), where:
- a is the [detectionPointActual][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_actual].
- f is the [detectionPointForecast][google.cloud.timeseriesinsights.v1.EvaluatedSlice.detection_point_forecast].
- e is the [expectedDeviation][google.cloud.timeseriesinsights.v1.EvaluatedSlice.expected_deviation].
- *nt` is the [noiseThreshold][google.cloud.timeseriesinsights.v1.ForecastParams.noise_threshold].
Anomaly scores between different requests and datasets are comparable. As a guideline, the risk of a slice being an anomaly based on the anomaly score is:
- Very High if
anomalyScore
> 5. - High if the
anomalyScore
is in the [2, 5] range. - Medium if the
anomalyScore
is in the [1, 2) range. - Low if the
anomalyScore
is < 1.
If there were issues evaluating this slice, then the anomaly score will be set to -1.0 and the [status][google.cloud.timeseriesinsights.v1.EvaluatedSlice.status] field will contain details on what went wrong.
history: Option<Timeseries>
The actual values in the [
[detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] -
[forecastHistory][google.cloud.timeseriesinsights.v1.TimeseriesParams.forecast_history],
[detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] ]
time
range.
NOTE: This field is only populated if [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] is true.
forecast: Option<Timeseries>
The forecasted values in the [
[detectionTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.detection_time] +
[granularity][google.cloud.timeseriesinsights.v1.TimeseriesParams.granularity],
[forecastParams.horizonTime][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.forecast_params] ]
time
range.
NOTE: This field is only populated if [returnTimeseries][google.cloud.timeseriesinsights.v1.QueryDataSetRequest.return_timeseries] is true.
status: Option<Status>
Evaluation status. Contains an error message if the anomalyScore
is < 0.
Possible error messages:
- “Time series too sparse”: The returned time series for this slice did not contain enough data points (we require a minimum of 10).
- “Not enough recent time series points”: The time series contains the minimum of 10 points, but there are not enough close in time to the detection point.
- “Missing detection point data”: There were not events to be
aggregated within the
\[detectionTime, detectionTime + granularity\]
time interval, so we don’t have an actual value with which we can compare our prediction. - “Data retrieval error”: We failed to retrieve the time series data for this slice and could not evaluate it successfully. Should be a transient error.
- “Internal server error”: Internal unexpected error.
Implementations§
source§impl EvaluatedSlice
impl EvaluatedSlice
sourcepub fn detection_point_actual(&self) -> f64
pub fn detection_point_actual(&self) -> f64
Returns the value of detection_point_actual
, or the default value if detection_point_actual
is unset.
sourcepub fn detection_point_forecast(&self) -> f64
pub fn detection_point_forecast(&self) -> f64
Returns the value of detection_point_forecast
, or the default value if detection_point_forecast
is unset.
sourcepub fn expected_deviation(&self) -> f64
pub fn expected_deviation(&self) -> f64
Returns the value of expected_deviation
, or the default value if expected_deviation
is unset.
sourcepub fn anomaly_score(&self) -> f64
pub fn anomaly_score(&self) -> f64
Returns the value of anomaly_score
, or the default value if anomaly_score
is unset.
Trait Implementations§
source§impl Clone for EvaluatedSlice
impl Clone for EvaluatedSlice
source§fn clone(&self) -> EvaluatedSlice
fn clone(&self) -> EvaluatedSlice
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for EvaluatedSlice
impl Debug for EvaluatedSlice
source§impl Default for EvaluatedSlice
impl Default for EvaluatedSlice
source§impl Message for EvaluatedSlice
impl Message for EvaluatedSlice
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for EvaluatedSlice
impl PartialEq for EvaluatedSlice
source§fn eq(&self, other: &EvaluatedSlice) -> bool
fn eq(&self, other: &EvaluatedSlice) -> bool
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for EvaluatedSlice
Auto Trait Implementations§
impl Freeze for EvaluatedSlice
impl RefUnwindSafe for EvaluatedSlice
impl Send for EvaluatedSlice
impl Sync for EvaluatedSlice
impl Unpin for EvaluatedSlice
impl UnwindSafe for EvaluatedSlice
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request