2017-02-08 10:38:24 +00:00
|
|
|
# GitLab Prometheus
|
|
|
|
|
|
|
|
>**Notes:**
|
2017-02-08 12:40:11 +00:00
|
|
|
- Prometheus and the various exporters listed in this page are bundled in the
|
|
|
|
Omnibus GitLab package. Check each exporter's documentation for the timeline
|
|
|
|
they got added. For installations from source you will have to install
|
2017-02-08 10:38:24 +00:00
|
|
|
them yourself. Over subsequent releases additional GitLab metrics will be
|
|
|
|
captured.
|
|
|
|
- Prometheus services are off by default but will be on starting with GitLab 9.0.
|
|
|
|
|
|
|
|
[Prometheus] is a powerful time-series monitoring service, providing a flexible
|
|
|
|
platform for monitoring GitLab and other software products.
|
|
|
|
GitLab provides out of the box monitoring with Prometheus, providing easy
|
|
|
|
access to high quality time-series monitoring of GitLab services.
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
Prometheus works by periodically connecting to data sources and collecting their
|
2017-02-08 12:40:11 +00:00
|
|
|
performance metrics via the [various exporters](#prometheus-exporters). To view
|
|
|
|
and work with the monitoring data, you can either
|
|
|
|
[connect directly to Prometheus](#viewing-performance-metrics) or utilize a
|
|
|
|
dashboard tool like [Grafana].
|
2017-02-08 10:38:24 +00:00
|
|
|
|
|
|
|
## Configuring Prometheus
|
|
|
|
|
|
|
|
>**Note:**
|
|
|
|
Available since Omnibus GitLab 8.16. For installations from source you'll
|
|
|
|
have to install and configure it yourself.
|
|
|
|
|
|
|
|
To enable Prometheus:
|
|
|
|
|
|
|
|
1. Edit `/etc/gitlab/gitlab.rb`
|
|
|
|
1. Find and uncomment the following line, making sure it's set to `true`:
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
prometheus['enable'] = true
|
|
|
|
```
|
|
|
|
|
|
|
|
1. Save the file and [reconfigure GitLab][reconfigure] for the changes to
|
|
|
|
take effect
|
|
|
|
|
|
|
|
By default, Prometheus will run as the `gitlab-prometheus` user and listen on
|
|
|
|
TCP port `9090` under localhost. If the [node exporter](#node-exporter) service
|
|
|
|
has been enabled, it will automatically be set up as a monitoring target for
|
|
|
|
Prometheus.
|
|
|
|
|
2017-02-08 12:40:11 +00:00
|
|
|
## Viewing performance metrics
|
2017-02-08 10:38:24 +00:00
|
|
|
|
|
|
|
After you have [enabled Prometheus](#configuring-prometheus), you can visit
|
|
|
|
`<your_domain_name>:9090` for the dashboard that Prometheus offers by default.
|
|
|
|
|
|
|
|
The performance data collected by Prometheus can be viewed directly in the
|
|
|
|
Prometheus console or through a compatible dashboard tool.
|
|
|
|
The Prometheus interface provides a [flexible query language][prom-query] to work
|
|
|
|
with the collected data where you can visualize their output.
|
|
|
|
For a more fully featured dashboard, Grafana can be used and has
|
|
|
|
[official support for Prometheus][prom-grafana].
|
|
|
|
|
|
|
|
## Prometheus exporters
|
|
|
|
|
|
|
|
There are a number of libraries and servers which help in exporting existing
|
|
|
|
metrics from third-party systems as Prometheus metrics. This is useful for cases
|
|
|
|
where it is not feasible to instrument a given system with Prometheus metrics
|
|
|
|
directly (for example, HAProxy or Linux system stats). You can read more in the
|
2017-02-08 12:40:11 +00:00
|
|
|
[Prometheus exporters and integrations upstream documentation][prom-exporters].
|
2017-02-08 10:38:24 +00:00
|
|
|
|
|
|
|
While you can use any exporter you like with your GitLab installation, the
|
|
|
|
following ones documented here are bundled in the Omnibus GitLab packages
|
|
|
|
making it easy to configure and use.
|
|
|
|
|
|
|
|
### Node exporter
|
|
|
|
|
2017-02-08 12:40:11 +00:00
|
|
|
The node exporter allows you to measure various machine resources such as
|
2017-02-08 10:38:24 +00:00
|
|
|
memory, disk and CPU utilization.
|
|
|
|
|
2017-02-08 12:40:11 +00:00
|
|
|
[➔ Read more about the node exporter.](node_exporter.md)
|
2017-02-08 10:38:24 +00:00
|
|
|
|
|
|
|
[grafana]: https://grafana.net
|
|
|
|
[prometheus]: https://prometheus.io
|
|
|
|
[prom-query]: https://prometheus.io/docs/querying/basics
|
|
|
|
[prom-grafana]: https://prometheus.io/docs/visualization/grafana/
|
|
|
|
[scrape-config]: https://prometheus.io/docs/operating/configuration/#%3Cscrape_config%3E
|
|
|
|
[prom-exporters]: https://prometheus.io/docs/instrumenting/exporters/
|
|
|
|
[reconfigure]: ../../restart_gitlab.md#omnibus-gitlab-reconfigure
|