Struct aws_sdk_pi::Client
source · pub struct Client { /* private fields */ }
Expand description
Client for AWS Performance Insights
Client for invoking operations on AWS Performance Insights. Each operation on AWS Performance Insights is a method on this
this struct. .send()
MUST be invoked on the generated operations to dispatch the request to the service.
Constructing a Client
A Config
is required to construct a client. For most use cases, the aws-config
crate should be used to automatically resolve this config using
aws_config::load_from_env()
, since this will resolve an SdkConfig
which can be shared
across multiple different AWS SDK clients. This config resolution process can be customized
by calling aws_config::from_env()
instead, which returns a ConfigLoader
that uses
the builder pattern to customize the default config.
In the simplest case, creating a client looks as follows:
let config = aws_config::load_from_env().await;
let client = aws_sdk_pi::Client::new(&config);
Occasionally, SDKs may have additional service-specific that can be set on the Config
that
is absent from SdkConfig
, or slightly different settings for a specific client may be desired.
The Config
struct implements From<&SdkConfig>
, so setting these specific settings can be
done as follows:
let sdk_config = ::aws_config::load_from_env().await;
let config = aws_sdk_pi::config::Builder::from(&sdk_config)
.some_service_specific_setting("value")
.build();
See the aws-config
docs and Config
for more information on customizing configuration.
Note: Client construction is expensive due to connection thread pool initialization, and should be done once at application start-up.
Using the Client
A client has a function for every operation that can be performed by the service.
For example, the DescribeDimensionKeys
operation has
a Client::describe_dimension_keys
, function which returns a builder for that operation.
The fluent builder ultimately has a send()
function that returns an async future that
returns a result, as illustrated below:
let result = client.describe_dimension_keys()
.service_type("example")
.send()
.await;
The underlying HTTP requests that get made by this can be modified with the customize_operation
function on the fluent builder. See the customize
module for more
information.
Implementations§
source§impl Client
impl Client
sourcepub fn describe_dimension_keys(&self) -> DescribeDimensionKeysFluentBuilder
pub fn describe_dimension_keys(&self) -> DescribeDimensionKeysFluentBuilder
Constructs a fluent builder for the DescribeDimensionKeys
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights will return metrics. Valid values are as follows:
-
RDS
-
DOCDB
-
identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:An immutable, Amazon Web Services Region-unique identifier for a data source. Performance Insights gathers metrics from this data source.
To use an Amazon RDS instance as a data source, you specify its
DbiResourceId
value. For example, specifydb-FAIHNTYBKTGAUSUZQYPDS2GW4A
.start_time(DateTime)
/set_start_time(Option<DateTime>)
:The date and time specifying the beginning of the requested time series data. You must specify a
StartTime
within the past 7 days. The value specified is inclusive, which means that data points equal to or greater thanStartTime
are returned.The value for
StartTime
must be earlier than the value forEndTime
.end_time(DateTime)
/set_end_time(Option<DateTime>)
:The date and time specifying the end of the requested time series data. The value specified is exclusive, which means that data points less than (but not equal to)
EndTime
are returned.The value for
EndTime
must be later than the value forStartTime
.metric(impl ::std::convert::Into<String>)
/set_metric(Option<String>)
:The name of a Performance Insights metric to be measured.
Valid values for
Metric
are:-
db.load.avg
- A scaled representation of the number of active sessions for the database engine. -
db.sampledload.avg
- The raw number of active sessions for the database engine.
If the number of active sessions is less than an internal Performance Insights threshold,
db.load.avg
anddb.sampledload.avg
are the same value. If the number of active sessions is greater than the internal threshold, Performance Insights samples the active sessions, withdb.load.avg
showing the scaled values,db.sampledload.avg
showing the raw values, anddb.sampledload.avg
less thandb.load.avg
. For most use cases, you can querydb.load.avg
only.-
period_in_seconds(i32)
/set_period_in_seconds(Option<i32>)
:The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:
-
1
(one second) -
60
(one minute) -
300
(five minutes) -
3600
(one hour) -
86400
(twenty-four hours)
If you don’t specify
PeriodInSeconds
, then Performance Insights chooses a value for you, with a goal of returning roughly 100-200 data points in the response.-
group_by(DimensionGroup)
/set_group_by(Option<DimensionGroup>)
:A specification for how to aggregate the data points from a query result. You must specify a valid dimension group. Performance Insights returns all dimensions within this group, unless you provide the names of specific dimensions within this group. You can also request that Performance Insights return a limited number of values for a dimension.
additional_metrics(Vec<String>)
/set_additional_metrics(Option<Vec<String>>)
:Additional metrics for the top
N
dimension keys. If the specified dimension group in theGroupBy
parameter isdb.sql_tokenized
, you can specify per-SQL metrics to get the values for the topN
SQL digests. The response syntax is as follows:“AdditionalMetrics” : { “string” : “string” }
.partition_by(DimensionGroup)
/set_partition_by(Option<DimensionGroup>)
:For each dimension specified in
GroupBy
, specify a secondary dimension to further subdivide the partition keys in the response.filter(HashMap<String, String>)
/set_filter(Option<HashMap<String, String>>)
:One or more filters to apply in the request. Restrictions:
-
Any number of filters by the same dimension, as specified in the
GroupBy
orPartition
parameters. -
A single filter for any other dimension in this dimension group.
-
max_results(i32)
/set_max_results(Option<i32>)
:The maximum number of items to return in the response. If more items exist than the specified
MaxRecords
value, a pagination token is included in the response so that the remaining results can be retrieved.next_token(impl ::std::convert::Into<String>)
/set_next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.
- On success, responds with
DescribeDimensionKeysOutput
with field(s):aligned_start_time(Option<DateTime>)
:The start time for the returned dimension keys, after alignment to a granular boundary (as specified by
PeriodInSeconds
).AlignedStartTime
will be less than or equal to the value of the user-specifiedStartTime
.aligned_end_time(Option<DateTime>)
:The end time for the returned dimension keys, after alignment to a granular boundary (as specified by
PeriodInSeconds
).AlignedEndTime
will be greater than or equal to the value of the user-specifiedEndtime
.partition_keys(Option<Vec<ResponsePartitionKey>>)
:If
PartitionBy
was present in the request,PartitionKeys
contains the breakdown of dimension keys by the specified partitions.keys(Option<Vec<DimensionKeyDescription>>)
:The dimension keys that were requested.
next_token(Option<String>)
:A pagination token that indicates the response didn’t return all available records because
MaxRecords
was specified in the previous request. To get the remaining records, specifyNextToken
in a separate request with this value.
- On failure, responds with
SdkError<DescribeDimensionKeysError>
source§impl Client
impl Client
sourcepub fn get_dimension_key_details(&self) -> GetDimensionKeyDetailsFluentBuilder
pub fn get_dimension_key_details(&self) -> GetDimensionKeyDetailsFluentBuilder
Constructs a fluent builder for the GetDimensionKeyDetails
operation.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights returns data. The only valid value is
RDS
.identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:The ID for a data source from which to gather dimension data. This ID must be immutable and unique within an Amazon Web Services Region. When a DB instance is the data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VW2X
.group(impl ::std::convert::Into<String>)
/set_group(Option<String>)
:The name of the dimension group. Performance Insights searches the specified group for the dimension group ID. The following group name values are valid:
-
db.query
(Amazon DocumentDB only) -
db.sql
(Amazon RDS and Aurora only)
-
group_identifier(impl ::std::convert::Into<String>)
/set_group_identifier(Option<String>)
:The ID of the dimension group from which to retrieve dimension details. For dimension group
db.sql
, the group ID isdb.sql.id
. The following group ID values are valid:-
db.sql.id
for dimension groupdb.sql
(Aurora and RDS only) -
db.query.id
for dimension groupdb.query
(DocumentDB only)
-
requested_dimensions(Vec<String>)
/set_requested_dimensions(Option<Vec<String>>)
:A list of dimensions to retrieve the detail data for within the given dimension group. If you don’t specify this parameter, Performance Insights returns all dimension data within the specified dimension group. Specify dimension names for the following dimension groups:
-
db.sql
- Specify either the full dimension namedb.sql.statement
or the short dimension namestatement
(Aurora and RDS only). -
db.query
- Specify either the full dimension namedb.query.statement
or the short dimension namestatement
(DocumentDB only).
-
- On success, responds with
GetDimensionKeyDetailsOutput
with field(s):dimensions(Option<Vec<DimensionKeyDetail>>)
:The details for the requested dimensions.
- On failure, responds with
SdkError<GetDimensionKeyDetailsError>
source§impl Client
impl Client
sourcepub fn get_resource_metadata(&self) -> GetResourceMetadataFluentBuilder
pub fn get_resource_metadata(&self) -> GetResourceMetadataFluentBuilder
Constructs a fluent builder for the GetResourceMetadata
operation.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights returns metrics.
identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:An immutable identifier for a data source that is unique for an Amazon Web Services Region. Performance Insights gathers metrics from this data source. To use a DB instance as a data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VW2X
.
- On success, responds with
GetResourceMetadataOutput
with field(s):identifier(Option<String>)
:An immutable identifier for a data source that is unique for an Amazon Web Services Region. Performance Insights gathers metrics from this data source. To use a DB instance as a data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VW2X
.features(Option<HashMap<String, FeatureMetadata>>)
:The metadata for different features. For example, the metadata might indicate that a feature is turned on or off on a specific DB instance.
- On failure, responds with
SdkError<GetResourceMetadataError>
source§impl Client
impl Client
sourcepub fn get_resource_metrics(&self) -> GetResourceMetricsFluentBuilder
pub fn get_resource_metrics(&self) -> GetResourceMetricsFluentBuilder
Constructs a fluent builder for the GetResourceMetrics
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights returns metrics. Valid values are as follows:
-
RDS
-
DOCDB
-
identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:An immutable identifier for a data source that is unique for an Amazon Web Services Region. Performance Insights gathers metrics from this data source. In the console, the identifier is shown as ResourceID. When you call
DescribeDBInstances
, the identifier is returned asDbiResourceId
.To use a DB instance as a data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VW2X
.metric_queries(Vec<MetricQuery>)
/set_metric_queries(Option<Vec<MetricQuery>>)
:An array of one or more queries to perform. Each query must specify a Performance Insights metric, and can optionally specify aggregation and filtering criteria.
start_time(DateTime)
/set_start_time(Option<DateTime>)
:The date and time specifying the beginning of the requested time series query range. You can’t specify a
StartTime
that is earlier than 7 days ago. By default, Performance Insights has 7 days of retention, but you can extend this range up to 2 years. The value specified is inclusive. Thus, the command returns data points equal to or greater thanStartTime
.The value for
StartTime
must be earlier than the value forEndTime
.end_time(DateTime)
/set_end_time(Option<DateTime>)
:The date and time specifying the end of the requested time series query range. The value specified is exclusive. Thus, the command returns data points less than (but not equal to)
EndTime
.The value for
EndTime
must be later than the value forStartTime
.period_in_seconds(i32)
/set_period_in_seconds(Option<i32>)
:The granularity, in seconds, of the data points returned from Performance Insights. A period can be as short as one second, or as long as one day (86400 seconds). Valid values are:
-
1
(one second) -
60
(one minute) -
300
(five minutes) -
3600
(one hour) -
86400
(twenty-four hours)
If you don’t specify
PeriodInSeconds
, then Performance Insights will choose a value for you, with a goal of returning roughly 100-200 data points in the response.-
max_results(i32)
/set_max_results(Option<i32>)
:The maximum number of items to return in the response. If more items exist than the specified
MaxRecords
value, a pagination token is included in the response so that the remaining results can be retrieved.next_token(impl ::std::convert::Into<String>)
/set_next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.period_alignment(PeriodAlignment)
/set_period_alignment(Option<PeriodAlignment>)
:The returned timestamp which is the start or end time of the time periods. The default value is
END_TIME
.
- On success, responds with
GetResourceMetricsOutput
with field(s):aligned_start_time(Option<DateTime>)
:The start time for the returned metrics, after alignment to a granular boundary (as specified by
PeriodInSeconds
).AlignedStartTime
will be less than or equal to the value of the user-specifiedStartTime
.aligned_end_time(Option<DateTime>)
:The end time for the returned metrics, after alignment to a granular boundary (as specified by
PeriodInSeconds
).AlignedEndTime
will be greater than or equal to the value of the user-specifiedEndtime
.identifier(Option<String>)
:An immutable identifier for a data source that is unique for an Amazon Web Services Region. Performance Insights gathers metrics from this data source. In the console, the identifier is shown as ResourceID. When you call
DescribeDBInstances
, the identifier is returned asDbiResourceId
.metric_list(Option<Vec<MetricKeyDataPoints>>)
:An array of metric results, where each array element contains all of the data points for a particular dimension.
next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.
- On failure, responds with
SdkError<GetResourceMetricsError>
source§impl Client
impl Client
sourcepub fn list_available_resource_dimensions(
&self
) -> ListAvailableResourceDimensionsFluentBuilder
pub fn list_available_resource_dimensions( &self ) -> ListAvailableResourceDimensionsFluentBuilder
Constructs a fluent builder for the ListAvailableResourceDimensions
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights returns metrics.
identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:An immutable identifier for a data source that is unique within an Amazon Web Services Region. Performance Insights gathers metrics from this data source. To use an Amazon RDS DB instance as a data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VWZ
.metrics(Vec<String>)
/set_metrics(Option<Vec<String>>)
:The types of metrics for which to retrieve dimensions. Valid values include
db.load
.max_results(i32)
/set_max_results(Option<i32>)
:The maximum number of items to return in the response. If more items exist than the specified
MaxRecords
value, a pagination token is included in the response so that the remaining results can be retrieved.next_token(impl ::std::convert::Into<String>)
/set_next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.
- On success, responds with
ListAvailableResourceDimensionsOutput
with field(s):metric_dimensions(Option<Vec<MetricDimensionGroups>>)
:The dimension information returned for requested metric types.
next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.
- On failure, responds with
SdkError<ListAvailableResourceDimensionsError>
source§impl Client
impl Client
sourcepub fn list_available_resource_metrics(
&self
) -> ListAvailableResourceMetricsFluentBuilder
pub fn list_available_resource_metrics( &self ) -> ListAvailableResourceMetricsFluentBuilder
Constructs a fluent builder for the ListAvailableResourceMetrics
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
service_type(ServiceType)
/set_service_type(Option<ServiceType>)
:The Amazon Web Services service for which Performance Insights returns metrics.
identifier(impl ::std::convert::Into<String>)
/set_identifier(Option<String>)
:An immutable identifier for a data source that is unique within an Amazon Web Services Region. Performance Insights gathers metrics from this data source. To use an Amazon RDS DB instance as a data source, specify its
DbiResourceId
value. For example, specifydb-ABCDEFGHIJKLMNOPQRSTU1VWZ
.metric_types(Vec<String>)
/set_metric_types(Option<Vec<String>>)
:The types of metrics to return in the response. Valid values in the array include the following:
-
os
(OS counter metrics) - All engines -
db
(DB load metrics) - All engines except for Amazon DocumentDB -
db.sql.stats
(per-SQL metrics) - All engines except for Amazon DocumentDB -
db.sql_tokenized.stats
(per-SQL digest metrics) - All engines except for Amazon DocumentDB
-
next_token(impl ::std::convert::Into<String>)
/set_next_token(Option<String>)
:An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the token, up to the value specified by
MaxRecords
.max_results(i32)
/set_max_results(Option<i32>)
:The maximum number of items to return. If the
MaxRecords
value is less than the number of existing items, the response includes a pagination token.
- On success, responds with
ListAvailableResourceMetricsOutput
with field(s):metrics(Option<Vec<ResponseResourceMetric>>)
:An array of metrics available to query. Each array element contains the full name, description, and unit of the metric.
next_token(Option<String>)
:A pagination token that indicates the response didn’t return all available records because
MaxRecords
was specified in the previous request. To get the remaining records, specifyNextToken
in a separate request with this value.
- On failure, responds with
SdkError<ListAvailableResourceMetricsError>
source§impl Client
impl Client
sourcepub fn from_conf(conf: Config) -> Self
pub fn from_conf(conf: Config) -> Self
Creates a new client from the service Config
.
Panics
- This method will panic if the
conf
is missing an async sleep implementation. If you experience this panic, set thesleep_impl
on the Config passed into this function to fix it. - This method will panic if the
conf
is missing an HTTP connector. If you experience this panic, set thehttp_connector
on the Config passed into this function to fix it.
source§impl Client
impl Client
sourcepub fn new(sdk_config: &SdkConfig) -> Self
pub fn new(sdk_config: &SdkConfig) -> Self
Creates a new client from an SDK Config.
Panics
- This method will panic if the
sdk_config
is missing an async sleep implementation. If you experience this panic, set thesleep_impl
on the Config passed into this function to fix it. - This method will panic if the
sdk_config
is missing an HTTP connector. If you experience this panic, set thehttp_connector
on the Config passed into this function to fix it.