Open MurzNN opened 3 years ago
Such problem was described in #2733 Also, may be #536
For connecting frontend (Android app) telemetry statistic with backend logs (Synapse) we can use the great opensource tool Grafana Tempo, that can gather traces on real user devices with connecting to backend traces, so you can build detailed trace of some background operation in Android app (with adding useful metadata directly to that trace) with including defailed traces of all backend operations on server side, also with included metadata from server and direct links to server log lines.
By the way, there is an idea that the situation is approximately the following:
There are a couple of nuances:
As a result, we get some bottleneck, with which it is not clear what to do (to leave all large rooms)? There are of course a couple of options:
https://firefox-source-docs.mozilla.org/devtools/tests/performance-tests-damp.html is a good example how performance monitoring is implemented in Mozilla Firefox, maybe we can produce something similar?
Is your feature request related to a problem? Please describe.
There are a lot of feedback and issues about performance problems in Element-Android: slow interface performance, very high CPU usage (even in background), battery drain, memory usage, and so on.
Because Android didn't provide any easy tool to debug or gather performance statistics for regular users, there is a hard task to provide valuable bug reports related to performance! So regular and even tech-savvy users see that can't normally describe the problem except "it is sometimes very slow and eats my battery", and decide to not submit so useless bug reports, as result developers even didn't see the scale of that problem and thinks that this problem is present only on several individual users.
So, now we have a lot of bug reports and individual user feedback in various chatrooms about slow performance and battery drain of Element-Android app, but most of them are ignored by Element developers, because they don't contain any useful information to debug and analyze.
As result, we now have an Element-Android app that actively eats battery and CPU on devices of many users, but this problem is totally ignored, seems no improvements or even analysis is done on developer side, and there is no hope that this will be changed in future.
And users are very upset not only about Element-Android, but about all Matrix infrastructure, thinking that the whole Matrix is slow and resource hungry, comparing to other modern chat apps like Telegram, Skype, WhatsApp, etc. And this part of people spreads the information to other people that Element and Matrix are too slow.
Describe the solution you'd like.
To solve this problem I see the optimal solution as creating the separate workgroup of developers, that will set aside time to do professional analysis and analytics of the app performance, add metrics and other measurements to app for gathering statistics from real users on their devices, and research the ways to solve detected problems.
Also create a deployment infrastructure, that will automatically run performance tests of each new release and gather statistics how it is changed, to quickly detect new performance problems even before the release.
For example, I (and many other fans of Matrix) am ready to enable any analytics and deepest telemetry on my device, that will gather useful statistics to developers, that can help solve performance problems.
Describe alternatives you've considered.
Alternative is what we having now - a lot of issues and individual feedbacks, ragshakes about app performance and battery drain, which are ignored for a long time without any deeper analysis.