CreateMetric
Creates a new metric definition for the specified Connect Customer instance. You can create custom metrics that use formulas referencing existing AWS-managed metrics, optionally with filters applied.
Request Syntax
PUT /metrics/definitions/InstanceId HTTP/1.1
Content-type: application/json
{
"ClientToken": "string",
"Description": "string",
"MetricCalculation": {
"Calculation": "string",
"CalculationComponents": [
{
"Alias": "string",
"MetricFilters": [
{
"BooleanCondition": {
"Comparison": "string"
},
"MetricFilterKey": "string",
"Negate": boolean,
"NumberCondition": {
"Comparison": "string",
"Values": [ number ]
},
"StringCondition": {
"Comparison": "string",
"Values": [ "string" ]
}
}
],
"MetricId": "string",
"MetricName": "string"
}
]
},
"Name": "string",
"PositiveTrendIndicator": "string",
"Status": "string",
"Tags": {
"string" : "string"
},
"Unit": "string"
}
URI Request Parameters
The request uses the following URI parameters.
- InstanceId
-
The identifier of the Connect Customer 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.
- ClientToken
-
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the AWS SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs
. Type: String
Length Constraints: Maximum length of 500.
Required: No
- Description
-
The description of the metric.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 500.
Required: No
- MetricCalculation
-
The calculation definition for the metric, including the formula expression and the component metrics it references.
Type: MetricCalculation object
Required: Yes
- Name
-
The name of the metric.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Required: Yes
- PositiveTrendIndicator
-
How an increase in the metric value should be interpreted. Valid values:
POSITIVE,NEUTRAL,NEGATIVE.Type: String
Valid Values:
POSITIVE | NEGATIVE | NEUTRALRequired: No
- Status
-
The publish status of the metric. Set to
PUBLISHEDto make the metric available for use in dashboards and reports, orSAVEDto keep it in draft state.Type: String
Valid Values:
PUBLISHED | SAVEDRequired: No
- Tags
-
The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }.
Type: String to string map
Map Entries: Maximum number of 50 items.
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
^(?!aws:)[\p{L}\p{Z}\p{N}_.:/=+\-@]*$Value Length Constraints: Maximum length of 256.
Required: No
- Unit
-
The display unit for the metric's data.
Type: String
Valid Values:
INTEGER | DOUBLE | PERCENT | SECONDSRequired: Yes
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"MetricArn": "string",
"MetricId": "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.
Errors
For information about the errors that are common to all actions, see Common Error Types.
- AccessDeniedException
-
You do not have sufficient permissions to perform this action.
HTTP Status Code: 403
- DuplicateResourceException
-
A resource with the specified name already exists.
HTTP Status Code: 409
- 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
- LimitExceededException
-
The allowed limit for the resource has been exceeded.
- Message
-
The message about the limit.
HTTP Status Code: 429
- 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 creates a custom metric that calculates the percentage of contacts handled within 60 seconds of being queued.
Sample Request
{
"Name": "example-metric",
"MetricCalculation": {
"CalculationComponents": [
{
"Alias": "M1",
"MetricName": "CONTACTS_HANDLED",
"MetricFilters": [
{
"MetricFilterKey": "QUEUE_TIME_MS",
"NumberCondition": {"Comparison": "LESSER_OR_EQUAL", "Values": [60.0]}
}
]
},
{
"Alias": "M2",
"MetricName": "CONTACTS_QUEUED"
}
],
"Calculation": "100 * SUM(M1) / SUM(M2)"
},
"Unit": "PERCENT",
"Status": "PUBLISHED",
"Description": "Percentage of contacts handled within 60 seconds.",
"PositiveTrendIndicator": "POSITIVE"
}
Sample Response
{
"MetricArn": "arn:aws:connect:us-west-2:123456789012:instance/12345678-1234-1234-1234-123456789012/metric/87654321-4321-4321-4321-210987654321",
"MetricId": "87654321-4321-4321-4321-210987654321"
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: