treosh / uxm

A modular library for collecting front-end performance metrics.
MIT License
247 stars 11 forks source link

Share development with boomerang #1

Open bluesmoon opened 6 years ago

bluesmoon commented 6 years ago

Hey folks, didn't know where to post this, so I'm opening an issue. This is a very cool project, using a lot of modern web APIs.

I'm the lead dev of the boomerang project (RUM JavaScript, BSD licensed), and would love for us to have cross pollination of code & ideas and maybe come up with standards for RUM metrics beyond what the browsers provide.

Let me know what you think. Boomerang is at https://GitHub.com/soasta/boomerang and we've been developing it for the last 10 years.

alekseykulikov commented 6 years ago

Hi Philip @bluesmoon!

Thank you for feedback, and I'm especially pleased to get it from you and Soasta. Github is a good place to start a conversation.

Boomerang is an impressive piece of software! I'm still reading the documentation. So I may miss something.

UXM has a smaller scope. It is a set of functions to build RUM/performance logic. For example no JavaScript Errors (quite a big topic) or DOM characteristics (could be better evaluated using Synthetic monitoring).

standards for RUM metrics beyond what the browsers provide.

Could you elaborate what does this mean for you?

I would be happy to collaborate and cross-pollinate ideas! What do you think UXM definitely misses for RUM?

bluesmoon commented 6 years ago

boomerang is on its own just a beaconing tool, and the actual data gathering is done by plugins, so you could configure it via build time options to have as few or as many plugins as you want, and consequently the file size differs.

I think one of the areas where most APIs are lacking is in the measurement of single page and long lived apps. In terms of where we should come in, is in defining standards for high level events, transitions, or interactions, that are useful to measure to get an understanding of actual user experience. Sort of like how Above the Fold Time was introduced, or Hero Image time, etc.

alekseykulikov commented 6 years ago

I think one of the areas where most APIs are lacking is in the measurement of single page and long lived apps.

That's true. One idea could be to observe Resources, LongTasks, UserTiming, and combine them in some interactions clusters when many changes start to happen.

Additionally provide direct API to start/stop interactions, something like:

startInteraction('open page')
// ... route change, xhr requests
measureInteraction('open page')

that are useful to measure to get an understanding of actual user experience. Sort of like how Above the Fold Time was introduced, or Hero Image time, etc.

Additional to UX metrics, I'm planning to add experimental support for first-interactive and consistently-interactive, inspired by tti-polyfill and Lighthouse.

It seems, that "Above the Fold Time" and "Hero Image time" are quite specific and should be implemented with User Timing API based on app requirements.