Prometheus exporter that scrapes meta information about a ceph cluster
Go to file
Vaibhav Bhembre dfb29a8ff0 Integration of coveralls.io 2016-01-22 17:14:07 +00:00
collectors Add doc comments, clarify error log messages, use collectors package name 2016-01-10 15:36:54 -05:00
.gitignore Add Ceph Exporter 2016-01-06 13:27:16 -05:00
.travis.yml Integration of coveralls.io 2016-01-22 17:14:07 +00:00
CONTRIBUTING.md Add Ceph Exporter 2016-01-06 13:27:16 -05:00
Dockerfile Update command to entrypoint in order to make passing arguments easier 2016-01-07 13:44:31 -05:00
LICENSE Add Ceph Exporter 2016-01-06 13:27:16 -05:00
Makefile Add Ceph Exporter 2016-01-06 13:27:16 -05:00
Makefile.COMMON Add Ceph Exporter 2016-01-06 13:27:16 -05:00
README.md Merge pull request #3 from digitalocean/add_docker_integration 2016-01-07 16:35:52 -05:00
exporter.go Add doc comments, clarify error log messages, use collectors package name 2016-01-10 15:36:54 -05:00
sample.png Add Ceph Exporter 2016-01-06 13:27:16 -05:00

README.md

Ceph Exporter GoDoc Build Status

Prometheus exporter that scrapes meta information about a running ceph cluster. All the information gathered from the cluster is done by interacting with the monitors using an appropriate wrapper over rados_mon_command(). Hence, no additional setup is necessary other than having a working ceph cluster.

Dependencies

You should ideally run this exporter from the client that can talk to Ceph. Like any other ceph client it needs the following files to run correctly.

  • ceph.conf containing your ceph configuration.
  • ceph.<user>.keyring in order to authenticate to your cluster.

Ceph exporter will automatically pick those up if they are present in any of the default locations. Otherwise you will need to provide the configuration manually using --ceph.config flag.

We use Ceph's official Golang client to run commands on the cluster.

Flags

Name Description Default
telemetry.addr Host:Port pair to run exporter on *:9190
telemetry.path URL Path for surfacing metrics to prometheus /metrics
ceph.config Path to ceph configuration file ""

Installation

Typical way of installing in Go should work.

go install

A Makefile is provided in case you find a need for it.

Docker Image

It is possible to run the exporter as a docker image. The port 9190 is exposed for running the default ceph exporter.

The exporter needs your ceph configuration in order to establish communication with the monitors. You can either pass it in as an additional command or ideally you would just mount the directory containing both your ceph.conf and your user's keyring under the default /etc/ceph location that Ceph checks for.

A sample run would look like:

$ docker build -t digitalocean/ceph_exporter .
...
<build takes place here>
...
$ docker run -v /etc/ceph:/etc/ceph -p=9190:9190 -it digitalocean/ceph_exporter

You would need to ensure your image can talk over to the monitors so if it needs access to your host's network stack you might need to add --net=host to the above command. It makes the port mapping redundant so the -p flag can be removed.

Point your prometheus to scrape from :9190 on your host now (or your port of choice if you decide to change it).

Contributing

Please refer to the CONTRIBUTING guide for more information on how to submit your changes to this repository.

Sample view

If you have promdash set up you can generate views like:


Copyright @ 2016 DigitalOcean™ Inc.