service_level_objectives
Creates, updates, deletes or gets a service_level_objective resource or lists service_level_objectives in a region
Overview
| Name | service_level_objectives |
| Type | Resource |
| Description | Resource Type definition for AWS::ApplicationSignals::ServiceLevelObjective |
| Id | awscc.applicationsignals.service_level_objectives |
Fields
- get (all properties)
- list (identifiers only)
| Name | Datatype | Description |
|---|---|---|
arn | string | The ARN of this SLO. |
name | string | The name of this SLO. |
description | string | An optional description for this SLO. Default is 'No description' |
created_time | integer | Epoch time in seconds of the time that this SLO was created |
last_updated_time | integer | Epoch time in seconds of the time that this SLO was most recently updated |
sli | object | This structure contains information about the performance metric that an SLO monitors. |
request_based_sli | object | This structure contains information about the performance metric that a request-based SLO monitors. |
evaluation_type | string | Displays whether this is a period-based SLO or a request-based SLO. |
goal | object | A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold. |
tags | array | The list of tag keys and values associated with the resource you specified |
burn_rate_configurations | array | Each object in this array defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. |
exclusion_windows | array | Each object in this array defines a time exclusion window for this SLO. The time exclusion window is used to exclude breaching data points from affecting attainment rate, error budget, and burn rate metrics. |
region | string | AWS region. |
| Name | Datatype | Description |
|---|---|---|
arn | string | The ARN of this SLO. |
region | string | AWS region. |
For more information, see AWS::ApplicationSignals::ServiceLevelObjective.
Methods
| Name | Resource | Accessible by | Required Params |
|---|---|---|---|
create_resource | service_level_objectives | INSERT | Name, region |
delete_resource | service_level_objectives | DELETE | Identifier, region |
update_resource | service_level_objectives | UPDATE | Identifier, PatchDocument, region |
list_resources | service_level_objectives_list_only | SELECT | region |
get_resource | service_level_objectives | SELECT | Identifier, region |
SELECT examples
- get (all properties)
- list (identifiers only)
Gets all properties from an individual service_level_objective.
SELECT
region,
arn,
name,
description,
created_time,
last_updated_time,
sli,
request_based_sli,
evaluation_type,
goal,
tags,
burn_rate_configurations,
exclusion_windows
FROM awscc.applicationsignals.service_level_objectives
WHERE
region = 'us-east-1' AND
Identifier = '{{ arn }}';
Lists all service_level_objectives in a region.
SELECT
region,
arn
FROM awscc.applicationsignals.service_level_objectives_list_only
WHERE
region = 'us-east-1';
INSERT example
Use the following StackQL query and manifest file to create a new service_level_objective resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO awscc.applicationsignals.service_level_objectives (
Name,
region
)
SELECT
'{{ name }}',
'{{ region }}';
/*+ create */
INSERT INTO awscc.applicationsignals.service_level_objectives (
Name,
Description,
Sli,
RequestBasedSli,
Goal,
Tags,
BurnRateConfigurations,
ExclusionWindows,
region
)
SELECT
'{{ name }}',
'{{ description }}',
'{{ sli }}',
'{{ request_based_sli }}',
'{{ goal }}',
'{{ tags }}',
'{{ burn_rate_configurations }}',
'{{ exclusion_windows }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: service_level_objective
props:
- name: name
value: '{{ name }}'
- name: description
value: '{{ description }}'
- name: sli
value:
sli_metric:
key_attributes: null
operation_name: '{{ operation_name }}'
metric_type: '{{ metric_type }}'
statistic: '{{ statistic }}'
period_seconds: '{{ period_seconds }}'
metric_data_queries:
- metric_stat:
period: '{{ period }}'
metric:
metric_name: '{{ metric_name }}'
dimensions:
- value: '{{ value }}'
name: '{{ name }}'
namespace: '{{ namespace }}'
stat: '{{ stat }}'
unit: '{{ unit }}'
id: '{{ id }}'
return_data: '{{ return_data }}'
expression: '{{ expression }}'
account_id: '{{ account_id }}'
dependency_config:
dependency_key_attributes: null
dependency_operation_name: '{{ dependency_operation_name }}'
metric_threshold: null
comparison_operator: '{{ comparison_operator }}'
- name: request_based_sli
value:
request_based_sli_metric:
key_attributes: null
operation_name: '{{ operation_name }}'
metric_type: '{{ metric_type }}'
total_request_count_metric: null
monitored_request_count_metric:
good_count_metric: null
bad_count_metric: null
dependency_config: null
metric_threshold: null
comparison_operator: '{{ comparison_operator }}'
- name: goal
value:
interval:
rolling_interval:
duration_unit: '{{ duration_unit }}'
duration: '{{ duration }}'
calendar_interval:
start_time: '{{ start_time }}'
duration_unit: null
duration: null
attainment_goal: null
warning_threshold: null
- name: tags
value:
- key: '{{ key }}'
value: '{{ value }}'
- name: burn_rate_configurations
value:
- look_back_window_minutes: '{{ look_back_window_minutes }}'
- name: exclusion_windows
value:
- window:
duration_unit: null
duration: null
start_time: '{{ start_time }}'
recurrence_rule:
expression: '{{ expression }}'
reason: '{{ reason }}'
UPDATE example
Use the following StackQL query and manifest file to update a service_level_objective resource, using stack-deploy.
/*+ update */
UPDATE awscc.applicationsignals.service_level_objectives
SET PatchDocument = string('{{ {
"Description": description,
"Sli": sli,
"RequestBasedSli": request_based_sli,
"Goal": goal,
"Tags": tags,
"BurnRateConfigurations": burn_rate_configurations,
"ExclusionWindows": exclusion_windows
} | generate_patch_document }}')
WHERE
region = '{{ region }}' AND
Identifier = '{{ arn }}';
DELETE example
/*+ delete */
DELETE FROM awscc.applicationsignals.service_level_objectives
WHERE
Identifier = '{{ arn }}' AND
region = 'us-east-1';
Permissions
To operate on the service_level_objectives resource, the following permissions are required:
- Create
- Read
- Update
- Delete
- List
application-signals:CreateServiceLevelObjective,
cloudwatch:GetMetricData,
application-signals:TagResource,
application-signals:GetServiceLevelObjective,
application-signals:ListTagsForResource,
iam:GetRole,
iam:CreateServiceLinkedRole,
application-signals:ListServiceLevelObjectiveExclusionWindows,
application-signals:BatchUpdateExclusionWindows
application-signals:GetServiceLevelObjective,
application-signals:ListTagsForResource,
application-signals:ListServiceLevelObjectiveExclusionWindows
application-signals:UpdateServiceLevelObjective,
cloudwatch:GetMetricData,
application-signals:TagResource,
application-signals:UntagResource,
application-signals:GetServiceLevelObjective,
application-signals:ListTagsForResource,
application-signals:ListServiceLevelObjectiveExclusionWindows,
application-signals:BatchUpdateExclusionWindows
application-signals:DeleteServiceLevelObjective,
application-signals:UntagResource,
application-signals:GetServiceLevelObjective
application-signals:ListServiceLevelObjectives,
application-signals:ListTagsForResource,
application-signals:ListServiceLevelObjectiveExclusionWindows