GetCurrentMetricData
Gets the real-time metric data from the specified Amazon Connect instance.
For a description of each metric, see Metrics definitions in the Amazon Connect Administrator Guide.
Note
When you make a successful API request, you can expect the following metric values in the response:
- 
            Metric value is null: The calculation cannot be performed due to divide by zero or insufficient data 
- 
            Metric value is a number (including 0) of defined type: The number provided is the calculation result 
- 
            MetricResult list is empty: The request cannot find any data in the system 
The following guidelines can help you work with the API:
- 
            Each dimension in the metric response must contain a value 
- 
            Each item in MetricResult must include all requested metrics 
- 
            If the response is slow due to large result sets, try these approaches: - 
                  Add filters to reduce the amount of data returned 
 
- 
                  
Request Syntax
POST /metrics/current/InstanceId HTTP/1.1
Content-type: application/json
{
   "CurrentMetrics": [ 
      { 
         "Name": "string",
         "Unit": "string"
      }
   ],
   "Filters": { 
      "AgentStatuses": [ "string" ],
      "Channels": [ "string" ],
      "Queues": [ "string" ],
      "RoutingProfiles": [ "string" ],
      "RoutingStepExpressions": [ "string" ]
   },
   "Groupings": [ "string" ],
   "MaxResults": number,
   "NextToken": "string",
   "SortCriteria": [ 
      { 
         "SortByMetric": "string",
         "SortOrder": "string"
      }
   ]
}URI Request Parameters
The request uses the following URI parameters.
- InstanceId
- 
               The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. Length Constraints: Minimum length of 1. Maximum length of 100. Required: Yes 
Request Body
The request accepts the following data in JSON format.
- CurrentMetrics
- 
               The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available. For a description of all the metrics, see Metrics definitions in the Amazon Connect Administrator Guide. - AGENTS_AFTER_CONTACT_WORK
- 
                        Unit: COUNT Name in real-time metrics report: ACW 
- AGENTS_AVAILABLE
- 
                        Unit: COUNT Name in real-time metrics report: Available 
- AGENTS_ERROR
- 
                        Unit: COUNT Name in real-time metrics report: Error 
- AGENTS_NON_PRODUCTIVE
- 
                        Unit: COUNT Name in real-time metrics report: NPT (Non-Productive Time) 
- AGENTS_ON_CALL
- 
                        Unit: COUNT Name in real-time metrics report: On contact 
- AGENTS_ON_CONTACT
- 
                        Unit: COUNT Name in real-time metrics report: On contact 
- AGENTS_ONLINE
- 
                        Unit: COUNT Name in real-time metrics report: Online 
- AGENTS_STAFFED
- 
                        Unit: COUNT Name in real-time metrics report: Staffed 
- CONTACTS_IN_QUEUE
- 
                        Unit: COUNT Name in real-time metrics report: In queue 
- CONTACTS_SCHEDULED
- 
                        Unit: COUNT Name in real-time metrics report: Scheduled 
- OLDEST_CONTACT_AGE
- 
                        Unit: SECONDS When you use groupings, Unit says SECONDS and the Value is returned in SECONDS. When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For example, if you get a response like this: { "Metric": { "Name": "OLDEST_CONTACT_AGE", "Unit": "SECONDS" }, "Value": 24113.0}The actual OLDEST_CONTACT_AGE is 24 seconds. When the filter RoutingStepExpressionis used, this metric is still calculated from enqueue time. For example, if a contact that has been queued under<Expression 1>for 10 seconds has expired and<Expression 2>becomes active, thenOLDEST_CONTACT_AGEfor this queue will be counted starting from 10, not 0.Name in real-time metrics report: Oldest 
- SLOTS_ACTIVE
- 
                        Unit: COUNT Name in real-time metrics report: Active 
- SLOTS_AVAILABLE
- 
                        Unit: COUNT Name in real-time metrics report: Availability 
 Type: Array of CurrentMetric objects Required: Yes 
- Filters
- 
               The filters to apply to returned metrics. You can filter up to the following limits: - 
                     Queues: 100 
- 
                     Routing profiles: 100 
- 
                     Channels: 3 (VOICE, CHAT, and TASK channels are supported.) 
- 
                     RoutingStepExpressions: 50 
- 
                     AgentStatuses: 50 
 Metric data is retrieved only for the resources associated with the queues or routing profiles, and by any channels included in the filter. (You cannot filter by both queue AND routing profile.) You can include both resource IDs and resource ARNs in the same request. When using AgentStatusesas filter make sure Queues is added as primary filter.When using the RoutingStepExpressionfilter, you need to pass exactly oneQueueId. The filter is also case sensitive so when using theRoutingStepExpressionfilter, grouping byROUTING_STEP_EXPRESSIONis required.Currently tagging is only supported on the resources that are passed in the filter. Type: Filters object Required: Yes 
- 
                     
- Groupings
- 
               Defines the level of aggregation for metrics data by a dimension(s). Its similar to sorting items into buckets based on a common characteristic, then counting or calculating something for each bucket. For example, when grouped by QUEUE, the metrics returned apply to each queue rather than aggregated for all queues.The grouping list is an ordered list, with the first item in the list defined as the primary grouping. If no grouping is included in the request, the aggregation happens at the instance-level. - 
                     If you group by CHANNEL, you should include a Channels filter. VOICE, CHAT, and TASK channels are supported.
- 
                     If you group by AGENT_STATUS, you must include theQUEUEas the primary grouping and use queue filter. When you group byAGENT_STATUS, the only metric available is theAGENTS_ONLINEmetric.
- 
                     If you group by ROUTING_PROFILE, you must include either a queue or routing profile filter. In addition, a routing profile filter is required for metricsCONTACTS_SCHEDULED,CONTACTS_IN_QUEUE, andOLDEST_CONTACT_AGE.
- 
                     When using the RoutingStepExpressionfilter, group byROUTING_STEP_EXPRESSIONis required.
 Type: Array of strings Array Members: Maximum number of 2 items. Valid Values: QUEUE | CHANNEL | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION | AGENT_STATUSRequired: No 
- 
                     
- MaxResults
- 
               The maximum number of results to return per page. Type: Integer Valid Range: Minimum value of 1. Maximum value of 100. Required: No 
- 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. The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token. Type: String Required: No 
- SortCriteria
- 
               The way to sort the resulting response based on metrics. You can enter one sort criteria. By default resources are sorted based on AGENTS_ONLINE,DESCENDING. The metric collection is sorted based on the input metrics.Note the following: - 
                     Sorting on SLOTS_ACTIVEandSLOTS_AVAILABLEis not supported.
 Type: Array of CurrentMetricSortCriteria objects Array Members: Minimum number of 0 items. Maximum number of 1 item. Required: No 
- 
                     
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
   "ApproximateTotalCount": number,
   "DataSnapshotTime": number,
   "MetricResults": [ 
      { 
         "Collections": [ 
            { 
               "Metric": { 
                  "Name": "string",
                  "Unit": "string"
               },
               "Value": number
            }
         ],
         "Dimensions": { 
            "AgentStatus": { 
               "Arn": "string",
               "Id": "string"
            },
            "Channel": "string",
            "Queue": { 
               "Arn": "string",
               "Id": "string"
            },
            "RoutingProfile": { 
               "Arn": "string",
               "Id": "string"
            },
            "RoutingStepExpression": "string"
         }
      }
   ],
   "NextToken": "string"
}Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- ApproximateTotalCount
- 
               The total count of the result, regardless of the current page size. Type: Long 
- DataSnapshotTime
- 
               The time at which the metrics were retrieved and cached for pagination. Type: Timestamp 
- MetricResults
- 
               Information about the real-time metrics. Type: Array of CurrentMetricResult objects 
- NextToken
- 
               If there are additional results, this is the token for the next set of results. The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token. Type: String 
Errors
For information about the errors that are common to all actions, see Common Errors.
- InternalServiceException
- 
               Request processing failed because of an error or failure with the service. - Message
- 
                        The message. 
 HTTP Status Code: 500 
- InvalidParameterException
- 
               One or more of the specified parameters are not valid. - Message
- 
                        The message about the parameters. 
 HTTP Status Code: 400 
- InvalidRequestException
- 
               The request is not valid. - Message
- 
                        The message about the request. 
- Reason
- 
                        Reason why the request was invalid. 
 HTTP Status Code: 400 
- ResourceNotFoundException
- 
               The specified resource was not found. - Message
- 
                        The message about the resource. 
 HTTP Status Code: 404 
- ThrottlingException
- 
               The throttling limit has been exceeded. HTTP Status Code: 429 
Examples
Example
The following example retrieves the specified real-time metrics.
Sample Request
{{
  "InstanceId": "12345678-1234-5678-aabb-123456abcdef",
  "Filters": {
    "Queues": [
      "11111111-2222-fcfc-abab-333333333333",
      "arn:aws:connect:us-east-1:123456789012:instance/12345678-1234-5678-aabb-123456abcdef/queue/11111111-2222-fcfc-abab-333333333333"
    ],
    "Channels": ["VOICE"]
  },
  "Groupings": ["CHANNEL", "QUEUE"],
  "CurrentMetrics": [
    {
      "Name": "AGENTS_ONLINE",
      "Unit": "COUNT"
    },
    {
      "Name": "AGENTS_AVAILABLE",
      "Unit": "COUNT"
    },
    {
      "Name": "OLDEST_CONTACT_AGE",
      "Unit": "SECONDS"
    },
    {
      "Name": "AGENTS_ERROR",
      "Unit": "COUNT"
    }
  ],
  "SortCriteria": {
    "SortByMetric": "OLDEST_CONTACT_AGE",
    "SortOrder": "ASCENDING"
  }
}Sample Response
{
  "DataSnapshotTime": 1671222098.739,
  "ApproximateTotalCount": 1,
  "MetricResults": [
    {
      "Collections": [
        {
          "Metric": {
            "Name": "AGENTS_ONLINE",
            "Unit": "COUNT"
          },
          "Value": 1
        },
        {
          "Metric": {
            "Name": "AGENTS_AVAILABLE",
            "Unit": "COUNT"
          },
          "Value": 1
        },
        {
          "Metric": {
            "Name": "OLDEST_CONTACT_AGE",
            "Unit": "SECONDS"
          },
          "Value": 0
        },
        {
          "Metric": {
            "Name": "AGENTS_ERROR",
            "Unit": "COUNT"
          },
          "Value": 0
        }
      ],
      "Dimensions": {
        "Channel": "VOICE",
        "Queue": {
          "Arn": "arn:aws:connect:us-east-1:123456789012:instance/12345678-1234-5678-aabb-123456abcdef/queue/11111111-2222-fcfc-abab-333333333333",
          "Id": "11111111-2222-fcfc-abab-333333333333"
        }
      }
    }
  ]
}Sample GetCurrentMetricData Request Using RoutingStepExpression
This example illustrates one usage of GetCurrentMetricData.
{ "InstanceId": "12345678-1234-5678-aabb-123456abcdef", "CurrentMetrics": [ { "Name": "OLDEST_CONTACT_AGE", "Unit": "SECONDS" }, { "Name": "CONTACTS_IN_QUEUE", "Unit": "COUNT" } ], "Filters": { "Queues": [ "11111111-2222-fcfc-abab-333333333333" ], "RoutingStepExpressions": [ "{\"attributeCondition\":{\"proficiencyLevel\":1.0,\"comparisonOperator\":\"NumberGreaterOrEqualTo\",\"name\":\"Location\",\"value\":\"Earth\"}}" ] }, "Groupings": [ "ROUTING_STEP_EXPRESSION" ], "MaxResults": 10 }
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: