batchGetFrameMetricData method

Future<BatchGetFrameMetricDataResponse> batchGetFrameMetricData({
  1. required String profilingGroupName,
  2. DateTime? endTime,
  3. List<FrameMetric>? frameMetrics,
  4. String? period,
  5. DateTime? startTime,
  6. 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);
}