What is Real User Measurements (RUM)?
• Similar to website analytics products, RUM sends tracking beacons from your users' browsers to our
servers, and allows you to monitor performance of your site from your users' perspective.
When should I use Real User Measurements vs. Synthetic Monitoring?
Real User and Synthetic monitoring serve different purposes and complement each other. Synthetic
monitoring is great for detecting if your site is down, or establishing a baseline performance level, or
investigating issues whether at the page element level or at the network level. Real user monitoring helps
you get knowledge of your users' experience with your site. Real User Monitoring addresses several
questions, including:
• What is my end user experience like? Do most end users have an acceptable experience or a
frustrating one?
• I want to know my website performance with browsers my users are using.
• I want to know my website performance on the pages my users are going to. Synthetic
monitoring cannot cover all paths of my website.
• I want to know my website performance from the locations my users are coming from. Synthetic
monitoring does not have agents everywhere.
• I want to know my website performance from ISPs my users are connected to. Synthetic
monitoring checks from data centers on fast Internet nodes do not give a realistic picture of my
website performance as experienced by my users.
How do I get set up?
• Installing is a matter of adding a small piece of JavaScript code into your web page templates. You can
find the code to be added along with instructions inside the Web Beacon tab of the Real User console at
https://rum.ultrawpm.com.
What does the JavaScript code do?
• After the page is loaded, the code you add to your web pages will fetch and execute a small Javascript
file stored on a CDN. This code will retrieve web performance data from your user's browser, using the
Navigation Timing API. Then the collected data will be sent to our servers through a HTTP GET request
to https://rum-collector.ultrawpm.com/beacon... The response will have no content (HTTP status code
204).
• Also, the code binds to the browser's "window.error" event in order to capture runtime script errors. Since
we report all the data back to our servers one time at about one second after the browser's "onload" event
is fired, only JavaScript errors happening up to that time will be saved. We capture up to 5 error message
strings per measurement. Note that we make sure that if your page already binds to the "window.error"
event your original handler function is being called.
Will the Javascript tag add any latency to my page load time?
• The latency is minimal, and the impact happens after the page load, causing no effect to users.
What browsers support the navigation timing method?
• Chrome 6+, Firefox 7+, Internet Explorer 9+, Android Browser 4.0+, Opera 15+. You can find a full list of
compatible browsers here.
How do I find out if the tag is properly installed on my website?
• Once the tag is installed, go to the Live Feed tab of the Real User console. Then open a new browser
tab and point your browser to your website. Once that page is loaded you should see the measurement
appear on the Live Feed map. Data should appear within a few seconds. If not, make sure that the tag is
properly installed on your website using "View Page Source" from your browser. Remember that the RUM
code snippet should be copied entirely and inserted just before the closing </head> tag. Also, make sure
when you test that your browser supports navigation timing api (see previous question). To investigate
further, you can open your browser's Developer Tools and expand the network panel. In there you should
see 2 things related to RUM when you load your website's page: the beacon script "vercara.beacon.js"
downloaded by your page, and the call to our servers at https://rum-collector.ultrawpm.com/beacon...
This last call should return a HTTP status code 204 "No Content".
What data is being collected?
• We collect performance-related information (Time to First Byte, DNS lookup time, Time to DOM Ready,
Total Page load time, etc.), the current url, the referrer url, and JavaScript errors that happened until the
browser's "onload" event is triggered. We also collect object-level performance data
• We do not collect user's personal data or session information.
Can custom events be added?
• Yes, we support a feature called Perceived load time.
What does the page load time over time graph show? How is the data aggregated?
• The data we collect is aggregated every minute. We aggregate the page load time, time to first byte, and
time to DOM ready. We calculate different metrics that we display for every minute and every hour in our
main load time over time graph: average, min/max, Apdex score, load time distribution. All those are based
on the page load time.
Why are the Real User Page Load times different than synthetic Page Load times?
There are a number of factors that could explain that difference.
• First is the agent's location. Synthetic monitoring agents tend to be on high throughput networks
whereas real users mostly use slower connections (DSL, cable). Also, the geographical
distribution of those agents could impact the results.
• Second, the browsers used vary widely in a real user world whereas they are consistent in case of
synthetic monitoring.
Why are my hits #s so low?
• Since we are collecting only measurements done on browsers supporting the Navigation Timing API, there
are a number of samples that are not saved on our servers. Our goal is to collect accurate measurements
as opposed to all measurements. Also, we discard requests coming from our own synthetic monitoring
agents.
Why do I see gaps in the page hits and Apdex graphs that do not show in the page
load time graph?
• The page load time graph is designed to show trends in page load time over time. For periods with no
page hits, and therefore no page load time data, an interpolated line is shown spanning the time period.
Why are there no graphs displayed in Internet Explorer?
• Internet Explorer version 8 and earlier do not have native support for Scalable Vector Graphics (SVG),
which is required for Real User graphing. You can enable graphing in Internet Explorer by clicking the
'Install Google Chrome Frame' button under the Graphs tab of the Real User console and following the
installation instructions. Google Chrome Frame is a free plugin that adds SVG support to Internet Explorer
How long is my RUM data stored?
• The individual requests are stored for seven days.
• The minute-level aggregate data is stored for seven days.
• The hour-level aggregate data is stored for thirty days.
• The day-level aggregate data is stored indefinitely for now.
Is there an API I can use to retrieve my RUM data?
• Yes. Information about our APIs can be found here.
Can I get a daily report in my mailbox with my RUM data?
• Yes. From the Monitoring's Reports tab, you can create reports that contain your RUM data as a Time
Series graph. Reports can be sent daily, weekly or monthly.
How does pricing work?
• Saving Real User Measurement samples into our servers will deplete your account's monitoring unit
balance at a rate of 1 unit per 100 RUM samples.
• Our customers are encouraged to use Collection Sampling (a feature available within the app) in order
to control their monitoring units consumption by RUM. Collection Sampling works by saving only a
percentage of all incoming measurements into our servers. Typically, a website with a lot of traffic does not
need to save 100% of all RUM measurements in order to detect performance issues from real users. Here
are 2 examples:
- Day 1: Your website receives 100,000 visits. Out of those there will be 70,000 RUM measurements saved
into our servers (coming from compatible browsers and assuming a collection sampling set at 100%). For
that day, 700 monitoring units will be depleted from your account balance
- Day 2: Your website receives 40,000 visits. Out of those there will be 30,000 measurements coming from
compatible browsers. If the collection sampling is set at 50%, then (30,000 x 0.5) / 100 = 150 monitoring
unit will be depleted from your balance.