mirror of
https://codeberg.org/scip/io-exporter.git
synced 2025-12-17 04:21:00 +01:00
1.9 KiB
1.9 KiB
io-exporter
Report if a given filesystem is operating properly
Description
This little exporter checks if a filesystem is working properly by writing and reading to a specified file using direct/io. It reports the results via HTTP as prometheus metrics. Additional labels can be specified via commandline.
Usage
io-exporter [options] <file>
Options:
-t --timeout <int> When should the operation timeout in seconds
-l --label <label=value> Add label to exported metric
-h --help Show help
-v --version Show program version
Output
Given this command:
io-exporter -l foo=bar -l blah=blubb t/blah
You'll get such metrics:
# HELP io_exporter_io_latency how long does the operation take in seconds
# TYPE io_exporter_io_latency gauge
io_exporter_io_latency{file="/tmp/blah",maxwait="1",namespace="debug",pod="foo1"} 0.0001142815
# HELP io_exporter_io_operation whether io is working on the pvc, 1=ok, 0=fail
# TYPE io_exporter_io_operation gauge
io_exporter_io_operation{file="/tmp/blah",maxwait="1",namespace="debug",pod="foo1"} 1
Installation
There are no released binaries yet.
Installation from source
Check out the repository and execute go build, then copy the
compiled binary to your $PATH.
Or, if you have GNU Make installed, just execute:
go build
Docker
To build:
docker compose build
To run locally:
mkdir t
chmod 1777 t
docker compose run -v ./t:/pvc ioexporter /pvc/testfile
Or use the pre-build image:
docker run -u `id -u $USER` -v ./t:/pvc ghcr.io/tlinden/io-exporter:latest /pvc/testfile
Report bugs
Please open an issue. Thanks!
License
This work is licensed under the terms of the General Public Licens version 3.
Author
Copyleft (c) 2025 Thomas von Dein