/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cloudwatchrum; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.cloudwatchrum.model.*; /** * Interface for accessing CloudWatch RUM. *
* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.cloudwatchrum.AbstractAWSCloudWatchRUM} instead. *
**
* With Amazon CloudWatch RUM, you can perform real-user monitoring to collect client-side data about your web * application performance from actual user sessions in real time. The data collected includes page load times, * client-side errors, and user behavior. When you view this data, you can see it all aggregated together and also see * breakdowns by the browsers and devices that your customers use. *
** You can use the collected data to quickly identify and debug client-side performance issues. CloudWatch RUM helps you * visualize anomalies in your application performance and find relevant debugging data such as error messages, stack * traces, and user sessions. You can also use RUM to understand the range of end-user impact including the number of * users, geolocations, and browsers used. *
*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AWSCloudWatchRUM { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "rum"; /** ** 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 or custom metrics or both. *
*
* Extended metrics enable you to send metrics with additional dimensions not included in the default metrics. You
* can also send extended metrics to Evidently as well as CloudWatch. The valid dimension names for the additional
* dimensions for extended metrics are BrowserName
, CountryCode
, DeviceType
,
* FileType
, OSName
, and PageId
. 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 or to CloudWatch Evidently * or to both. With custom metrics, you can use any metric name and namespace, and 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 with AWS/
. CloudWatch RUM prepends
* RUM/CustomMetrics/
to the custom namespace that you define, so the final namespace for your metrics
* in CloudWatch is RUM/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.
*
* Removes the specified metrics from being sent to an extended metrics destination. *
*
* If some metric definition IDs specified in a BatchDeleteRumMetricDefinitions
operations are not
* valid, those metric definitions fail and return errors, but all valid metric definition IDs in the same operation
* are still deleted.
*
* The maximum number of metric definitions that you can specify in one BatchDeleteRumMetricDefinitions
* operation is 200.
*
* Retrieves the list of metrics and dimensions that a RUM app monitor is sending to a single destination. *
* * @param batchGetRumMetricDefinitionsRequest * @return Result of the BatchGetRumMetricDefinitions operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.BatchGetRumMetricDefinitions * @see AWS API Documentation */ BatchGetRumMetricDefinitionsResult batchGetRumMetricDefinitions(BatchGetRumMetricDefinitionsRequest batchGetRumMetricDefinitionsRequest); /** ** Creates a Amazon CloudWatch RUM app monitor, which collects telemetry data from your application and sends that * data to RUM. The data includes performance and reliability information such as page load time, client-side * errors, and user behavior. *
** You use this operation only to create a new app monitor. To update an existing app monitor, use UpdateAppMonitor instead. *
** After you create an app monitor, sign in to the CloudWatch RUM console to get the JavaScript code snippet to add * to your web application. For more information, see How * do I find a code snippet that I've already generated? *
* * @param createAppMonitorRequest * @return Result of the CreateAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ServiceQuotaExceededException * This request exceeds a service quota. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.CreateAppMonitor * @see AWS API * Documentation */ CreateAppMonitorResult createAppMonitor(CreateAppMonitorRequest createAppMonitorRequest); /** ** Deletes an existing app monitor. This immediately stops the collection of data. *
* * @param deleteAppMonitorRequest * @return Result of the DeleteAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.DeleteAppMonitor * @see AWS API * Documentation */ DeleteAppMonitorResult deleteAppMonitor(DeleteAppMonitorRequest deleteAppMonitorRequest); /** ** Deletes a destination for CloudWatch RUM extended metrics, so that the specified app monitor stops sending * extended metrics to that destination. *
* * @param deleteRumMetricsDestinationRequest * @return Result of the DeleteRumMetricsDestination operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.DeleteRumMetricsDestination * @see AWS API Documentation */ DeleteRumMetricsDestinationResult deleteRumMetricsDestination(DeleteRumMetricsDestinationRequest deleteRumMetricsDestinationRequest); /** ** Retrieves the complete configuration information for one app monitor. *
* * @param getAppMonitorRequest * @return Result of the GetAppMonitor operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.GetAppMonitor * @see AWS API * Documentation */ GetAppMonitorResult getAppMonitor(GetAppMonitorRequest getAppMonitorRequest); /** ** Retrieves the raw performance events that RUM has collected from your web application, so that you can do your * own processing or analysis of this data. *
* * @param getAppMonitorDataRequest * @return Result of the GetAppMonitorData operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.GetAppMonitorData * @see AWS API * Documentation */ GetAppMonitorDataResult getAppMonitorData(GetAppMonitorDataRequest getAppMonitorDataRequest); /** ** Returns a list of the Amazon CloudWatch RUM app monitors in the account. *
* * @param listAppMonitorsRequest * @return Result of the ListAppMonitors operation returned by the service. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.ListAppMonitors * @see AWS API * Documentation */ ListAppMonitorsResult listAppMonitors(ListAppMonitorsRequest listAppMonitorsRequest); /** ** Returns a list of destinations that you have created to receive RUM extended metrics, for the specified app * monitor. *
** For more information about extended metrics, see AddRumMetrics. *
* * @param listRumMetricsDestinationsRequest * @return Result of the ListRumMetricsDestinations operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.ListRumMetricsDestinations * @see AWS * API Documentation */ ListRumMetricsDestinationsResult listRumMetricsDestinations(ListRumMetricsDestinationsRequest listRumMetricsDestinationsRequest); /** ** Displays the tags associated with a CloudWatch RUM resource. *
* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.ListTagsForResource * @see AWS API * Documentation */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** *
* Sends telemetry events about your application performance and user behavior to CloudWatch RUM. The code snippet
* that RUM generates for you to add to your application includes PutRumEvents
operations to send this
* data to RUM.
*
* Each PutRumEvents
operation can send a batch of events from one user session.
*
* Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics * to CloudWatch or to a CloudWatch Evidently experiment. *
** For more information about extended metrics, see BatchCreateRumMetricDefinitions. *
* * @param putRumMetricsDestinationRequest * @return Result of the PutRumMetricsDestination operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.PutRumMetricsDestination * @see AWS * API Documentation */ PutRumMetricsDestinationResult putRumMetricsDestination(PutRumMetricsDestinationRequest putRumMetricsDestinationRequest); /** ** Assigns one or more tags (key-value pairs) to the specified CloudWatch RUM resource. Currently, the only * resources that can be tagged app monitors. *
** Tags can help you organize and categorize your resources. You can also use them to scope user permissions by * granting a user permission to access or change only resources with certain tag values. *
** Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of * characters. *
*
* You can use the TagResource
action with a resource that already has tags. If you specify a new tag
* key for the resource, this tag is appended to the list of tags associated with the alarm. If you specify a tag
* key that is already associated with the resource, the new tag value that you specify replaces the previous value
* for that tag.
*
* You can associate as many as 50 tags with a resource. *
** For more information, see Tagging Amazon * Web Services resources. *
* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.TagResource * @see AWS API * Documentation */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** ** Removes one or more tags from the specified resource. *
* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.UntagResource * @see AWS API * Documentation */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** ** Updates the configuration of an existing app monitor. When you use this operation, only the parts of the app * monitor configuration that you specify in this operation are changed. For any parameters that you omit, the * existing values are kept. *
** You can't use this operation to change the tags of an existing app monitor. To change the tags of an existing app * monitor, use TagResource. *
** To create a new app monitor, use CreateAppMonitor. *
** After you update an app monitor, sign in to the CloudWatch RUM console to get the updated JavaScript code snippet * to add to your web application. For more information, see How * do I find a code snippet that I've already generated? *
* * @param updateAppMonitorRequest * @return Result of the UpdateAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.UpdateAppMonitor * @see AWS API * Documentation */ UpdateAppMonitorResult updateAppMonitor(UpdateAppMonitorRequest updateAppMonitorRequest); /** ** Modifies one existing metric definition for CloudWatch RUM extended metrics. For more information about extended * metrics, see BatchCreateRumMetricsDefinitions. *
* * @param updateRumMetricDefinitionRequest * @return Result of the UpdateRumMetricDefinition operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ServiceQuotaExceededException * This request exceeds a service quota. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.UpdateRumMetricDefinition * @see AWS * API Documentation */ UpdateRumMetricDefinitionResult updateRumMetricDefinition(UpdateRumMetricDefinitionRequest updateRumMetricDefinitionRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. ** Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }