Set up Prometheus to Consume Couchbase Metrics
With Couchbase 7.x, it’s not necessary to write a custom Prometheus Exporter. This page will demonstrate how to enable a Prometheus server to read from Couchbase’s Prometheus-ready endpoints.
Make sure that you have Docker installed and running on your machine. You should also have an available Couchbase cluster with at least one running node.
Create a file that contains a list of the cluster’s node targets. This is done by issuing a request to the server from the command line:
wget --content-disposition \ 'http://10.112.211.101:8091/prometheus_sd_config.yaml' \ --http-user Administrator --http-password password
This will generate a configuration file containing the target addresses of the nodes in your cluster.
|The name and contents of the file will depend on the configuration of the cluster:|
- targets: - '10.144.220.101:8091' - '10.144.220.102:8091'
Create a new directory on your system and copy the file to the new directory:
mkdir ~/prometheus cp couchbase_sd_config_my-cluster.yml ~/prometheus
Create a new file called
prometheus.yml in the directory containing the targets file.
Populate the file with the following text:
scrape_configs: - job_name: 'couchbase_cluster' (1) basic_auth: username: 'Administrator' (2) password: 'password' (3) file_sd_configs: - files: - 'couchbase_sd_config_my-cluster.yml' (4) refresh_interval: 15s
|1||This is the name that Prometheus will assign to the process retrieving data from the target nodes.|
|2||The username the process uses to log into the cluster.|
|3||The password the process uses to log into the cluster.|
|4||The name of target file. The process will use this to read the addresses of the target nodes.|
The directory should contain the following files.
📂 ~ (home directory) + 📂 prometheus 📄 prometheus.yml 📄 couchbase_sd_config_my-cluster.yml
|The cluster configuration file will have a different name to the one shown here.|
Open a terminal window and run the following command to provision Prometheus:
docker run \ -p 9090:9090 \ (1) -v ~/prometheus:/etc/prometheus \ (2) prom/prometheus
|1||The port through which the Prometheus server is accessed and takes the form:
|2||This is the mapping of the Prometheus configuration directory to the host machine configuration.
Once the Docker container has started up, visit
http://localhost:9090/targets to ensure that Prometheus is accessing the cluster correctly: