Gluster exporter for Prometheus
go get github.com/ofesseler/gluster_exporter
./gluster_exporter
Option | Default | Description |
---|---|---|
-h, --help | - | Displays usage. |
--web.listen-address | :9189 |
The address to listen on for HTTP requests. |
--web.metrics-path | /metrics |
URL Endpoint for metrics |
--gluster.volumes | _all |
Comma separated volume names: vol1,vol2,vol3. Default is '_all' to scrape all metrics |
--gluster.executable-path | /usr/sbin/gluster |
Path to gluster executable. |
--profile | false |
Enable gluster profiling reports. |
--quota | false |
Enable gluster quota reports. |
--log.format | logger:stderr |
Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true" |
--log.level | info |
Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal] |
--version | - | Prints version information |
build: Go build
docker: build and run in docker container
gometalinter: run some linting checks
gotest: run go tests and reformats
build: runs go build for gluster_exporter
docker: runs docker build and copy new built gluster_exporter
gometalinter: runs gometalinter lint tools
gotest: runs vet and fmt go tools
Commands within the exporter are executed with --xml
.
Name | type | impl. state |
---|---|---|
OpErrno | Gauge | implemented |
opRet | Gauge | implemented |
Status | Gauge | implemented |
BrickCount | Gauge | implemented |
Volumes.Count | Gauge | implemented |
Volume.Status | Gauge | implemented |
Name | type | impl. state |
---|---|---|
peerStatus.peer.state | Gauge | pending |
peerStatus.peer.connected | Gauge | implemented |
Name | type | impl. state |
---|---|---|
VolProfile.ProfileOp | Gauge | pending |
VolProfile.BrickCount | Gauge | implemented |
VolProfile.CumulativeStatus.Duration | Count | implemented |
VolProfile.CumulativeStatus.TotalRead | Count | implemented |
VolProfile.CumulativeStatus.TotalWrite | Count | implemented |
VolProfile.CumulativeStats.FopStats.Fop.Name | CREATE, ENTRYLK, FINODELK, FLUSH, FXATTROP, LOOKUP, OPENDIR, READDIR, STATFS, WRITE | implemented as label |
VolProfile.CumulativeStats.FopStats.Fop.Hits | Count | implemented |
VolProfile.CumulativeStats.FopStats.Fop.AvgLatency | Gauge | implemented |
VolProfile.CumulativeStats.FopStats.Fop.MinLatency | Gauge | implemented |
VolProfile.CumulativeStats.FopStats.Fop.MaxLatency | Gauge | implemented |
Name | type | Labels | impl. state |
---|---|---|---|
VolStatus.Volumes.Volume[].Node[].SizeFree | Gauge | hostname, path, volume | implemented |
VolStatus.Volumes.Volume[].Node[].SizeTotal | Count | hostname, path, volume | implemented |
VolStatus.Volumes.Volume[].Node[].InodesFree | Gauge | hostname, path, volume | implemented |
VolStatus.Volumes.Volume[].Node[].InodesTotal | Count | hostname, path, volume | implemented |
Name | Description |
---|---|
up | Was the last query of Gluster successful. |
volumes_available | How many volumes were up at the last query. |
volume_status | Status code of requested volume. |
node_size_free_bytes | Free bytes reported for each node on each instance. Labels are to distinguish origins. |
node_size_bytes_total | Total bytes reported for each node on each instance. Labels are to distinguish origins. |
node_inodes_free | Free inodes reported for each node on each instance. Labels are to distinguish origins. |
node_inodes_total | Total inodes reported for each node on each instance. Labels are to distinguish origins. |
brick_available | Number of bricks available at last query. |
brick_duration_seconds_total | Time running volume brick in seconds. |
brick_data_read_bytes_total | Total amount of bytes of data read by brick. |
brick_data_written_bytes_total | Total amount of bytes of data written by brick. |
brick_fop_hits_total | Total amount of file operation hits. |
brick_fop_latency_avg | Average fileoperations latency over total uptime |
brick_fop_latency_min | Minimum fileoperations latency over total uptime |
brick_fop_latency_max | Maximum fileoperations latency over total uptime |
peers_connected | Is peer connected to gluster cluster. |
heal_info_files_count | File count of files out of sync, when calling 'gluster v heal VOLNAME info |
volume_writeable | Writes and deletes file in Volume and checks if it is writeable |
mount_successful | Checks if mountpoint exists, returns a bool value 0 or 1 |
If the following message appears while trying to get some information out of your gluster. Increase scrape interval in prometheus.yml
to at least 30s.
Another transaction is in progress for gv_cluster. Please try again after sometime
If the glusterd.service is running in external host not in docker, we can use servicemonitor
-> service
-> endpoints
method to get its metrics.
- yaml files look at external glusterfs service monitor