A Prometheus exporter to provide "extended" metrics about a Ceph cluster's running components (e.g., RGW).
-
Needs a Ceph cluster up and running.
-
Needs an admin user
radosgw-admin user create --uid admin --display-name "Admin User" --caps "buckets=*;users=*;usage=read;metadata=read;zone=read" # Access key / "Username" radosgw-admin user info --uid admin | jq '.keys[0].access_key' # Secret key / "Password radosgw-admin user info --uid admin | jq '.keys[0].secret_key'
-
Clone the repository:
git clone https://github.com/koor-tech/extended-ceph-exporter cd extended-ceph-exporter
-
Create a copy of the
.env.example
file and name it.env
. Configure your RGW credentials and endpoint in the.env
file. -
Configure Prometheus to collect metrics from the exporter from
:9138/metrics
endpoint using a static configuration, here's a sample scrape job from theprometheus.yml
:# For more information on Prometheus scrape_configs: # https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config scrape_configs: - job_name: "extended-ceph-metrics" # Override the global default and scrape targets from this job every 30 seconds. scrape_interval: 30s static_configs: # Please change the ip address `127.0.0.1` to target the exporter is running - targets: ['127.0.0.1:9138']
-
To run the exporter locally, run
go run .
-
Should you have Grafana running for metrics visulization, check out the Grafana dashboards.
To install the exporter to Kubernetes using Helm, check out the extended-ceph-exporter Helm Chart.
There is varying support for collectors. The tables below list all existing collectors and the required Ceph components.
Name | Description | Ceph Component |
---|---|---|
rgw_buckets |
Exposes RGW Bucket Usage and Quota metrics from the Ceph cluster. | RGW |
rgw_user_quota |
Exposes RGW User Quota metrics from the Ceph cluster. | RGW |
- Golang 1.19
- Depending on the module requirements, a Ceph cluster with the respective Ceph components.
A VSCode debug config is available to run and debug the project.
To make the exporter talk with a Ceph RGW S3 endpoint, create a copy of the .env.example
file and name it .env
.
Be sure ot add your Ceph RGW S3 endpoint and credentials in it.