2025-10-21 11:52:48 +02:00
2025-10-21 11:05:23 +02:00
2025-10-21 11:06:31 +02:00
2025-10-20 16:05:33 +02:00
2025-10-20 16:05:33 +02:00
2025-10-21 11:52:48 +02:00
2025-10-20 16:05:33 +02:00
2025-10-21 11:52:48 +02:00
2025-10-21 11:12:05 +02:00

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

Description
No description provided
Readme GPL-3.0 274 KiB
Languages
JavaScript 51%
Go 45.6%
Makefile 2%
Dockerfile 1.4%