Operations Dashboard MVC
This issue is intended to serve as an MVC iteration of the larger Ops Dashboard: https://gitlab.com/gitlab-org/gitlab-ee/issues/1788
Goals
We are working on awesome views for the developer to watch their deployments and monitor the state of their apps. But these views are developer-centric. If you are responsible for the overall health of your company's operations, you need a more holistic view.
Proposal
Instance wide workflow
This should be an instance wide workflow.
- Project is too narrowly focused, especially for microservice oriented applications
- Groups can be used in different ways, and so are also not a good candidate for this workflow. In some cases the microservices of a single app may all be in one group. However it is quite possible for companies to also organize groups based on organizational hierarchy, since a group affects other features like authentication, authorization, and more. It is also possible for there to be 20+ tiers of subgroups, which would introduce further challenges in group design.
- An instance wide workflow does not suffer from these limitations, and will function regardless of how your group hierarchy is configured. This also would work in the event that you contribute to projects in different groups, or care about the operational health of projects you may not be directly involved in.
We will need to consider where to place this workflow, since we don't have a traditional home for instance wide workflows today. Possible candidates:
- Somewhere in your profile
- A new top level nav item, since we will also have other flows that need this as well like the Security dashboard.
Able to be set as Homepage
This flow should be able to be set as your default page when opening GitLab. This way Operations users can have a relevant home page when they login.
Add projects by searching by project name
We will add a search box at the top of the homepage, which can be used to search for projects. Selected projects will be added to the homepage.
- They will appear if you have appropriate access rights to view environments. (developer or above)
- Sorting, deleting from page, etc. can be later improvements.
Dashboard
For the MVC, we want to show a few key metrics for each project.
- Red/Green status based on whether there are any alerts actively firing.
- Clicking on R/G status takes you to the metrics dashboard for that project
Required internal changes
- Listen for resolved alerts: https://gitlab.com/gitlab-org/gitlab-ee/issues/7495
- Persist alert status: https://gitlab.com/gitlab-org/gitlab-ee/issues/7496
Design
Set as the default dashboard
You can set "Operations dashboard" as the default dashboard on Settings > Preferences
(https://gitlab.com/profile/preferences).
Operations dashboard
- It is at the instance level, so you can access it on the main navigation.
- It shows two projects in each row.
- You can add/remove projects directly on the dashboard.
- Add projects: enter a project name in the search box, and select a result.
- Remove projects: Click
ellipsis-v
icon and click "Remove" in the dropdown menu.
Default | Add projects |
---|---|
Empty state
- Title:
Add a project to the dashboard
- Subtitle:
The operations dashboards provides a summary of each project operational health, including pipeline status and Apdex score.
- SVG:
illustrations/operations-dashboard_empty.svg
in gitlab-svgs
Next steps
- Next steps are being discussed and prioritized here: https://gitlab.com/gitlab-org/gitlab-ee/issues/5789