kannibalox / gluster-prometheus

Gluster monitoring using Prometheus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prometheus exporter for Gluster Metrics

Build Status

These exporters will be run on all Gluster peers, So it makes sense to collect only local metrics and aggregate in Prometheus server when required.

Install

mkdir -p $GOPATH/src/github.com/gluster
cd $GOPATH/src/github.com/gluster
git clone https://github.com/gluster/gluster-prometheus.git
cd gluster-prometheus
PREFIX=/usr make
PREFIX=/usr make install

Usage

Run gluster-exporter with default settings, glusterd is consumable at http://localhost:8080/metrics

systemctl enable gluster-exporter
systemctl start gluster-exporter

Systemd service uses following configuration file for global and collectors related configurations.

/etc/gluster-exporter/gluster-exporter.toml
[globals]
gluster-mgmt = "glusterd"
glusterd-dir = "/var/lib/glusterd"
gluster-binary-path = "gluster"
gd1-remote-host = "localhost"
gd2-rest-endpoint = "http://127.0.0.1:24007"
port = 8080
metrics-path = "/metrics"
log-dir = "/var/log"
log-file = "gluster-exporter.log"
log-level = "info"

[collectors.gluster_ps]
name = "gluster_ps"
sync-interval = 5
disabled = false

[collectors.gluster_brick]
name = "gluster_brick"
sync-interval = 5
disabled = false

To use gluster-exporter without systemd,

gluster-exporter --config=/etc/gluster-exporter/gluster-exporter.toml

Metrics

List of supported metrics are documented here.

Adding New metrics

glusterCPUPercentage = prometheus.NewGaugeVec(
    prometheus.GaugeOpts{
        Namespace: "gluster",
        Name:      "cpu_percentage",
        Help:      "CPU Percentage used by Gluster processes",
    },
    []string{"volume", "peerid", "brick_path"},
)
  • Implement the function to gather data, and register to gather data in required interval

prometheus.MustRegister(glusterCPUPercentage)

registerMetric("gluster_brick", brickUtilization)
  • Add an entry in /etc/gluster-exporter/gluster-exporter.toml

[collectors.gluster_ps]
name = "gluster_ps"
sync-interval = 5
disabled = false
  • Thats it! Exporter will run these registered metrics.

About

Gluster monitoring using Prometheus

License:GNU Lesser General Public License v2.1


Languages

Language:Go 87.9%Language:Shell 10.0%Language:Makefile 2.1%