pub struct CreateServiceLevelObjectiveFluentBuilder { /* private fields */ }
Expand description
Fluent builder constructing a request to CreateServiceLevelObjective
.
Creates a service level objective (SLO), which can help you ensure that your critical business operations are meeting customer expectations. Use SLOs to set and track specific target levels for the reliability and availability of your applications and services. SLOs use service level indicators (SLIs) to calculate whether the application is performing at the level that you want.
Create an SLO to set a target for a service or operation’s availability or latency. CloudWatch measures this target frequently you can find whether it has been breached.
The target performance quality that is defined for an SLO is the attainment goal.
You can set SLO targets for your applications that are discovered by Application Signals, using critical metrics such as latency and availability. You can also set SLOs against any CloudWatch metric or math expression that produces a time series.
You can't create an SLO for a service operation that was discovered by Application Signals until after that operation has reported standard metrics to Application Signals.
When you create an SLO, you specify whether it is a period-based SLO or a request-based SLO. Each type of SLO has a different way of evaluating your application's performance against its attainment goal.
-
A period-based SLO uses defined periods of time within a specified total time interval. For each period of time, Application Signals determines whether the application met its goal. The attainment rate is calculated as the
number of good periods/number of total periods
.For example, for a period-based SLO, meeting an attainment goal of 99.9% means that within your interval, your application must meet its performance goal during at least 99.9% of the time periods.
-
A request-based SLO doesn't use pre-defined periods of time. Instead, the SLO measures
number of good requests/number of total requests
during the interval. At any time, you can find the ratio of good requests to total requests for the interval up to the time stamp that you specify, and measure that ratio against the goal set in your SLO.
After you have created an SLO, you can retrieve error budget reports for it. An error budget is the amount of time or amount of requests that your application can be non-compliant with the SLO's goal, and still have your application meet the goal.
-
For a period-based SLO, the error budget starts at a number defined by the highest number of periods that can fail to meet the threshold, while still meeting the overall goal. The remaining error budget decreases with every failed period that is recorded. The error budget within one interval can never increase.
For example, an SLO with a threshold that 99.95% of requests must be completed under 2000ms every month translates to an error budget of 21.9 minutes of downtime per month.
-
For a request-based SLO, the remaining error budget is dynamic and can increase or decrease, depending on the ratio of good requests to total requests.
For more information about SLOs, see Service level objectives (SLOs).
When you perform a CreateServiceLevelObjective
operation, Application Signals creates the AWSServiceRoleForCloudWatchApplicationSignals service-linked role, if it doesn't already exist in your account. This service- linked role has the following permissions:
-
xray:GetServiceGraph
-
logs:StartQuery
-
logs:GetQueryResults
-
cloudwatch:GetMetricData
-
cloudwatch:ListMetrics
-
tag:GetResources
-
autoscaling:DescribeAutoScalingGroups
Implementations§
Source§impl CreateServiceLevelObjectiveFluentBuilder
impl CreateServiceLevelObjectiveFluentBuilder
Sourcepub fn as_input(&self) -> &CreateServiceLevelObjectiveInputBuilder
pub fn as_input(&self) -> &CreateServiceLevelObjectiveInputBuilder
Access the CreateServiceLevelObjective as a reference.
Sourcepub async fn send(
self,
) -> Result<CreateServiceLevelObjectiveOutput, SdkError<CreateServiceLevelObjectiveError, HttpResponse>>
pub async fn send( self, ) -> Result<CreateServiceLevelObjectiveOutput, SdkError<CreateServiceLevelObjectiveError, HttpResponse>>
Sends the request and returns the response.
If an error occurs, an SdkError
will be returned with additional details that
can be matched against.
By default, any retryable failures will be retried twice. Retry behavior is configurable with the RetryConfig, which can be set when configuring the client.
Sourcepub fn customize(
self,
) -> CustomizableOperation<CreateServiceLevelObjectiveOutput, CreateServiceLevelObjectiveError, Self>
pub fn customize( self, ) -> CustomizableOperation<CreateServiceLevelObjectiveOutput, CreateServiceLevelObjectiveError, Self>
Consumes this builder, creating a customizable operation that can be modified before being sent.
Sourcepub fn description(self, input: impl Into<String>) -> Self
pub fn description(self, input: impl Into<String>) -> Self
An optional description for this SLO.
Sourcepub fn set_description(self, input: Option<String>) -> Self
pub fn set_description(self, input: Option<String>) -> Self
An optional description for this SLO.
Sourcepub fn get_description(&self) -> &Option<String>
pub fn get_description(&self) -> &Option<String>
An optional description for this SLO.
Sourcepub fn sli_config(self, input: ServiceLevelIndicatorConfig) -> Self
pub fn sli_config(self, input: ServiceLevelIndicatorConfig) -> Self
If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn set_sli_config(self, input: Option<ServiceLevelIndicatorConfig>) -> Self
pub fn set_sli_config(self, input: Option<ServiceLevelIndicatorConfig>) -> Self
If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn get_sli_config(&self) -> &Option<ServiceLevelIndicatorConfig>
pub fn get_sli_config(&self) -> &Option<ServiceLevelIndicatorConfig>
If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn request_based_sli_config(
self,
input: RequestBasedServiceLevelIndicatorConfig,
) -> Self
pub fn request_based_sli_config( self, input: RequestBasedServiceLevelIndicatorConfig, ) -> Self
If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn set_request_based_sli_config(
self,
input: Option<RequestBasedServiceLevelIndicatorConfig>,
) -> Self
pub fn set_request_based_sli_config( self, input: Option<RequestBasedServiceLevelIndicatorConfig>, ) -> Self
If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn get_request_based_sli_config(
&self,
) -> &Option<RequestBasedServiceLevelIndicatorConfig>
pub fn get_request_based_sli_config( &self, ) -> &Option<RequestBasedServiceLevelIndicatorConfig>
If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor.
You can't specify both RequestBasedSliConfig
and SliConfig
in the same operation.
Sourcepub fn goal(self, input: Goal) -> Self
pub fn goal(self, input: Goal) -> Self
This structure contains the attributes that determine the goal of the SLO.
Sourcepub fn set_goal(self, input: Option<Goal>) -> Self
pub fn set_goal(self, input: Option<Goal>) -> Self
This structure contains the attributes that determine the goal of the SLO.
Sourcepub fn get_goal(&self) -> &Option<Goal>
pub fn get_goal(&self) -> &Option<Goal>
This structure contains the attributes that determine the goal of the SLO.
Appends an item to Tags
.
To override the contents of this collection use set_tags
.
A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource
permission.
Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource
permission.
Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource
permission.
Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
Sourcepub fn burn_rate_configurations(self, input: BurnRateConfiguration) -> Self
pub fn burn_rate_configurations(self, input: BurnRateConfiguration) -> Self
Appends an item to BurnRateConfigurations
.
To override the contents of this collection use set_burn_rate_configurations
.
Use this array to create burn rates for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.
Sourcepub fn set_burn_rate_configurations(
self,
input: Option<Vec<BurnRateConfiguration>>,
) -> Self
pub fn set_burn_rate_configurations( self, input: Option<Vec<BurnRateConfiguration>>, ) -> Self
Use this array to create burn rates for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.
Sourcepub fn get_burn_rate_configurations(
&self,
) -> &Option<Vec<BurnRateConfiguration>>
pub fn get_burn_rate_configurations( &self, ) -> &Option<Vec<BurnRateConfiguration>>
Use this array to create burn rates for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO.
Trait Implementations§
Source§impl Clone for CreateServiceLevelObjectiveFluentBuilder
impl Clone for CreateServiceLevelObjectiveFluentBuilder
Source§fn clone(&self) -> CreateServiceLevelObjectiveFluentBuilder
fn clone(&self) -> CreateServiceLevelObjectiveFluentBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for CreateServiceLevelObjectiveFluentBuilder
impl !RefUnwindSafe for CreateServiceLevelObjectiveFluentBuilder
impl Send for CreateServiceLevelObjectiveFluentBuilder
impl Sync for CreateServiceLevelObjectiveFluentBuilder
impl Unpin for CreateServiceLevelObjectiveFluentBuilder
impl !UnwindSafe for CreateServiceLevelObjectiveFluentBuilder
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);