Skip to content

[HOLD for payment 2024-11-29] [HOLD for payment 2024-11-21] Align Firebase performance metrics with core in-app workflows #51742

Closed

Description

@adhorodyski

Coming from this Slack thread: https://expensify.slack.com/archives/C05LX9D6E07/p1730214849510819

Problem
Our performance metrics do not represent exactly what we care about when tracking App's performance across the user base. They either have unclear naming, or code markers that are put in the wrong places, making measurements incorrect and giving us falsy results.

Solution
Let's align the definitions and fix code markers' placement to make sure we collect whole user interactions when people eg. open chats from different scenarios, send message or open up search. Detailed changes in the first comment.

Issue OwnerCurrent Issue Owner: @adhorodyski

Activity

  1. adhorodyski commented on Oct 30, 2024

    @adhorodyski
    ContributorAuthor

    homepage_initial_render does not serve as a meaningful measure of performance with a misleading event name and not appropriate code markers (should be in different components + AuthScreens is not fully laying out). I advocate for removing this event.


    switch_report can be deprecated in favour of specific open_report* events that take into account different scenarios and have a more correct naming.


    chat_render does not effectively measure what it's name describes (component fully laying out). I advocate for removing this event and focus on events that better mark full user interactions.


    sidebar_loaded does not measure anything meaningful in the performance context. I advocate for removing it (at least from tracking) as it's based on the falsy end event (LHN is not interactive when we hide the splash screen). Additionally, the sidebar naming is misleading.


    search_render is no longer being used. Either docs need to be updated to account for the new search_router_render, or naming can be improved to open_search to be more descriptive.


    report_initial_render does not measure anything meaningful, we have open_report* events for this use case. The start marker it put in the wrong place causing false results. I advocate for removing this event.


    message_sent is currently not being sent to Firebase. I advocate for adding a Firebase call for it so we can start tracking how long it takes for people to send messages.


    open_report is currently not being sent to Firebase. Let's add a Firebase call for it so we can start tracking how long it takes for people to fully navigate to chats from LHN.


    SEARCH_FILTER_OPTIONS needs to be updated in docs (Finder is now deprecated


    SEARCH_BUILD_TREE, SEARCH_MAKE_TREE and SEARCH_CONVERT_SEARCH_VALUES all need to be documented

  2. adhorodyski commented on Oct 30, 2024

    @adhorodyski
    ContributorAuthor

    Adam from Callstack, I'd like to work on this issue.

  3. adhorodyski commented on Oct 31, 2024

    @adhorodyski
    ContributorAuthor

    @kirillzyusko I noticed we're relying on the chat_render event here but it's not being trigger anywhere. Can this be also removed from our E2E suite? I think we can realign this afterwards based on the newly set "correct" events.

  4. adhorodyski commented on Oct 31, 2024

    @adhorodyski
    ContributorAuthor

    E2E tests depend on the events being trigger - for now I'll intentionally remove deprecated events in the PR, breaking E2E in the process so that we have a clear diff for what I have to fix before we merge anything.

  5. adhorodyski commented on Oct 31, 2024

    @adhorodyski
    ContributorAuthor

    Created a draft PR as it's in progress: #51815

  6. adhorodyski commented on Nov 4, 2024

    @adhorodyski
    ContributorAuthor

    Updated the PR, now I need to work on bringing e2e tests back to life.

  7. adhorodyski commented on Nov 5, 2024

    @adhorodyski
    ContributorAuthor

    asked @kirillzyusko for a review as e2e's are ~close to being back alive 😅

  8. kirillzyusko commented on Nov 7, 2024

    @kirillzyusko
    Contributor

    e2e tests are fully back now and works pretty stable 😎

  9. adhorodyski commented on Nov 8, 2024

    @adhorodyski
    ContributorAuthor

    @kirillzyusko oh you mean on this branch? 🤞

  10. adhorodyski commented on Nov 8, 2024

    @adhorodyski
    ContributorAuthor

    This is opened for a review now.

  11. 13 remaining items

  12. melvin-bot commented on Nov 21, 2024

    @melvin-bot

    Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

  13. adhorodyski commented on Nov 22, 2024

    @adhorodyski
    ContributorAuthor

    I'm currently reworking the StartupTimer native module to work with multiple traces based on a map (the same way we do it with JS). This will enable a true TTI measurement the same way we do track the js_loaded event.

    It's only for Firebase, I have an idea on how we can enable generic tracing for multiple reporters (Grafana as well) for all metrics. I'll followup with a separate proposal for that.

  14. changed the title [-][HOLD for payment 2024-11-21] Align Firebase performance metrics with core in-app workflows[/-] [+][HOLD for payment 2024-11-29] [HOLD for payment 2024-11-21] Align Firebase performance metrics with core in-app workflows[/+] on Nov 22, 2024
  15. melvin-bot commented on Nov 22, 2024

    @melvin-bot

    Reviewing label has been removed, please complete the "BugZero Checklist".

  16. melvin-bot commented on Nov 22, 2024

    @melvin-bot

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.65-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

    If no regressions arise, payment will be issued on 2024-11-29. 🎊

    For reference, here are some details about the assignees on this issue:

  17. melvin-bot commented on Nov 29, 2024

    @melvin-bot

    Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

  18. mountiny commented on Nov 29, 2024

    @mountiny
    Contributor

    @adhorodyski anything else for this PR?

  19. adhorodyski commented on Nov 29, 2024

    @adhorodyski
    ContributorAuthor

    I don't think so, let's close this issue - core workflows are covered.
    I'm still wrapping my head around the best way of reporting the TTI for all systems. We don't want to hardcode this for Firebase only, I'll propose something else to be more generic and also enable pushing to Grafana at the same time (collecting between threads is problematic).

  20. mountiny commented on Nov 30, 2024

    @mountiny
    Contributor

    Thanks, yes I think that sounds like a good path

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionWeeklyKSv2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions