getResourceMetrics method
- required DateTime endTime,
- required String identifier,
- required List<
MetricQuery> metricQueries, - required ServiceType serviceType,
- required DateTime startTime,
- int? maxResults,
- String? nextToken,
- int? periodInSeconds,
Retrieve Performance Insights metrics for a set of data sources, over a time period. You can provide specific dimension groups and dimensions, and provide aggregation and filtering criteria for each group.
May throw InvalidArgumentException. May throw InternalServiceError. May throw NotAuthorizedException.
Parameter endTime
:
The date and time specifying the end of the requested time series data.
The value specified is exclusive - data points less than (but not
equal to) EndTime
will be returned.
The value for EndTime
must be later than the value for
StartTime
.
Parameter identifier
:
An immutable, AWS Region-unique identifier for a data source. Performance
Insights gathers metrics from this data source.
To use a DB instance as a data source, specify its
DbiResourceId
value. For example, specify
db-FAIHNTYBKTGAUSUZQYPDS2GW4A
.
Parameter metricQueries
:
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.
Parameter serviceType
:
The AWS service for which Performance Insights returns metrics. The only
valid value for ServiceType is RDS
.
Parameter startTime
:
The date and time specifying the beginning of the requested time series
data. You can't specify a StartTime
that's earlier than 7
days ago. The value specified is inclusive - data points equal to
or greater than StartTime
will be returned.
The value for StartTime
must be earlier than the value for
EndTime
.
Parameter maxResults
:
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.
Parameter nextToken
:
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
.
Parameter periodInSeconds
:
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)
PeriodInSeconds
, then Performance
Insights will choose a value for you, with a goal of returning roughly
100-200 data points in the response.
Implementation
Future<GetResourceMetricsResponse> getResourceMetrics({
required DateTime endTime,
required String identifier,
required List<MetricQuery> metricQueries,
required ServiceType serviceType,
required DateTime startTime,
int? maxResults,
String? nextToken,
int? periodInSeconds,
}) async {
ArgumentError.checkNotNull(endTime, 'endTime');
ArgumentError.checkNotNull(identifier, 'identifier');
ArgumentError.checkNotNull(metricQueries, 'metricQueries');
ArgumentError.checkNotNull(serviceType, 'serviceType');
ArgumentError.checkNotNull(startTime, 'startTime');
_s.validateNumRange(
'maxResults',
maxResults,
0,
20,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'PerformanceInsightsv20180227.GetResourceMetrics'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'EndTime': unixTimestampToJson(endTime),
'Identifier': identifier,
'MetricQueries': metricQueries,
'ServiceType': serviceType.toValue(),
'StartTime': unixTimestampToJson(startTime),
if (maxResults != null) 'MaxResults': maxResults,
if (nextToken != null) 'NextToken': nextToken,
if (periodInSeconds != null) 'PeriodInSeconds': periodInSeconds,
},
);
return GetResourceMetricsResponse.fromJson(jsonResponse.body);
}