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
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"
# If you want to connect to a remote gd1 host, set the variable gd1-remote-host
# However, using a remote host restrict the gluster cli to read-only commands
# The following collectors won't work in remote mode : gluster_volume_counts, gluster_volume_profile
#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
List of supported metrics are documented here.
-
Add new file under
gluster-exporter
directory. -
Define Metrics depending on the type of Metric(https://prometheus.io/docs/concepts/metric_types/) For example, "Gauge" Metrics type
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.