batchGetFrameMetricData method
- required String profilingGroupName,
- DateTime? endTime,
- List<
FrameMetric> ? frameMetrics, - String? period,
- DateTime? startTime,
- AggregationPeriod? targetResolution,
Returns the time series of values for a requested list of frame metrics from a time period.
May throw InternalServerException. May throw ValidationException. May throw ThrottlingException. May throw ResourceNotFoundException.
Parameter profilingGroupName
:
The name of the profiling group associated with the the frame metrics used
to return the time series values.
Parameter endTime
:
The end time of the time period for the returned time series values. This
is specified using the ISO 8601 format. For example,
2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020
1:15:02 PM UTC.
Parameter frameMetrics
:
The details of the metrics that are used to request a time series of
values. The metric includes the name of the frame, the aggregation type to
calculate the metric value for the frame, and the thread states to use to
get the count for the metric value of the frame.
Parameter period
:
The duration of the frame metrics used to return the time series values.
Specify using the ISO 8601 format. The maximum period duration is one day
(PT24H
or P1D
).
Parameter startTime
:
The start time of the time period for the frame metrics used to return the
time series values. This is specified using the ISO 8601 format. For
example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1,
2020 1:15:02 PM UTC.
Parameter targetResolution
:
The requested resolution of time steps for the returned time series of
values. If the requested target resolution is not available due to data
not being retained we provide a best effort result by falling back to the
most granular available resolution after the target resolution. There are
3 valid values.
-
P1D
— 1 day -
PT1H
— 1 hour -
PT5M
— 5 minutes
Implementation
Future<BatchGetFrameMetricDataResponse> batchGetFrameMetricData({
required String profilingGroupName,
DateTime? endTime,
List<FrameMetric>? frameMetrics,
String? period,
DateTime? startTime,
AggregationPeriod? targetResolution,
}) async {
ArgumentError.checkNotNull(profilingGroupName, 'profilingGroupName');
_s.validateStringLength(
'profilingGroupName',
profilingGroupName,
1,
255,
isRequired: true,
);
_s.validateStringLength(
'period',
period,
1,
64,
);
final $query = <String, List<String>>{
if (endTime != null) 'endTime': [_s.iso8601ToJson(endTime).toString()],
if (period != null) 'period': [period],
if (startTime != null)
'startTime': [_s.iso8601ToJson(startTime).toString()],
if (targetResolution != null)
'targetResolution': [targetResolution.toValue()],
};
final $payload = <String, dynamic>{
if (frameMetrics != null) 'frameMetrics': frameMetrics,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri:
'/profilingGroups/${Uri.encodeComponent(profilingGroupName)}/frames/-/metrics',
queryParams: $query,
exceptionFnMap: _exceptionFns,
);
return BatchGetFrameMetricDataResponse.fromJson(response);
}