Customer Performance Measurement

I am currently exploring any means of collecting some analytic data / client machine performance metrics for our webapp. The application is very ajax, and we hope to collect some statistics on how well the client computers work.

We donโ€™t necessarily want to enter a health monitoring code through the application (for many reasons this can be almost impossible). Rather, we would like to be able to run some kind of test or something when a user sends feedback that can give us an idea of โ€‹โ€‹how well their browser / computer performs.

This was a bit of a challenge for research, as it continues to raise discussions about profiling, etc. This is obviously useful, but only in the sense that our development machines are very depressed. We hope to get some indicators on the types of machines with which our customers connect.

Are there any libraries / frameworks or best practices for this? So far, itโ€™s best to run some kind of intensive processor process through JS for a few seconds and measure the performance in this way ...

Thoughts or suggestions? May be an interesting discussion.

+6
source share
2 answers

this is what we do to monitor and analyze customer usage data ...

  • use Google Analytics to collect information about the user (platforms, browsers, connection speeds, use of the site, etc.)

  • use Google Webmaster Tools to get additional site statistics and optimization suggestions

  • use Pagespeed to analyze / fine-tune large volumes and / or slow pages

  • use Apache AB or JMeter - to run base load tests on large pages

+2
source

This is an interesting question since you raised most of the developer profiles on your machines. I'm not sure if there is any other way besides adding a performance profiler to your code. The interesting part that you talked about is that this is based on user feedback and is not necessarily sent to the server all the time.

We could develop a javascript Profiler class that basically compiles:

  • Function name
  • Round trip time
  • Total function execution time
  • UserMachineProcessingTime = The total execution time of the function in time.
  • Other useful information (similar to what YSlow or similar tools provide)

As you note, it is based on user feedback, we do not need to constantly send this information as each function is called (which makes the application very frequent). Then we collect this information on the client side and possibly store it somewhere (perhaps using local HTML5 storage?)

Only when the user agrees to provide a performance profile, we send this information to the server on which you receive the necessary data. It would also be interesting to see how the user reacts if we tell you how the tiny message โ€œWe notice that your performance is below our average usersโ€. Would you like to submit your performance profile so that we can learn and make it better? "(I need a different wording, I feel bad with this, but this is basically a message.) If you answer yes, the profile will send the information it collects + additional information that Javascript can collect (user agent, etc.). Of course, the question is how many users will want to send their profile information, but this is one of the approaches that we could try.

0
source

Source: https://habr.com/ru/post/895920/


All Articles