Skip to content

Add better performance metrics to Grafana #11997

Closed

Description

@roryabraham

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


See this predesign for some additional context.

Problem

We've got a sort of wonky set of performance metrics in Grafana right now. For example, we measure "Initial Homepage Render" as the time between AuthScreens.constructor being called and AuthScreens.componentDidMount being called. It's not clear what this metric really means or if it's indicative of anything real to the user.

As a result, the performance metrics we can measure

Solution

Build out a better, more accurate set of Performance metrics and start tracking them with Grafana. This could include:

Others? Of course, all these metrics should be tracked on a per-platform basis.

View all open jobs on GitHub

Activity

  1. self-assigned this
    on Oct 19, 2022
  2. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 19, 2022
  3. added
    NewFeatureSomething to build that is a new item.
    and removed
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 19, 2022
  4. roryabraham commented on Oct 19, 2022

    @roryabraham
    ContributorAuthor

    @hannojg Seems like maybe a good fit if you're interested?

  5. roryabraham commented on Oct 19, 2022

    @roryabraham
    ContributorAuthor

    I also think we agreed to nix Frustration Index because it's more complex and less actionable than other metrics here

  6. roryabraham commented on Oct 20, 2022

    @roryabraham
    ContributorAuthor

    Beyond just sending these metrics to a remote server, I think it would also be helpful to log these metrics locally to make it easier to benchmark individual PRs.

  7. hannojg commented on Oct 20, 2022

    @hannojg
    Contributor

    Oh yeah, very interested, will add this to my tasks 💪

  8. 6 remaining items

  9. roryabraham commented on Nov 19, 2022

    @roryabraham
    ContributorAuthor

    @hannojg should we think about handing this off to someone else?

  10. hannojg commented on Nov 21, 2022

    @hannojg
    Contributor

    We could, what is the priority on this one? From what I understand you are trying to heavily focus on bugs and performance issues right now, so I was prioritizing that so far (but it's still on my todo list)

  11. JmillsExpensify commented on Nov 21, 2022

    @JmillsExpensify
    Contributor

    I posted a discussion in Slack on the priorities, though didn't add this one. I kind of think that helping any useful tests for our CI initiative is higher value – mainly because we are getting close to launching it but we only have one test at the moment.

  12. roryabraham commented on Nov 22, 2022

    @roryabraham
    ContributorAuthor

    I would say this is currently lower priority than bugs, but still quite valuable in the long-term because it helps give us a better objective framework to talk about performance, particularly for those of us that aren't as well-versed in the various performance testing and profiling tools there are out there for testing React/React Native/web/mobile apps.

  13. roryabraham commented on Nov 28, 2022

    @roryabraham
    ContributorAuthor

    Unassigning myself from this issue, because we completed the predesign and I'm not going to implement it myself.

  14. removed their assignment
    on Nov 28, 2022
  15. melvin-bot commented on Jan 6, 2023

    @melvin-bot

    This issue has not been updated in over 15 days. @hannojg eroding to Monthly issue.

    P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

  16. hannojg commented on Jan 6, 2023

    @hannojg
    Contributor

    I just created these two PRs:

    With these changes we will send events with environment information to Grafana, which is super important to separate.
    In addition to that it makes the TTI calculation more accurate.

    In general we found that TTI is the main measurement that we want to take. Any other metrics aren't really appealing for mobile platforms.
    There might be special performance for the web platforms.
    However, the measurements we send to Grafana (TTIs for various flows), are mainly there to help us catch performance issues within the staging/production app (e.g. after new slow code got merged)

  17. MelvinBot commented on Mar 6, 2023

    @MelvinBot
    Contributor

    @hannojg, this Monthly task hasn't been acted upon in 6 weeks; closing.

    If you disagree, feel encouraged to reopen it -- but pick your least important issue to close instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions