Report object - design & documentation
Overview
This is part of Generic Metrics API for Aggregated and Computed Measures & PJs data visualisation section, the goal of which is to reduce the cost of building new analytics capabilities, to create a more open and reusable system which can be leveraged by other Git Lab product areas and customers, and to improve the consistency and performance of the user experience for analytics. This base-capability unlocks future higher velocity for display of new metrics and new signature experiences throughout the GitLab product.
Proposal
MVC
Our MVC will ship the first iteration of the report object + documentation...
First iteration:
- A standard analytics page header (first iteration)
- A filter with limited filtering options
- A simple chart with no additional controls
- A simple data table
Documentation:
- Add Object section to Pajamas
- Add New "Report" page to Object section in PJs
Future vision
Later iterations could include additional functionality around:
- Page header
- Embedded metrics
- Filter
- Additional filters
- Additional queries (AND, OR, etc)
- Chart
- Multiple chart visualisation types (e.g. user can change from bar chart to line chart)
- Toggles to change chart dimensions (e.g. user can change x axis in a time series from weeks to months)
- Share chart or embed in comment
- Chart annotations
- Table
- Expandable rows show deeper detail
Documentation
Overview
The Report object is the standard template for showing a granular data set to a user. When a user wishes to drill-down into the details of a metric or chart, the Report object is the destination where they end up. The Report object allows users to scope the data set with filters and visualise the data set with a table and chart. This works hand-in-hand with the Generic Metrics API.
Examples
- Security Dashboard (note: this is an example of how the Report object could look, it does not yet leverage the underlying regions or Generic Metrics API integration)
Primary workflows
1. Drill-down
Job-to-be-done: When I drill-down into the details of a metric or chart; I want to view, filter and visualise the data set; so that I can spot patterns and take action on the information.
Stage | Description | Signal |
---|---|---|
Awareness | User becomes aware that the data is available | Interacts with embedded analytics, dashboard or navigation |
Understanding | User navigates to analytics page and scans the page for anything useful at a high-level | Page dwell, on-hovers, scrolling |
Scoping | User scopes the content shown from the dataset to something they're interested in | Filters |
Exploring | User manipulates the visualisation of the dataset and deep-dives to uncover insight | Interacts with chart & table |
Actioning | User takes action on the information they uncovered | Clicks on table action buttons |
2. Create custom report
Job-to-be-done: When I have a specific data set of interest; I want to create a custom Report with saved filters, views and table columns; so that I can regularly analyse, share or report on the information.
Stage | Description | Signal |
---|---|---|
To do |
To do |
To do |
Anatomy
Sub-objects
- None
Layout & regions
- Breadcrumb
- Page header
- Metrics (optional)
- Tabs (optional)
- Filter (optional)
- Chart (optional)
- Table
Note: Variants can be created by adding/removing the optional regions
Entries & exits
Typical entry-points:
- Embedded analytics
- Dashboard object
- Project & group sidebar navigation
Typical exit-points:
- Individual objects (e.g. Merge Request or Issue page)
- Page actions (e.g. share chart or export table)
- Back to entry-point (e.g. back to dashboard)