ioping_prober

command module
v0.0.0-...-e88f3bb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

ioping_prober

Prometheus style "ioping" prober.

Example Graph

Overview

This prober uses ioping command to run probes against a local file, directory or device and records the responses in Prometheus histogram metrics.

Code initially forked from https://github.com/SuperQ/smokeping_prober/

usage: ioping_prober [<flags>] <target>...

Flags:
  -h, --help              Show context-sensitive help (also try --help-long and --help-man).
      --web.listen-address=":9374"  
                          Address on which to expose metrics and web interface.
      --web.telemetry-path="/metrics"  
                          Path under which to expose metrics.
      --buckets="5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144"  
                          A comma delimited list of buckets to use
  -i, --ping.interval=1s  Ping interval duration
      --write             Write to target. Uses ioping -W and is safe for directory target.
      --unsafewrite       Unsafely write to target. Uses ioping -WWW and is destructive to file|device- read ioping manpage.
      --log.level="info"  Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]
      --log.format="logger:stderr"  
                          Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"
      --version           Show application version.

Args:
  <target>  List of target directory/file/device to ioping

Requirements

ioping command is required on the local machine. This was tested against version ioping 1.2.16.gf549dff

Building and running

Requires Go >= 1.11

go get github.com/dalees/ioping_prober

Running the exporter is best suited for a VM with dedicated disks attached. Do not use --unsafewrite without using volumes that are dedicated to this test. In the example we have attached two ceph volumes, one spinning rust and one nvme. The differences can be seen on the example graph.

./ioping_prober --ping.interval=1s --log.level=debug /dev/vdb /dev/vdc --unsafewrite

Metrics Exported

Metric Name Type Description
ioping_measurements_total Counter Counter of iopings made.
ioping_measurement_duration_seconds Histogram Filesystem response duration.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL