Edge Pulse
Edge Pulse is an Edge Analytics product based on the market-leading Real User Monitoring (RUM) solution that enables communication between your content and your customer by collecting navigation, availability, latency, and bandwidth information. In addition to collecting information, Edge Pulse uses it to enhance the user experience, ensuring efficient content delivery.
1. What RUM is
RUM is the acronym used for the concept of Real User Monitoring. In other words, RUM is a monitoring model that captures end-user data with the goal of explaining how your users are being impacted by the availability and efficiency of your content delivery.
This is a passive way to monitor the user device in action. It provides insight into a large number of issues, including front-end browser, back-end database, server-related issues and how end-users experience them.
2. How it works
Edge Pulse collects user browsing data and metrics on availability, latency, and throughput. To monitor the page, you must insert the Edge Pulse JavaScript tag. This script respects the protocol in use (http/https), is fully asynchronous and does not interfere with the loading process or the internal structure of the delivered content. In addition, each test collects metrics for only 3 addresses of our Edge Network at a time, in a 30 minute interval per user, not burdening the client with repetitions.
The tests are done in a continuous and diversified way and cover all possible routes which that user has to get the content. After the data collection, the results are sent to the Azion’s processing servers.
Furthermore, the UUID4 algorithm is used to better control cases of successes and failures. To control and handle Edge Pulse data, we use the local storage of the browser.
The Edge Pulse tracking respects the following settings of the user’s browser:
Value | Behavior of Edge Pulse |
---|---|
navigator.doNotTrack = ‘1’ | If the tracking has never been allowed and, as a result, Edge Pluse has never used the local storage, then an identifier code will be generated for each visit that the user makes on the site. If it is configured as “1”, but it has been tracked before, the previous identifier is deleted and a new one is generated. |
navigator.doNotTrack <> ‘1’ | When a value is not “1”, it means that Edge Pulse will track. Thus, the same identifier will be used for each visit of an user; |
3. How to set up
To monitor the page, you need to insert the Edge Pulse JavaScript tag.
Edge Pulse is available to all customers. To start using it, follow the steps below:
- Go to Real-Time Manager;
- Access Edge Analytics > Edge Pulse, on the left side menu;
- Click on Copy to Clipboard to copy the tag you want: Default Tag or Pre-loading tag.
You must add the javascript tag available on the product page for Edge Pulse to start collecting metrics. Action required for each page you want to monitor.
The execution is started after the user’s browser has loaded the page. The tag can be published manually or using tag management systems available on the market. Check a description of the available tags, as follows.
Tag | Descrição |
---|---|
Default Tag | Place this tag in the HTML of the pages you want to collect data from. You must place it before the closing BODY tag. This script waits until the loading event is complete before downloading and running the RUM Client, ensuring that the loading event is not interrupted and does not affect the user experience. |
Pre-loading tag | f you’re using Content Security Policy settings preventing the use of inline JavaScript then place this tag just before the enclosing BODY tag. This script executes before the load event has fired. |
4. Collected Data
Edge Pulse collects information from the Resolver used for DNS resolution, PoP/Edge tested and the user’s anonymous network and this data is used to make decisions regarding user routing.
In addition, we provide user experience and navigation data via Real-Time Events, as listed in the table below:
Variable | Description |
---|---|
$hostname | Hostname of the current URL. |
$locationHref | It returns the complete URL of the current page. |
$navigation.contentDownload | Time used to download the content. |
$navigation.dns | DNS resolution time. |
$navigation.networkDuration | Duration without query browser waiting. |
$navigation.PageLoadTime | Time from the start of navigation to the full page load. |
$navigation.redirectCount | It returns the number of redirects since the last navigation without redirection in the context of the current navigation. |
$navigation.renderTime | Time the browser was rendered after browsing. |
$navigation.ssl | Standard protocol used to maintain a secure traffic connection. |
$navigation.tcp | Internet protocol that returns the data that makes up the page. |
$navigation.ttfb | Time until the arrival of the first byte of the requested page. |
$navigation.type | It returns the type of navigation without redirection. |
$navigation.typeBackForward | Type of navigation through the session history. |
$navigation.typeNavigate | It returns the type of the last navigation without redirection, for example: by clicking on a link, entering the URL in the address bar or submitting a form. |
$navigation.typeReload | Type of navigation for the reload operation, that is, when the page was reloaded. |
$navigation.typeReserved | Any type of navigation not defined by those previously mentioned (typeNavigate, typeReload). |
$networkApi.downlink | It returns the average volume of data received (Mb/s). |
$platform | Operating system architecture (for example Linux x86_64, Iphone, etc). |
$referrer | It returns the previous url to the current page. That is, the url by which the user arrived at “locationHref”. If the access originated directly from the current page (not through a link, but for example, through a bookmark), its value will be an empty string. It does not provide DOM access to the reference page. |
$timestamp | Request date and time. |
$userAgent | It identifies the client UA browser. |
$version | The version of Azion Log used. |
Didn’t find what you were looking for? Open a support ticket.