batchCreateRumMetricDefinitions method
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/RUMnamespace. 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.
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.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ServiceQuotaExceededException.
May throw ThrottlingException.
May throw ValidationException.
Parameter appMonitorName :
The name of the CloudWatch RUM app monitor that is to send the metrics.
Parameter destination :
The destination to send the metrics to. Valid values are
CloudWatch and Evidently. If you specify
Evidently, 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.
Parameter metricDefinitions :
An array of structures which define the metrics that you want to send.
Parameter destinationArn :
This parameter is required if Destination is
Evidently. If Destination is
CloudWatch, 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.
Implementation
Future<BatchCreateRumMetricDefinitionsResponse>
batchCreateRumMetricDefinitions({
required String appMonitorName,
required MetricDestination destination,
required List<MetricDefinitionRequest> metricDefinitions,
String? destinationArn,
}) async {
final $payload = <String, dynamic>{
'Destination': destination.value,
'MetricDefinitions': metricDefinitions,
if (destinationArn != null) 'DestinationArn': destinationArn,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/rummetrics/${Uri.encodeComponent(appMonitorName)}/metrics',
exceptionFnMap: _exceptionFns,
);
return BatchCreateRumMetricDefinitionsResponse.fromJson(response);
}