Custom dashboards (deprecated) (FREE)
- Introduced in GitLab 12.1.
- Deprecated in GitLab 14.7.
WARNING: This feature is in its end-of-life process. It is deprecated in GitLab 14.7, and is planned for removal in GitLab 16.0.
By default, all projects include a GitLab-defined Prometheus dashboard, which includes a few key metrics, but you can also define your own custom dashboards.
You may create a new dashboard from scratch or duplicate a GitLab-defined Prometheus dashboard.
Add a new dashboard to your project
UI option introduced in GitLab 13.3.
You can configure a custom dashboard by adding a new YAML file into your project's
.gitlab/dashboards/
directory. For the dashboard to display on your project's
Monitor > Metrics page, the files must have a .yml
extension and be present in your project's default branch.
To create a new dashboard from the GitLab user interface:
- Sign in to GitLab as a user with Maintainer or Owner permissions.
- Navigate to your dashboard at Monitor > Metrics.
- In the upper-right corner of your dashboard, select the {ellipsis_v} More actions menu, and select Create new:
- In the modal window, select Open Repository, then follow the instructions for creating a new dashboard from the command line.
To create a new dashboard from the command line:
-
Create
.gitlab/dashboards/prom_alerts.yml
under your repository's root directory. Each YAML file should define the layout of the dashboard and the Prometheus queries used to populate data. This example dashboard displays a single area chart:dashboard: 'Dashboard Title' panel_groups: - group: 'Group Title' panels: - type: area-chart title: 'Chart Title' y_label: 'Y-Axis' y_axis: format: number precision: 0 metrics: - id: my_metric_id query_range: 'http_requests_total' label: 'Instance: {{instance}}, method: {{method}}' unit: 'count'
-
Save the file, commit, and push to your repository. The file must be present in your default branch.
-
Navigate to your project's Monitor > Metrics and choose the custom dashboard from the dropdown list.
Your custom dashboard is available at https://example.com/project/-/metrics/custom_dashboard_name.yml
.
NOTE:
Configuration files nested under subdirectories of .gitlab/dashboards
aren't
supported or available in the UI.
Add a new metrics panel to a dashboard
UI option introduced in GitLab 13.3.
The metrics dashboard supports various multiple panel types. You can quickly test how a panel configuration would display in your metrics dashboard with the Add Panel page:
-
Sign in to GitLab as a user with Maintainer or Owner permissions.
-
Select Add panel in the {ellipsis_v} More actions menu.
NOTE: You can only add panels to custom dashboards.
-
In the Define and preview panel section, paste in the YAML you want to preview in the Panel YAML field.
-
Select Preview panel, and GitLab displays a preview of the chart below the
Define and preview panel
section:
Duplicate a GitLab-defined dashboard
- Introduced in GitLab 12.7.
- GitLab versions 12.8 and later, custom metrics are also duplicated when you duplicate a dashboard.
You can save a complete copy of a GitLab-defined dashboard along with all custom metrics added to it.
The resulting .yml
file can be customized and adapted to your project.
You can decide to save the dashboard .yml
file in the project's default branch or in a
new branch. To duplicate a GitLab-defined dashboard:
- Select Duplicate current dashboard in the {ellipsis_v} More actions menu.
- Enter the filename and other information, such as the new commit's message, and select Duplicate.
- Select a branch to add your dashboard to:
- If you select your default branch, the new dashboard becomes immediately available.
- If you select another branch, this branch should be merged to your default branch first.
Your custom dashboard is available at https://example.com/project/-/metrics/custom_dashboard_name.yml
.
Manage the metrics dashboard settings
Introduced in GitLab 13.2.
Users with project Maintainer or Administrator permissions can manage the settings for your metrics dashboard.
Chart Context Menu
To take action related to a chart's data:
- In the upper-right corner of the chart, select More actions ({ellipsis_v}).
The options are:
- Expand panel - Displays a larger version of a visualization. To return to the dashboard, select the Back button in your browser, or press the Escape key. (Introduced in GitLab 13.0.)
- Download CSV - Data from Prometheus charts on the metrics dashboard can be downloaded as CSV.
- Copy link to chart
Timeline zoom and URL sharing
Introduced in GitLab 12.8.
You can use the Timeline zoom function at the bottom of a chart to zoom in on a date and time of your choice. When you select and drag the sliders to select a different beginning or end date of data to display, GitLab adds your selected start and end times to the URL, enabling you to share specific time frames more easily.
Dashboard Annotations
- Introduced in GitLab 12.10 (enabled by feature flag
metrics_dashboard_annotations
).- Feature flag removed in GitLab 13.0.
You can use Metrics Dashboard Annotations to mark any important events on every metrics dashboard by adding annotations to it. While viewing a dashboard, annotation entries assigned to the selected time range are automatically fetched and displayed on every chart within that dashboard. On mouse hover, each annotation presents additional details, including the exact time of an event and its description.
You can create annotations by making requests to the Metrics dashboard annotations API
Annotation retention policy
Introduced in GitLab 13.01.
To avoid excessive storage space consumption by stale annotations, records attached to time periods older than two weeks are removed daily. This recurring background job runs at 1:00 a.m. local server time.
Add related links to custom dashboards
Introduced in GitLab 13.1.
You can embed links to other dashboards or external services in your custom dashboard by adding Related links to your dashboard's YAML file. Related links open in the same tab as the dashboard. Related links can be displayed in the following locations on your dashboard:
- At the top of your dashboard as the top level
links
dashboard property. - In charts context menus as the
links
property of a panel.
Related links can contain the following attributes:
-
url
: The full URL to the link. Required. -
title
: A phrase describing the link. Optional. If this attribute is not set, the full URL is used for the link title. -
type
: A string declaring the type of link. Optional. If set tografana
, the dashboard's time range values are converted to the Grafana time range format and appended to theurl
.
The dashboard's time range is appended to the url
as URL parameters.
The following example shows two related links (GitLab.com
and GitLab Documentation
)
added to a dashboard:
Links Syntax
links:
- title: GitLab.com
url: https://gitlab.com
- title: GitLab Documentation
url: https://docs.gitlab.com
- title: Public Grafana playground dashboard
url: https://play.grafana.org/d/000000012/grafana-play-home?orgId=1
type: grafana
Troubleshooting
Accessing the UI of Prometheus in Kubernetes
When troubleshooting issues with an in-cluster Prometheus, it can help to
view the Prometheus UI. In the example below, we assume the Prometheus
server to be the pod prometheus-prometheus-server
in the gitlab-managed-apps
namespace:
-
Find the name of the Prometheus pod in the user interface of your Kubernetes provider, such as GKE, or by running the following
kubectl
command in your terminal. For example:kubectl get pods -n gitlab-managed-apps | grep 'prometheus-prometheus-server'
The command should return a result like the following example, where
prometheus-prometheus-server-55b4bd64c9-dpc6b
is the name of the Prometheus pod:gitlab-managed-apps prometheus-prometheus-server-55b4bd64c9-dpc6b 2/2 Running 0 71d
-
Run a
kubectl port-forward
command. In the following example,9090
is the Prometheus server's listening port:kubectl port-forward prometheus-prometheus-server-55b4bd64c9-dpc6b 9090:9090 -n gitlab-managed-apps
The
port-forward
command forwards all requests sent to your system's9090
port to the9090
port of the Prometheus pod. If the9090
port on your system is used by another application, you can change the port number before the colon to your desired port. For example, to forward port8080
of your local system, change the command to:kubectl port-forward prometheus-prometheus-server-55b4bd64c9-dpc6b 8080:9090 -n gitlab-managed-apps
-
Open
localhost:9090
in your browser to display the Prometheus user interface.
"No data found" error on Metrics dashboard page
If the "No data found" screen continues to appear, it could be due to:
- No successful deployments have occurred to this environment.
- Prometheus does not have performance data for this environment, or the metrics
are not labeled correctly. To test this, connect to the Prometheus server and
run a query, replacing
$CI_ENVIRONMENT_SLUG
with the name of your environment. - You may need to re-add the GitLab predefined common metrics. This can be done by running the import common metrics Rake task.