{"id":59979,"date":"2024-01-10T17:53:56","date_gmt":"2024-01-10T12:23:56","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=59979"},"modified":"2024-01-16T18:03:44","modified_gmt":"2024-01-16T12:33:44","slug":"aws-rum-implementation","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/aws-rum-implementation\/","title":{"rendered":"AWS RUM Implementation"},"content":{"rendered":"<h3><b>Getting started with AWS RUM<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">In today&#8217;s world of Application and website usage, almost everyone is using some or other application or website, so it becomes essential for an organization to understand how the application\/website is being used at the end user end, what improvisation that can be done to improve end-user experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Real User Monitoring (<\/span><b>RUM<\/b><span style=\"font-weight: 400;\">) in AWS (Amazon Web Services) is implemented to gather insights into how real users interact with and experience your website or application. This approach provides valuable data to help optimize and improve user satisfaction.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With CloudWatch RUM, you can perform real user monitoring to collect and view client-side data about your web application performance from actual user sessions in near real-time. The data that you can visualize and analyze includes page load times, client-side errors, and user behavior. When you view this data, you can see it all aggregated together and breakdowns by the browsers and devices your customers use.<\/span><\/p>\n<h3><b>Benefits of AWS RUM<\/b><\/h3>\n<p><b>User-Centric Monitorin<\/b><span style=\"font-weight: 400;\">g: RUM provides a user-centric perspective of website performance. You see how real users experience your site, allowing you to address issues that directly impact them.<\/span><\/p>\n<p><b>Identify Performance Issues<\/b><span style=\"font-weight: 400;\">: RUM reveals performance bottlenecks, slow-loading pages, and errors in real-time. This information allows you to quickly address issues, leading to better user experiences.<\/span><\/p>\n<p><b>Prioritize Improvements<\/b><span style=\"font-weight: 400;\">: RUM data helps you prioritize improvements based on what matters most to users. You can focus on the critical user flows and interactions.<\/span><\/p>\n<p><b>Data-Driven Decision Making<\/b><span style=\"font-weight: 400;\">: RUM provides quantitative data for decision-making. You can use this data to validate the impact of changes and make informed decisions about optimizations.<\/span><\/p>\n<p><b>Enhanced User Satisfaction<\/b><span style=\"font-weight: 400;\">: By proactively addressing performance issues, you can improve user satisfaction, reduce bounce rates, and increase user engagement.<\/span><\/p>\n<p><b>Continuous Optimization<\/b><span style=\"font-weight: 400;\">: RUM facilitates continuous performance optimization. Regular monitoring allows you to keep the website running smoothly even as traffic and user patterns change.<\/span><\/p>\n<p><b>Prevent Revenue Loss<\/b><span style=\"font-weight: 400;\">: Faster, error-free websites often lead to better conversion rates, preventing revenue loss due to poor user experiences.<\/span><\/p>\n<p><b>Security and Privacy<\/b><span style=\"font-weight: 400;\">: While benefiting the website, ensure that RUM implementations respect user privacy and comply with applicable data protection regulations.<\/span><\/p>\n<h3><b>Data Retention in AWS RUM<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">End user data that you collect for CloudWatch RUM is retained for 30 days and then automatically deleted. If you want to keep the RUM events longer, you can have the app monitor send copies of the events to CloudWatch Logs in your account. Then, you can adjust the retention period for that log group.<\/span><\/p>\n<h3><b>Usage of AWS RUM<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">To use RUM, you create an app monitor and provide some information. RUM generates a JavaScript snippet for you to paste into your application. The snippet pulls in the RUM web client code. The RUM web client captures data from a percentage of your application&#8217;s user sessions, which is displayed in a pre-built dashboard. You can specify what percentage of user sessions to gather data from<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><b>Performance Consideration of AWS RUM<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><b>Load performance impact<\/b><span style=\"font-weight: 400;\">\u2014 <\/span><span style=\"font-weight: 400;\">The CloudWatch RUM web client can be installed in your web application as a JavaScript module or loaded into your web application asynchronously from a content delivery network (CDN). It does not block the application\u2019s load process. CloudWatch RUM is designed for there to be no perceptible impact on the application\u2019s load time.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Runtime impact<\/b><span style=\"font-weight: 400;\">\u2014 <\/span><span style=\"font-weight: 400;\">The RUM web client performs processing to record and dispatch RUM data to the CloudWatch RUM service. Because events are infrequent and the amount of processing is small, CloudWatch RUM is designed for there to be no detectable impact on the application\u2019s performance<\/span><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Network impac<\/b><span style=\"font-weight: 400;\">t\u2014 <\/span><span style=\"font-weight: 400;\">The RUM web client periodically sends data to the CloudWatch RUM service. Data is dispatched at regular intervals while the application is running, and also immediately before the browser unloads the application. Data sent immediately before the browser unloads the application are sent as beacons, which are designed to have no detectable impact on the application\u2019s unload tim<\/span><span style=\"font-weight: 400;\">e.<\/span><\/li>\n<\/ul>\n<h3><b>How Data is Collected<\/b><\/h3>\n<ol>\n<li><span style=\"font-weight: 400;\">As users visit your website, the JavaScript\/HTML code collects data and sends it to the RUM tool&#8217;s server or AWS CloudWatch, depending on your choice.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">This data can include page load times, browser details, network latency, user interactions (clicks, form submissions), errors encountered, and more.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Configure which data you want to collect and monitor. Dashboards are available\u00a0 to display the collected RUM data. This allows you to gain insights into user experience trends and issues.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Analyze data to identify performance bottlenecks, errors, and areas for improvement.<\/span><\/li>\n<\/ol>\n<h3><b>Step to configure RUM Monitoring over AWS<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>Step 1:<\/strong> Click on Add Monitor<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 2:<\/strong> Provide a App monitor name, this cannot be changed once created and is solely for the user perspective and can be anything, including letters, numbers, or these special characters . &#8211; _ \/ #. Spaces are not permitted.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59972 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/1.png\" alt=\"\" width=\"707\" height=\"133\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/1.png 707w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/1-300x56.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/1-624x117.png 624w\" sizes=\"(max-width: 707px) 100vw, 707px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 3:<\/strong> Provide the Application domain name on which the RUM is to be setup; this domain should be top-level domain like google.com as the domain name will be able to monitor mail.google.com, photos.google.com etc; the only condition is to include sub-domains option as selected\u00a0 but if we put domain name as mail.google.com it will be able to monitor only mail.google.com and not any other domain<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 4:<\/strong> Selecting\u00a0 RUM data collection<\/span><\/p>\n<h3><strong>Data plugins to install in the RUM tracker<\/strong><\/h3>\n<p>Available plugins:<\/p>\n<p><span style=\"font-weight: 400;\"><strong>Performance telemetry<\/strong> &#8211; The RUM Agent will record timing data about how your web application and its resources are loaded and rendered. This includes Core Web Vitals. RUM will use this telemetry to give you insights into how users experience your application.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">JavaScript errors &#8211; The RUM Web Client will record unhandled exceptions your web application raises.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>HTTP errors<\/strong> &#8211; The RUM Web Client will record HTTP errors thrown by your web application.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We can have other custom events as well as accept pre-defined events and reject other types of events by your application.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59973 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/2.png\" alt=\"\" width=\"701\" height=\"281\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/2.png 701w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/2-300x120.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/2-624x250.png 624w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 5:<\/strong> CloudWatch RUM Web Client to set cookies in the user\u2019s browser. If this option is not selected, RUM will not set cookies, and RUM will not be able to aggregate data based on users or sessions, or provide user journey page sequences. You will still be able to see error information and performance information aggregated by page.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59974 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/3.png\" alt=\"\" width=\"709\" height=\"97\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/3.png 709w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/3-300x41.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/3-624x85.png 624w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 6:<\/strong> Select the Percentage of Sample sessions we want to collect and analyze.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59975 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/4.png\" alt=\"\" width=\"342\" height=\"129\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/4.png 342w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/4-300x113.png 300w\" sizes=\"(max-width: 342px) 100vw, 342px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 7:<\/strong> Storage of application telemetry data in CloudWatch Logs account &#8211; The name of the log group created will be \/aws\/vendedlogs\/RUMService_&lt;Name&gt;+&lt;first 8 digits of app monitor ID&gt;<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59976 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/5.png\" alt=\"\" width=\"502\" height=\"109\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/5.png 502w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/5-300x65.png 300w\" sizes=\"(max-width: 502px) 100vw, 502px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 8:<\/strong> Select type of authorization that we would like to use so that the script can have data stored over RUM.<\/span><\/p>\n<h3><strong>Types of Authorization are mentioned below<\/strong><\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59977 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/6.png\" alt=\"\" width=\"700\" height=\"346\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/6.png 700w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/6-300x148.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/6-624x308.png 624w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Step 9:<\/strong> Configuring pages from which we need data, We can select pages that we need data from. There are 3 options that are available for this.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">All Pages, Include Pages, Exclude Pages.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-59978 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/7.png\" alt=\"\" width=\"701\" height=\"132\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2024\/01\/7.png 701w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/7-300x56.png 300w, \/blog\/wp-ttn-blog\/uploads\/2024\/01\/7-624x118.png 624w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">We are done with the RUM configuration over AWS, and we will start receiving data over RUM whenever there is sufficient usage of the Website\/Web Application.\u00a0<\/span><\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>Getting started with AWS RUM In today&#8217;s world of Application and website usage, almost everyone is using some or other application or website, so it becomes essential for an organization to understand how the application\/website is being used at the end user end, what improvisation that can be done to improve end-user experience. Real User [&hellip;]<\/p>\n","protected":false},"author":1705,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":54},"categories":[4682],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/59979"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1705"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=59979"}],"version-history":[{"count":2,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/59979\/revisions"}],"predecessor-version":[{"id":60082,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/59979\/revisions\/60082"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=59979"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=59979"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=59979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}