Browser agent collection data
The WhaTap browser agent collects events that occur from each user's browser, reprocesses the collected data, and uses the data for monitoring. All collected data is user session dependent.
Types
The following lists the types of data that the WhaTap browser agent collects.
- Long: A unique ID data type in the long to string32 format.
- TimeStamp: Time stamp upon measurement, in milliseconds (ms).
- HighResolutionTime: Elapsed time in milliseconds (ms)
- TimeSet: The start time stamp and the elapsed time are displayed for display of a timeline.
- It is any of ResourceType :
document
,xhr
,fetch
,beacon
,css
,script
,image
,font
,media
, andother
. - ErrorType : It is any of
console
,onError
,promiseRejection
,fetchError
,xhrError
, andmessageError
.
Common collection data
When any event occurs, the collected basic data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
sessionID | Long | A unique ID issued when a web application user starts navigating to a web page. The maximum duration of a session is 4 hours, and the ID expires after 15 minutes of inactivity. IDs are stored in browser cookies. | x7dbvq64ga80sd |
userID | Long | It is a unique ID issued when a web application user first connects and has no expiration time. IDs are stored in browser cookies. | z7eqnnitlc19j9 |
sendEventID | Long | This is a unique request ID issued when data is transmitted to the collection server after an event occurs. | x4rp4tnuq25i0h |
page.url | String | The URL of the page where an event occurred. | https://site.whatap.io/8/dashboard?dataKey=abcd |
page.host | String | The URL domain name of the page where an event occurred. | site.whatap.io |
page.path | String | The URL path of the page where an event occurred. | /8/dashboard |
page.query | String | The URL parameter of the page where an event occurred. | dataKey=abcd |
page.protocol | String | The URL protocol of the page where an event occurred. | https |
page.title | String | The document title of the page where an event occurred. | SaaS Monitoring No.1 WhaTap Monitoring |
userAgent | String | The useragent of the browser where an event occurred. | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 |
Page Load Event
This event occurs when you access the web application and the page content is fully loaded. The basic collection data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
navigationTiming.startTimeStamp | TimeStamp | It is the time stamp of navigationStart . Time stamp of the page that starts loading | 1658057382311 |
navigationTiming.eventID | Long | This is a unique ID issued when a page loading event occurs. | x7mkg24tags307 |
navigationTiming.redirect | TimeSet | Time taken for HTTP redirection. | {duration: 10, start: 315} |
navigationTiming.cache | TimeSet | Time taken to load the app cache resources. | {duration: 5, start: 325} |
navigationTiming.dns | TimeSet | Time taken for browsing the website domain. | {duration: 5, start: 330} |
navigationTiming.connect | TimeSet | Time taken for TCP connection setting. | {duration: 6, start: 335} |
navigationTiming.ssl | TimeSet | Time taken for the ssl handshake process. | {duration: 5, start: 336} |
navigationTiming.download | TimeSet | Time taken for document downloading. | {duration: 100, start: 341} |
navigationTiming.firstByte | TimeSet | It is the time taken for the browser to request a document from the server and receive the first byte. | {duration: 10, start: 341} |
navigationTiming.domInteractive | HighResolutionTime | It is the time when the browser finished parsing the document from navigationStart . DOM is ready. | 441 |
navigationTiming.domContnentLoaded | TimeSet | Time taken to build the DOM tree. | {duration: 50, start: 441} |
navigationTiming.domComplete | HighResolutionTime | This is the time between navigationStart and completion of loading documents and resources. | 491 |
navigationTiming.domLoad | TimeSet | Time taken for the onload event. | {duration: 1, start: 491} |
navigationTiming.backendTime | HighResolutionTime | Time from navigationStart to resource downloading. | 126 |
navigationTiming.frontendTime | TimeSet | Time from browser parsing completion to load event completion. | {duration: 51, start: 441} |
navigationTiming.loadTime | HighResolutionTime | Time from navigationStart to loadEventEnd . | 492 |
totalDuration | HighResolutionTime | This is the time between navigationStart and completion of importing the final page. | 550 |
Router change event
This event occurs when you move to a page in a single page application (SPA) type web application. The basic collection data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
loadTime | HighResolutionTime | Time taken to change the router. | 500 |
startTimeStamp | TimeStamp | Timestamp of the router change start time. | 1658057382311 |
endTimeStamp | TimeStamp | Timestamp of the router change completion time. | 1658057382811 |
pageLocation | String | The URL of the page where a router change event occurred. | https://site.whatap.io/8/dashboard?dataKey=abcd |
host | String | URL domain name of the page URL where a router change event occurred. | site.whatap.io |
path | String | The URL path of the page where a router change event occurred. | /8/dashboard |
query | String | The URL parameter of the page where a router change event occurred. | dataKey=abcd |
protocol | String | The URL protocol of the page where a router change event occurred. | https |
isComplete | Boolean | This value is used to distinguish when a router is changed to another page while the router change is not completed. | true |
Resource Load Event
This event occurs when you call a resource while using the web application. The basic collection data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
startTime | HighResolutionTime | Time from navigationStart to the resource request start. | 1000 |
startTimeStamp | TimeStamp | Timestamp of the resource request start. | 1658057382321 |
eventID | Long | A unique ID issued each time a resource is fetched. | x280or4ok0kqo0 |
type | ResourceType | Resource type. | image |
url | String | Resource URL. | https://unpkg.com/purecss@2.0.3/build/pure-min.css?dataKey=abcd |
urlHost | String | Domain name of the resource URL. | unpkg.com |
urlPath | String | Path of the resource URL. | /purecss@2.0.3/build/pure-min.css |
urlQuery | String | Parameter of the resource URL. | dataKey=abcd |
urlProtocol | String | Protocol of the resource URL. | https |
is3rdParty | Boolean | This value is used to identify resources requested by the 3rd party. | false |
timing.duration | HighResolutionTime | Time taken to complete the resource download. | 61 |
timing.size | Number | Resource encoding size. | 20 |
timing.redirect | TimeSet | Time taken for HTTP redirection. | {duration: 10, start: 315} |
timing.cache | TimeSet | Time taken to load the app cache resources. | {duration: 5, start: 325} |
timing.dns | TimeSet | Time taken to search the resource domain. | {duration: 5, start: 330} |
timing.connect | TimeSet | Time taken for TCP connection setting. | {duration: 6, start: 335} |
timing.ssl | TimeSet | Time taken for the ssl handshake process. | {duration: 5, start: 336} |
timing.firstByte | TimeSet | It is the time taken for the browser to request resources from the server and receive the first byte. | {duration: 10, start: 341} |
timing.download | TimeSet | Time taken to complete the resource download. | {duration: 100, start: 341} |
resourceInfo.method | String | Resource request method. | POST |
resourceInfo.status | Number | Resource request state. | 200 |
Error event
It is an error that occurred from the browser while you are using the web application. The basic collection data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
message | String | Message displayed when an error occurs. | SyntaxError: Unexpected end of JSON input |
stack | String | Stack information displayed when an error occurs. | at printWarning (webpack-internal:///../node_modules/react-dom/cjs/react-dom.development.js:86:30) at error (webpack-internal:///../node_modules/react-dom/cjs/react-dom.development.js:60:7) |
timestamp | TimeStamp | Timestamp of an error occurred. | 1658057382321 |
type | ErrorType | Error type. | onError |
status | Number | This is the error status value to be collected when the error type is xhr or fetch . | 501 |
url | String | This is the AJAX request URL when the error type is xhr or fetch . | https://site.whatap.io/yard/api?pcode=8&type=summary |
Core Web Vitals Event
Core Web Vitals are three metrics that Google considers important, among various measurement values that affect the user experience of web content. The basic collection data is as follows:
Data name | Type | Description | Example |
---|---|---|---|
lcp | HighResolutionTime | Largest Contentful Paint (LCP), which reports the rendering time of the largest image or text block within the viewport based on the first page loaded time. | 12334 |
fid | HighResolutionTime | First Input Delay (FID), from the first time you interact with the page (e.g. clicking a link, tapping a button, or using a custom JavaScript-based control) to the time to start the event handler in response to that interaction. | 7 |
cls | Number | Cumulative Layout Shift (CLS) is a score that quantifies the unexpected layout shifts caused by the dynamically loaded content. | 2 |