getMetricData method

Future<GetMetricDataResponse> getMetricData({
  1. required DateTime endTime,
  2. required Filters filters,
  3. required List<HistoricalMetric> historicalMetrics,
  4. required String instanceId,
  5. required DateTime startTime,
  6. List<Grouping>? groupings,
  7. int? maxResults,
  8. String? nextToken,
})

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

May throw InvalidRequestException. May throw InvalidParameterException. May throw InternalServiceException. May throw ThrottlingException. May throw ResourceNotFoundException.

Parameter endTime : The timestamp, in UNIX Epoch time format, at which to end the reporting interval for the retrieval of historical metrics data. The time must be specified using an interval of 5 minutes, such as 11:00, 11:05, 11:10, and must be later than the start time timestamp.

The time range between the start and end time must be less than 24 hours.

Parameter filters : The queues, up to 100, or channels, to use to filter the metrics returned. Metric data is retrieved only for the resources associated with the queues or channels included in the filter. You can include both queue IDs and queue ARNs in the same request. VOICE, CHAT, and TASK channels are supported.

Parameter historicalMetrics : The metrics to retrieve. Specify the name, unit, and statistic for each metric. The following historical metrics are available. For a description of each metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

ABANDON_TIME
Unit: SECONDS

Statistic: AVG

AFTER_CONTACT_WORK_TIME
Unit: SECONDS

Statistic: AVG

API_CONTACTS_HANDLED
Unit: COUNT

Statistic: SUM

CALLBACK_CONTACTS_HANDLED
Unit: COUNT

Statistic: SUM

CONTACTS_ABANDONED
Unit: COUNT

Statistic: SUM

CONTACTS_AGENT_HUNG_UP_FIRST
Unit: COUNT

Statistic: SUM

CONTACTS_CONSULTED
Unit: COUNT

Statistic: SUM

CONTACTS_HANDLED
Unit: COUNT

Statistic: SUM

CONTACTS_HANDLED_INCOMING
Unit: COUNT

Statistic: SUM

CONTACTS_HANDLED_OUTBOUND
Unit: COUNT

Statistic: SUM

CONTACTS_HOLD_ABANDONS
Unit: COUNT

Statistic: SUM

CONTACTS_MISSED
Unit: COUNT

Statistic: SUM

CONTACTS_QUEUED
Unit: COUNT

Statistic: SUM

CONTACTS_TRANSFERRED_IN
Unit: COUNT

Statistic: SUM

CONTACTS_TRANSFERRED_IN_FROM_QUEUE
Unit: COUNT

Statistic: SUM

CONTACTS_TRANSFERRED_OUT
Unit: COUNT

Statistic: SUM

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
Unit: COUNT

Statistic: SUM

HANDLE_TIME
Unit: SECONDS

Statistic: AVG

HOLD_TIME
Unit: SECONDS

Statistic: AVG

INTERACTION_AND_HOLD_TIME
Unit: SECONDS

Statistic: AVG

INTERACTION_TIME
Unit: SECONDS

Statistic: AVG

OCCUPANCY
Unit: PERCENT

Statistic: AVG

QUEUE_ANSWER_TIME
Unit: SECONDS

Statistic: AVG

QUEUED_TIME
Unit: SECONDS

Statistic: MAX

SERVICE_LEVEL
Unit: PERCENT

Statistic: AVG

Threshold: Only "Less than" comparisons are supported, with the following service level thresholds: 15, 20, 25, 30, 45, 60, 90, 120, 180, 240, 300, 600

Parameter instanceId : The identifier of the Amazon Connect instance.

Parameter startTime : The timestamp, in UNIX Epoch time format, at which to start the reporting interval for the retrieval of historical metrics data. The time must be specified using a multiple of 5 minutes, such as 10:05, 10:10, 10:15.

The start time cannot be earlier than 24 hours before the time of the request. Historical metrics are available only for 24 hours.

Parameter groupings : The grouping applied to the metrics returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values returned apply to the metrics for each queue rather than aggregated for all queues.

The only supported grouping is QUEUE.

If no grouping is specified, a summary of metrics for all queues is returned.

Parameter maxResults : The maximimum number of results to return per page.

Parameter nextToken : The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

Implementation

Future<GetMetricDataResponse> getMetricData({
  required DateTime endTime,
  required Filters filters,
  required List<HistoricalMetric> historicalMetrics,
  required String instanceId,
  required DateTime startTime,
  List<Grouping>? groupings,
  int? maxResults,
  String? nextToken,
}) async {
  ArgumentError.checkNotNull(endTime, 'endTime');
  ArgumentError.checkNotNull(filters, 'filters');
  ArgumentError.checkNotNull(historicalMetrics, 'historicalMetrics');
  ArgumentError.checkNotNull(instanceId, 'instanceId');
  _s.validateStringLength(
    'instanceId',
    instanceId,
    1,
    100,
    isRequired: true,
  );
  ArgumentError.checkNotNull(startTime, 'startTime');
  _s.validateNumRange(
    'maxResults',
    maxResults,
    1,
    100,
  );
  final $payload = <String, dynamic>{
    'EndTime': unixTimestampToJson(endTime),
    'Filters': filters,
    'HistoricalMetrics': historicalMetrics,
    'StartTime': unixTimestampToJson(startTime),
    if (groupings != null)
      'Groupings': groupings.map((e) => e.toValue()).toList(),
    if (maxResults != null) 'MaxResults': maxResults,
    if (nextToken != null) 'NextToken': nextToken,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/metrics/historical/${Uri.encodeComponent(instanceId)}',
    exceptionFnMap: _exceptionFns,
  );
  return GetMetricDataResponse.fromJson(response);
}