Monitoring with Prometheus¶
Attention
This module is part of Tuleap Entreprise. It might not be available on your installation of Tuleap.
Tuleap gathers metrics about usage (number of artifact viewed, created, updated, services access) and exposes them using Prometheus format. To efficiently exploit them, you should install Prometheus as well as Grafana. Installation and configuration of those tools is not covered in this section but well documented in their respective documentations.
Configuration of Tuleap¶
First step is to install a Redis server and to configure Tuleap to use it, checkout backend workers guide.
After having installed and activated tuleap-plugin-prometheus-metrics
rpm, you need to setup a password to access the
data (by default data are private and there is no ways to make them accessible anonymously). To do so, you need to write
a 16 chars password (minimum) in /etc/tuleap/plugins/prometheus_metrics/etc/metrics_secret.key
. Keep this file safe by
making it readable only by codendiadm
user (chown codendiadm:codendiadm
&& chmod 0400
).
You also have to give it to the platform, this name will used as a label in Prometheus so you can be able to filter the
result per platform if you are running multiple Tuleap instances. The name can be something like staging, production
or just the FQDN of the instance: tuleap config-set prometheus_platform <name>
.
Then your instance will output metrics under the /metrics
end-point. For instance if your tuleap is setup under
https://tuleap.example.com, you will metrics them at https://tuleap.example.com/metrics. You will get a basic auth challenge
where username is metrics
and the password is the one set previously.
Using node_exporter¶
Tuleap can also exposes server metrics (CPU, RAM, etc) on the same end point. It’s useful because it avoids to make two configurations in Prometheus and you don’t have to make your own reverse proxy to let Prometheus access securely to your server metrics.
The server metrics are gathered by node_exporter you can either build it for yourself or you can use the packages provided in community-supplied COPR repository.
The following example uses COPR repository
$> curl -Lo /etc/yum.repos.d/_copr_ibotty-prometheus-exporters.repo https://copr.fedorainfracloud.org/coprs/ibotty/prometheus-exporters/repo/epel-6/ibotty-prometheus-exporters-epel-6.repo
$> yum install -y node_exporter
# Either run node_exporter manually (nohup node_exporter &) or configure supervisord if you want node_exporter to run
# at server reboot
# $> nohup node_exporter &
$> tuleap config-set prometheus_node_exporter http://127.0.0.1:9100/metrics
Then you will see a bunch of data like node_cpu_seconds_total
on /metrics
end-point.
Configuration of Prometheus¶
The following snippet should be added in your prometheus.yml
config.
scrape_configs:
...
- job_name: tuleap
metrics_path: /metrics
scheme: https
basic_auth:
username: metrics
password: Some very strong password set by admin
static_configs:
- targets:
- tuleap.example.com
...