GetCurrentMetricData
Gets the real-time metric data from the specified Amazon Connect instance.
For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator Guide.
Request Syntax
POST /metrics/current/InstanceId
HTTP/1.1
Content-type: application/json
{
"CurrentMetrics": [
{
"Name": "string
",
"Unit": "string
"
}
],
"Filters": {
"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 Real-time 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
RoutingStepExpression
is 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_AGE
for 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
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 the
RoutingStepExpression
filter, you need to pass exactly oneQueueId
. The filter is also case sensitive so when using theRoutingStepExpression
filter, grouping byROUTING_STEP_EXPRESSION
is required.Currently tagging is only supported on the resources that are passed in the filter.
Type: Filters object
Required: Yes
-
- Groupings
-
The grouping applied to the metrics returned. For example, when grouped by
QUEUE
, the metrics returned apply to each queue rather than aggregated for all queues.-
If you group by
CHANNEL
, you should include a Channels filter. VOICE, CHAT, and TASK channels are supported. -
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
. -
If no
Grouping
is included in the request, a summary of metrics is returned. -
When using the
RoutingStepExpression
filter, group byROUTING_STEP_EXPRESSION
is required.
Type: Array of strings
Array Members: Maximum number of 2 items.
Valid Values:
QUEUE | CHANNEL | ROUTING_PROFILE | ROUTING_STEP_EXPRESSION
Required: 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_ACTIVE
andSLOTS_AVAILABLE
is 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": {
"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.
HTTP Status Code: 500
- InvalidParameterException
-
One or more of the specified parameters are not valid.
HTTP Status Code: 400
- InvalidRequestException
-
The request is not valid.
HTTP Status Code: 400
- ResourceNotFoundException
-
The specified resource was not found.
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: