CfnAppMonitorPropsMixin
- class aws_cdk.mixins_preview.aws_rum.mixins.CfnAppMonitorPropsMixin(props, *, strategy=None)
Bases:
MixinCreates a CloudWatch RUM app monitor, which you can use to collect telemetry data from your application and send it to CloudWatch RUM.
The data includes performance and reliability information such as page load time, client-side errors, and user behavior.
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?
- See:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rum-appmonitor.html
- CloudformationResource:
AWS::RUM::AppMonitor
- Mixin:
true
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview import mixins from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins cfn_app_monitor_props_mixin = rum_mixins.CfnAppMonitorPropsMixin(rum_mixins.CfnAppMonitorMixinProps( app_monitor_configuration=rum_mixins.CfnAppMonitorPropsMixin.AppMonitorConfigurationProperty( allow_cookies=False, enable_xRay=False, excluded_pages=["excludedPages"], favorite_pages=["favoritePages"], guest_role_arn="guestRoleArn", identity_pool_id="identityPoolId", included_pages=["includedPages"], metric_destinations=[rum_mixins.CfnAppMonitorPropsMixin.MetricDestinationProperty( destination="destination", destination_arn="destinationArn", iam_role_arn="iamRoleArn", metric_definitions=[rum_mixins.CfnAppMonitorPropsMixin.MetricDefinitionProperty( dimension_keys={ "dimension_keys_key": "dimensionKeys" }, event_pattern="eventPattern", name="name", namespace="namespace", unit_label="unitLabel", value_key="valueKey" )] )], session_sample_rate=123, telemetries=["telemetries"] ), custom_events=rum_mixins.CfnAppMonitorPropsMixin.CustomEventsProperty( status="status" ), cw_log_enabled=False, deobfuscation_configuration=rum_mixins.CfnAppMonitorPropsMixin.DeobfuscationConfigurationProperty( java_script_source_maps=rum_mixins.CfnAppMonitorPropsMixin.JavaScriptSourceMapsProperty( s3_uri="s3Uri", status="status" ) ), domain="domain", domain_list=["domainList"], name="name", platform="platform", resource_policy=rum_mixins.CfnAppMonitorPropsMixin.ResourcePolicyProperty( policy_document="policyDocument", policy_revision_id="policyRevisionId" ), tags=[CfnTag( key="key", value="value" )] ), strategy=mixins.PropertyMergeStrategy.OVERRIDE )
Create a mixin to apply properties to
AWS::RUM::AppMonitor.- Parameters:
props (
Union[CfnAppMonitorMixinProps,Dict[str,Any]]) – L1 properties to apply.strategy (
Optional[PropertyMergeStrategy]) – (experimental) Strategy for merging nested properties. Default: - PropertyMergeStrategy.MERGE
Methods
- apply_to(construct)
Apply the mixin properties to the construct.
- Parameters:
construct (
IConstruct)- Return type:
- supports(construct)
Check if this mixin supports the given construct.
- Parameters:
construct (
IConstruct)- Return type:
bool
Attributes
- CFN_PROPERTY_KEYS = ['appMonitorConfiguration', 'customEvents', 'cwLogEnabled', 'deobfuscationConfiguration', 'domain', 'domainList', 'name', 'platform', 'resourcePolicy', 'tags']
Static Methods
- classmethod is_mixin(x)
(experimental) Checks if
xis a Mixin.- Parameters:
x (
Any) – Any object.- Return type:
bool- Returns:
true if
xis an object created from a class which extendsMixin.- Stability:
experimental
AppMonitorConfigurationProperty
- class CfnAppMonitorPropsMixin.AppMonitorConfigurationProperty(*, allow_cookies=None, enable_x_ray=None, excluded_pages=None, favorite_pages=None, guest_role_arn=None, identity_pool_id=None, included_pages=None, metric_destinations=None, session_sample_rate=None, telemetries=None)
Bases:
objectThis structure contains much of the configuration data for the app monitor.
- Parameters:
allow_cookies (
Union[bool,IResolvable,None]) – If you set this totrue, the CloudWatch RUM web client sets two cookies, a session cookie and a user cookie. The cookies allow the CloudWatch RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events. Cookies are stored in the top-level domain of the current page.enable_x_ray (
Union[bool,IResolvable,None]) – If you set this totrue, CloudWatch RUM sends client-side traces to X-Ray for each sampled session. You can then see traces and segments from these user sessions in the RUM dashboard and the CloudWatch ServiceLens console. For more information, see What is AWS X-Ray ?excluded_pages (
Optional[Sequence[str]]) – A list of URLs in your website or application to exclude from RUM data collection. You can’t include bothExcludedPagesandIncludedPagesin the same app monitor.favorite_pages (
Optional[Sequence[str]]) – A list of pages in your application that are to be displayed with a “favorite” icon in the CloudWatch RUM console.guest_role_arn (
Optional[str]) – The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM.identity_pool_id (
Optional[str]) – The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM.included_pages (
Optional[Sequence[str]]) – If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can’t include bothExcludedPagesandIncludedPagesin the same app monitor.metric_destinations (
Union[IResolvable,Sequence[Union[IResolvable,MetricDestinationProperty,Dict[str,Any]]],None]) – An array of structures that each define a destination that this app monitor will send extended metrics to.session_sample_rate (
Union[int,float,None]) – Specifies the portion of user sessions to use for CloudWatch RUM data collection. Choosing a higher portion gives you more data but also incurs more costs. The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled. If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.telemetries (
Optional[Sequence[str]]) – An array that lists the types of telemetry data that this app monitor is to collect. -errorsindicates that RUM collects data about unhandled JavaScript errors raised by your application. -performanceindicates that RUM collects performance data about how your application and its resources are loaded and rendered. This includes Core Web Vitals. -httpindicates that RUM collects data about HTTP errors thrown by your application.
- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins app_monitor_configuration_property = rum_mixins.CfnAppMonitorPropsMixin.AppMonitorConfigurationProperty( allow_cookies=False, enable_xRay=False, excluded_pages=["excludedPages"], favorite_pages=["favoritePages"], guest_role_arn="guestRoleArn", identity_pool_id="identityPoolId", included_pages=["includedPages"], metric_destinations=[rum_mixins.CfnAppMonitorPropsMixin.MetricDestinationProperty( destination="destination", destination_arn="destinationArn", iam_role_arn="iamRoleArn", metric_definitions=[rum_mixins.CfnAppMonitorPropsMixin.MetricDefinitionProperty( dimension_keys={ "dimension_keys_key": "dimensionKeys" }, event_pattern="eventPattern", name="name", namespace="namespace", unit_label="unitLabel", value_key="valueKey" )] )], session_sample_rate=123, telemetries=["telemetries"] )
Attributes
- allow_cookies
If you set this to
true, the CloudWatch RUM web client sets two cookies, a session cookie and a user cookie.The cookies allow the CloudWatch RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events. Cookies are stored in the top-level domain of the current page.
- enable_x_ray
If you set this to
true, CloudWatch RUM sends client-side traces to X-Ray for each sampled session.You can then see traces and segments from these user sessions in the RUM dashboard and the CloudWatch ServiceLens console. For more information, see What is AWS X-Ray ?
- excluded_pages
A list of URLs in your website or application to exclude from RUM data collection.
You can’t include both
ExcludedPagesandIncludedPagesin the same app monitor.
- favorite_pages
A list of pages in your application that are to be displayed with a “favorite” icon in the CloudWatch RUM console.
- guest_role_arn
The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM.
- identity_pool_id
The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to CloudWatch RUM.
- included_pages
If this app monitor is to collect data from only certain pages in your application, this structure lists those pages.
You can’t include both
ExcludedPagesandIncludedPagesin the same app monitor.
- metric_destinations
An array of structures that each define a destination that this app monitor will send extended metrics to.
- session_sample_rate
Specifies the portion of user sessions to use for CloudWatch RUM data collection.
Choosing a higher portion gives you more data but also incurs more costs.
The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled.
If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.
- telemetries
An array that lists the types of telemetry data that this app monitor is to collect.
errorsindicates that RUM collects data about unhandled JavaScript errors raised by your application.performanceindicates that RUM collects performance data about how your application and its resources are loaded and rendered. This includes Core Web Vitals.httpindicates that RUM collects data about HTTP errors thrown by your application.
CustomEventsProperty
- class CfnAppMonitorPropsMixin.CustomEventsProperty(*, status=None)
Bases:
objectThis structure specifies whether this app monitor allows the web client to define and send custom events.
- Parameters:
status (
Optional[str]) – Set this toENABLEDto allow the web client to send custom events for this app monitor. Valid values areENABLEDandDISABLED.- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins custom_events_property = rum_mixins.CfnAppMonitorPropsMixin.CustomEventsProperty( status="status" )
Attributes
- status
Set this to
ENABLEDto allow the web client to send custom events for this app monitor.Valid values are
ENABLEDandDISABLED.
DeobfuscationConfigurationProperty
- class CfnAppMonitorPropsMixin.DeobfuscationConfigurationProperty(*, java_script_source_maps=None)
Bases:
objectA structure that contains the configuration for how an app monitor can deobfuscate stack traces.
- Parameters:
java_script_source_maps (
Union[IResolvable,JavaScriptSourceMapsProperty,Dict[str,Any],None]) – A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps.- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins deobfuscation_configuration_property = rum_mixins.CfnAppMonitorPropsMixin.DeobfuscationConfigurationProperty( java_script_source_maps=rum_mixins.CfnAppMonitorPropsMixin.JavaScriptSourceMapsProperty( s3_uri="s3Uri", status="status" ) )
Attributes
- java_script_source_maps
A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps.
JavaScriptSourceMapsProperty
- class CfnAppMonitorPropsMixin.JavaScriptSourceMapsProperty(*, s3_uri=None, status=None)
Bases:
objectA structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps.
- Parameters:
s3_uri (
Optional[str]) – The S3Uri of the bucket or folder that stores the source map files. It is required if status is ENABLED.status (
Optional[str]) – Specifies whether JavaScript error stack traces should be unminified for this app monitor. The default is for JavaScript error stack trace unminification to beDISABLED.
- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins java_script_source_maps_property = rum_mixins.CfnAppMonitorPropsMixin.JavaScriptSourceMapsProperty( s3_uri="s3Uri", status="status" )
Attributes
- s3_uri
The S3Uri of the bucket or folder that stores the source map files.
It is required if status is ENABLED.
- status
Specifies whether JavaScript error stack traces should be unminified for this app monitor.
The default is for JavaScript error stack trace unminification to be
DISABLED.
MetricDefinitionProperty
- class CfnAppMonitorPropsMixin.MetricDefinitionProperty(*, dimension_keys=None, event_pattern=None, name=None, namespace=None, unit_label=None, value_key=None)
Bases:
objectSpecifies one custom metric or extended metric that you want the 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.
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, andPageId. For more information, see Extended metrics .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/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*.For information about syntax rules for specifying custom metrics and extended metrics, see MetridDefinitionRequest in the CloudWatch RUM API Reference .
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.
If some metric definitions that you specify are not valid, then the operation will not modify any metric definitions even if other metric definitions specified are valid.
- Parameters:
dimension_keys (
Union[Mapping[str,str],IResolvable,None]) – This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch . The value of this field is used only if the metric destination isCloudWatch. If the metric destination isEvidently, the value ofDimensionKeysis ignored.event_pattern (
Optional[str]) – The pattern that defines the metric. RUM checks events that happen in a user’s session against the pattern, and events that match the pattern are sent to the metric destination. If the metrics destination isCloudWatchand the event also matches a value inDimensionKeys, then the metric is published with the specified dimensions.name (
Optional[str]) – The name of the metric that is defined in this structure.namespace (
Optional[str]) – If you are creating a custom metric instead of an extended metrics, use this parameter to define the metric namespace for that custom metric. Do not specify this parameter if you are creating an extended metric. You can’t use any string that starts withAWS/for your namespace.unit_label (
Optional[str]) – Use this field only if you are sending this metric to CloudWatch . It defines the CloudWatch metric unit that this metric is measured in.value_key (
Optional[str]) – The field within the event object that the metric value is sourced from.
- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins metric_definition_property = rum_mixins.CfnAppMonitorPropsMixin.MetricDefinitionProperty( dimension_keys={ "dimension_keys_key": "dimensionKeys" }, event_pattern="eventPattern", name="name", namespace="namespace", unit_label="unitLabel", value_key="valueKey" )
Attributes
- dimension_keys
This field is a map of field paths to dimension names.
It defines the dimensions to associate with this metric in CloudWatch . The value of this field is used only if the metric destination is
CloudWatch. If the metric destination isEvidently, the value ofDimensionKeysis ignored.
- event_pattern
The pattern that defines the metric.
RUM checks events that happen in a user’s session against the pattern, and events that match the pattern are sent to the metric destination.
If the metrics destination is
CloudWatchand the event also matches a value inDimensionKeys, then the metric is published with the specified dimensions.
- name
The name of the metric that is defined in this structure.
- namespace
If you are creating a custom metric instead of an extended metrics, use this parameter to define the metric namespace for that custom metric.
Do not specify this parameter if you are creating an extended metric.
You can’t use any string that starts with
AWS/for your namespace.
- unit_label
Use this field only if you are sending this metric to CloudWatch .
It defines the CloudWatch metric unit that this metric is measured in.
- value_key
The field within the event object that the metric value is sourced from.
MetricDestinationProperty
- class CfnAppMonitorPropsMixin.MetricDestinationProperty(*, destination=None, destination_arn=None, iam_role_arn=None, metric_definitions=None)
Bases:
objectCreates 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 Extended metrics that you can send to CloudWatch and CloudWatch Evidently .
- Parameters:
destination (
Optional[str]) – Defines the destination to send the metrics to. Valid values areCloudWatchandEvidently. If you specifyEvidently, you must also specify the ARN of the CloudWatch Evidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.destination_arn (
Optional[str]) – Use this parameter only ifDestinationisEvidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.iam_role_arn (
Optional[str]) – This parameter is required ifDestinationisEvidently. IfDestinationisCloudWatch, do not use this parameter. This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.metric_definitions (
Union[IResolvable,Sequence[Union[IResolvable,MetricDefinitionProperty,Dict[str,Any]]],None]) – An array of structures which define the metrics that you want to send.
- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins metric_destination_property = rum_mixins.CfnAppMonitorPropsMixin.MetricDestinationProperty( destination="destination", destination_arn="destinationArn", iam_role_arn="iamRoleArn", metric_definitions=[rum_mixins.CfnAppMonitorPropsMixin.MetricDefinitionProperty( dimension_keys={ "dimension_keys_key": "dimensionKeys" }, event_pattern="eventPattern", name="name", namespace="namespace", unit_label="unitLabel", value_key="valueKey" )] )
Attributes
- destination
Defines the destination to send the metrics to.
Valid values are
CloudWatchandEvidently. If you specifyEvidently, you must also specify the ARN of the CloudWatch Evidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.
- destination_arn
Use this parameter only if
DestinationisEvidently.This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.
- iam_role_arn
This parameter is required if
DestinationisEvidently. IfDestinationisCloudWatch, do not use this parameter.This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.
- metric_definitions
An array of structures which define the metrics that you want to send.
ResourcePolicyProperty
- class CfnAppMonitorPropsMixin.ResourcePolicyProperty(*, policy_document=None, policy_revision_id=None)
Bases:
objectUse this structure to assign a resource-based policy to a CloudWatch RUM app monitor to control access to it.
Each app monitor can have one resource-based policy. The maximum size of the policy is 4 KB. To learn more about using resource policies with RUM, see Using resource-based policies with CloudWatch RUM .
- Parameters:
policy_document (
Optional[str]) –The JSON to use as the resource policy. The document can be up to 4 KB in size. For more information about the contents and syntax for this policy, see Using resource-based policies with CloudWatch RUM .
policy_revision_id (
Optional[str]) – A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. When you assign a policy revision ID, then later requests about that policy will be rejected with anInvalidPolicyRevisionIdExceptionerror if they don’t provide the correct current revision ID.
- See:
- ExampleMetadata:
fixture=_generated
Example:
# The code below shows an example of how to instantiate this type. # The values are placeholders you should change. from aws_cdk.mixins_preview.aws_rum import mixins as rum_mixins resource_policy_property = rum_mixins.CfnAppMonitorPropsMixin.ResourcePolicyProperty( policy_document="policyDocument", policy_revision_id="policyRevisionId" )
Attributes
- policy_document
The JSON to use as the resource policy.
The document can be up to 4 KB in size. For more information about the contents and syntax for this policy, see Using resource-based policies with CloudWatch RUM .
- policy_revision_id
A string value that you can use to conditionally update your policy.
You can provide the revision ID of your existing policy to make mutating requests against that policy.
When you assign a policy revision ID, then later requests about that policy will be rejected with an
InvalidPolicyRevisionIdExceptionerror if they don’t provide the correct current revision ID.