-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking of user perceived response times #38
Comments
For example, when the action is initiated by the user, you would call this: if (typeof BOOMR !== "undefined") {
var timer = BOOMR.requestStart("some-tag-name");
} Then, when the action is completed, you will call this code: if (timer) {
timer.loaded();
} which will cause a beacon to be fired.
One question I do have is, are you okay with firing a beacon on every action (this is more reliable), or would you prefer if beacons were batched and sent periodically (this is likely to fail if the user closes the page). |
1.1) I am not sure this is often the case. I expect most of the applications are written without boomerang in mind. In other words, if you "just add boomerang" to the existing app, it does not "just work". You know, there are some signs of notion of the url of the link / form. However it is very limited and it is not extensible.
1.2) Sometimes the action is completed in a different module. For instance, "shop" button in a Customer Summary module starts the interation, and the interaction completes in the Shopping module. You might have hard time passing boomr variables between development teams.
I am going to refine my set of plugins (I do not support multiframe pages very well yet), and I do not find requestStart API, RT plugin, etc boomerang API very useful for that purpose. I am interested if there is some generic solution. For now I have nothing to contribute to RT plugin as it just does not suit me.
My aim is to have a single beacon for a single user interaction. Sub-beacons are fine (as in "nice to have") provided there is a global notion of the overall event. I do not want to develop extended log processing tools that will use artificial intelligence to deduce which beacons should be combined to get the response time of a "shop" button. I just want to see it as a single entry.
You tell a bit different story. I mean: boomerang could do much better job for capturing paint/document mutation events. MutationObserver, requestAnimationFrame, and setTimeout can detect document mutations (and paintings) quite well.
This is false. See above.
The extensibility part of RT plugin is a bit poor.
Currently I fire a beacon for each click. The clickstream is not high as I am running the load tests: real browsers, Selenium, limited set of load boxes.
For instance, when performing a load test, you control the environment and the load script just does not close the window unexpectedly.
|
Boomerang (in my opinion) has been kept and designed in a general purpose way in order to meet the needs of a broader user base. Of course if you want to do more involved things with boomerang you will have to put effort into it. If you are planning to implement metrics and analysis into a internal tool on an enterprise-scale, yes you will have to reach consensus across teams to get where you want to go. Vanilla Boomerang is not a stop-gap measure or drop-in replacement for Google-Analytics. You will need to integrate it properly if you want to have a enhanced look into your application.
This again comes down to team-collaboration and communication across teams. If you are from the engineering or analytics/metrics team and want to have data from a specific teams module you will have to communicate that. However if we're talking about an SPA it should not be as problematic as one might think as most of Boomerang and here specifically the This way accessing variables,subscriptions,events,functions of the Functionality to measure specific non-DOM-Element related events is not yet implemented in boomerang but I'd like to suggest this as a new feature for the future: @bluesmoon How about letting users add subscribable events to boomerang using BOOMR.utils.addCustomEvent({
"object_change" : function(data) {
console.log("Event triggered: ", data);
}
}); Where That way more subscriptions can be added with: BOOMR.subscribe("object_change",function() { /* foo bar baz */}); If you want I can see if I can implement this?
I'll have to agree that the wording of the boomerang documentation isn't necessarily the best in that regard. Boomerang is (by design and mechanics) mostly focused on the timing aspects from the initial
Rudimentary click-tracking has landed in bluesmoon/boomerang.git quite recently. Maybe you can check it out.
This goes with the assumption that theres only a limited set of very modern browsers. That too isn't always the case unless you know your environment. Boomerang tries to be as general in this regard as possible and work with most audiences (even those that run IE6) |
I'm working on a performance of a web-based enterprise application and typical problem is to measure the time it takes to process button clicks.
The initial thought was "ok, I need to measure UI performance, then I use boomerang".
As I applied boomerang, it turned out to be something unrelated to performance validation.
None of the user clicks/actions result in just a page reload.
The issues (see below) can be solved to a certain degree with plugins, however it looks like blocking all the default boomerang beaconing behavior and rolling a new one.
I've been using
boomerang.js
for 2 months for measuring the response times, however I had to roll my own set of plugins.Can you please clarify if you feel boomerang will/need/should support tracking of user perceived response times?
I understand that hosted applications and open-to-internet applications might have different requirements (e.g. in hosted enterprise app you have access.logs, thus you do not need resource timing beacons from client). However, it looks like current boomerang approach makes little sense for enterprise apps.
Here is the list of issues I ran into as I tried boomerang:
I do not want per-ajax tracking (
RT.startTimer/done
). I want per end-user action tracking.The text was updated successfully, but these errors were encountered: