BatchCreateRumMetricDefinitions
Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.
By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.
In addition to these default metrics, you can choose to send extended metrics, custom metrics, or both.
-
Extended metrics let you send metrics with additional dimensions that aren't included in the default metrics. You can also send extended metrics to both Evidently and CloudWatch. The valid dimension names for the additional dimensions for extended metrics are
BrowserName
,CountryCode
,DeviceType
,FileType
,OSName
, andPageId
. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently. -
Custom metrics are metrics that you define. You can send custom metrics to CloudWatch. CloudWatch Evidently, or both. With custom metrics, you can use any metric name and namespace. To derive the metrics, you can use any custom events, built-in events, custom attributes, or default attributes.
You can't send custom metrics to the
AWS/RUM
namespace. You must send custom metrics to a custom namespace that you define. The namespace that you use can't start withAWS/
. CloudWatch RUM prependsRUM/CustomMetrics/
to the custom namespace that you define, so the final namespace for your metrics in CloudWatch isRUM/CustomMetrics/your-custom-namespace
.
The maximum number of metric definitions that you can specify in one
BatchCreateRumMetricDefinitions
operation is 200.
The maximum number of metric definitions that one destination can contain is 2000.
Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension
value counts as a custom metric. For more information, see
Amazon CloudWatch Pricing
You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.
If some metric definitions specified in a BatchCreateRumMetricDefinitions
operations are not valid,
those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.
Request Syntax
POST /rummetrics/AppMonitorName
/metrics HTTP/1.1
Content-type: application/json
{
"Destination": "string
",
"DestinationArn": "string
",
"MetricDefinitions": [
{
"DimensionKeys": {
"string
" : "string
"
},
"EventPattern": "string
",
"Name": "string
",
"Namespace": "string
",
"UnitLabel": "string
",
"ValueKey": "string
"
}
]
}
URI Request Parameters
The request uses the following URI parameters.
- AppMonitorName
-
The name of the CloudWatch RUM app monitor that is to send the metrics.
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
^(?!\.)[\.\-_#A-Za-z0-9]+$
Required: Yes
Request Body
The request accepts the following data in JSON format.
- Destination
-
The destination to send the metrics to. Valid values are
CloudWatch
andEvidently
. If you specifyEvidently
, you must also specify the Amazon Resource Name (ARN) of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.Type: String
Valid Values:
CloudWatch | Evidently
Required: Yes
- DestinationArn
-
This parameter is required if
Destination
isEvidently
. IfDestination
isCloudWatch
, do not use this parameter.This parameter specifies the ARN of the Evidently experiment that is to receive the metrics. You must have already defined this experiment as a valid destination. For more information, see PutRumMetricsDestination.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
Pattern:
arn:[^:]*:[^:]*:[^:]*:[^:]*:.*
Required: No
- MetricDefinitions
-
An array of structures which define the metrics that you want to send.
Type: Array of MetricDefinitionRequest objects
Required: Yes
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"Errors": [
{
"ErrorCode": "string",
"ErrorMessage": "string",
"MetricDefinition": {
"DimensionKeys": {
"string" : "string"
},
"EventPattern": "string",
"Name": "string",
"Namespace": "string",
"UnitLabel": "string",
"ValueKey": "string"
}
}
],
"MetricDefinitions": [
{
"DimensionKeys": {
"string" : "string"
},
"EventPattern": "string",
"MetricDefinitionId": "string",
"Name": "string",
"Namespace": "string",
"UnitLabel": "string",
"ValueKey": "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
-
An array of error objects, if the operation caused any errors.
Type: Array of BatchCreateRumMetricDefinitionsError objects
- MetricDefinitions
-
An array of structures that define the extended metrics.
Type: Array of MetricDefinition objects
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You don't have sufficient permissions to perform this action.
HTTP Status Code: 403
- ConflictException
-
This operation attempted to create a resource that already exists.
HTTP Status Code: 409
- InternalServerException
-
Internal service exception.
HTTP Status Code: 500
- ResourceNotFoundException
-
Resource not found.
HTTP Status Code: 404
- ServiceQuotaExceededException
-
This request exceeds a service quota.
HTTP Status Code: 402
- ThrottlingException
-
The request was throttled because of quota limits.
HTTP Status Code: 429
- ValidationException
-
One of the arguments for the request is not valid.
HTTP Status Code: 400
Examples
Example
The following example creates extended metrics with dimensions
Browser:Chrome
, Browser:Safari
, and
CountryCode=US
.
{ AppMonitorName: "app-monitor-name", Destination: "CloudWatch", MetricDefinitionId: "guid2", MetricDefinition: { Name: "NavigationToleratedTransaction", DimensionKeys: [{ Key: "metadata.browserName", Value: "BrowserName" },{ Key: "metadata.countryCode", Value: "CountryCode" }], EventPattern: '{ "event_type": ["com.amazon.rum.performance_navigation_event"], "metadata": { "browserName": [ "Chrome", "Safari" ], "countryCode": [ "US" ] }, "event_details": { "duration": [{ "numeric": [ ">=", 2000, "<", 8000 ] }] } }', UnitLabel: 'Count' } }
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: