-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[HOLD for payment 2024-03-26] [HOLD for payment 2024-03-20] [HOLD for payment 2024-03-13] Investigate a dashboard tool to monitor app performance improvement/degradation after deploys #29274
Comments
@rinej started working on this today - he'll investigate the ways we can utilise json outputs from Reassure to showcase historical data and how we can pipe this through to eg. https://grafana.com/ |
Grafana would be ideal as we use that already! |
@mountiny Hello, today I started investigating the approach, I plan to use grafana |
📣 @rinej! 📣
|
Triggered auto assignment to @stephanieelliott ( |
Hello mountiny, We created an example approach using the JSON REST API Grafana plugin -> https://grafana.com/grafana/plugins/marcusolsson-json-datasource/ Here is the example dashboard: In that scenario, we created a simple node server that exposed the endpoints with JSON data, which Grafana consumed. It has some limitations; we will have to maintain a separate instance of the server to deliver data. We are exploring the other two approaches:
This will not require any additional server, just, for example, an S3 bucket to store the data. I will let you know when we have some insights about the approaches. Meanwhile, do you have any preferences over what needs to be displayed and shown on the graph? I can send you the example output file from Reassure; just let me know! :) |
Thank you @rinej!
I thin kthis sounds good to me, we already have solutions where we save files to S3 bucket from the GH actions so it shoudl also be reasonable easy to achieve |
I was imagining that we would output the results of main branch over time, when the results get worse we can see based on timestamp what PR caused it, but we could just keep data about the results on main for various test scenarios and see how they evolved overtime |
Thanks mountiny you for your answers! JSON api plugin: https://grafana.com/grafana/plugins/marcusolsson-json-datasource/ Data used for the POC response (3 test cases run on different dates on different branches): {"name":"should render Composer with text input interactions","type":"render", "meanDuration":18.244273030757904, "creationDate":"2023-11-17T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"some-branch" },
{"name":"should press add attachemnt button","type":"render", "meanDuration":24.91762231886387, "creationDate":"2023-11-17T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"some-branch" },
{"name":"should press add emoji button","type":"render", "meanDuration":12.9931875705718993, "creationDate":"2023-11-17T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"some-branch" },
{"name":"should render Composer with text input interactions","type":"render", "meanDuration":13.244273030757904, "creationDate":"2023-11-15T12:45:04.146Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"branch123" },
{"name":"should press add attachemnt button","type":"render", "meanDuration":16.91762231886387, "creationDate":"2023-11-15T12:45:04.146Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"branch123" },
{"name":"should press add emoji button","type":"render", "meanDuration":2.9931875705718993, "creationDate":"2023-11-15T12:45:04.146Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"branch123" },
{"name":"should render Composer with text input interactions","type":"render", "meanDuration":14.244273030757904, "creationDate":"2023-11-16T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"test-branch" },
{"name":"should press add attachemnt button","type":"render", "meanDuration":20.91762231886387, "creationDate":"2023-11-16T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"test-branch" },
{"name":"should press add emoji button","type":"render", "meanDuration":5.9931875705718993, "creationDate":"2023-11-16T14:49:26.957Z", "commitHash":"137a4c761ee686bd6e094ec025b0dcc3f5f454e1", "branch":"test-branch" } A - table view - we can choose from a dropdown which test data we want to display I think dashboards A and B will be the most useful, so we can see on the timeline when performance has dropped 🎯 What needs to be done:
❓Questions to mountiny?
|
@rinej Looks very promising, thanks! I will discuss with out infra team who could help us with the implementation as I do not have access to edit S3 or add this plugin to Graphana if we do not have it yet |
Triggered auto assignment to @johnmlee101 ( |
Thread we were discussing this is here |
@mountiny I don't have access to the above link or the link is broken, could you give me the access? |
Sorry cannot give you access to that one. It was Thanksgiving week so @johnmlee101 will be back this week and he is going to be able to help us with this I am sure |
Okay might need to figure out some of these details. I think S3 might be overkill if we just need to store and fetch. |
@mountiny @rinej @justinpersaud brought up using artifacts if we don't care about the data lasting for too long. We have a max 90 day policy. As for the REST endpoint if we can easily find a way to list all artifacts this way that would be ideal |
@johnmlee101 @mountiny Do you use Grafana cloud service or standalone app? |
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. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.51-3 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-03-20. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
This was a new feature/tool, no regression test needed here. |
It just takes very long to load for anything more than a day |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.54-4 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-03-26. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
No regression test needed, this was a new feature! Expert contrib so no payment due on this one. |
The goal of the #newdot-performance project is achieving, maintaining (and protecting) these benchmarks for actions taken in app:
TTI: 3 seconds
Chat switching: 500ms
Sending a message: 100ms
Switching Active Workspace: 300ms
We have made good progress, in that the app is stable and performant on an anecdotal basis, and the wider company can focus on other areas of the roadmap. We would like to solidify this feeling with hard evidence and protect the app from performance regressions.
We would like to begin formally reporting on the performance benchmarks so we know they are being maintained. And we will use this data to protect the app’s benchmarked performance by “time-stamping” when performance regressions originate.
The text was updated successfully, but these errors were encountered: