Skip to content

Latest commit

 

History

History
103 lines (72 loc) · 2.8 KB

README.md

File metadata and controls

103 lines (72 loc) · 2.8 KB

Fiord - FIO Report Data to Jenkins or InfluxDB

Fiord is a command-line tool that takes FIO (Flexible I/O tester) JSON output, reformats, then sends to metrics databases for retention and analysis.

Supported Outputs:

  • summary: Human-readable summary in table, raw, or a custom Go template format.
  • influxdb: Sends report data to InfluxDB.
  • taurus: Outputs in XML format that the Jenkins Performance Plugin can parse.

Usage

$ ./fiord
Fiord summarizes FIO benchmark reports and can save them to a variety
of backend datastores.  It is intended to be used as part of a CI pipeline, and
includes a backend that produces output compatible with the Jenkins Performance
Plugin.  InfluxDB is also supported, and others may be added in the future.

Input should be in JSON format, generated by fio --output-format=json and piped
in using:
	fiord summary < input.json

Usage:
  fiord [command]

Available Commands:
  influxdb    Publish report to InfluxDB
  summary     Basic job summary
  taurus      Taurus final-status output

Flags:
      --config string   config file (default is $HOME/.fiord.yaml)
  -h, --help            help for fiord
  -t, --toggle          Help message for toggle

Input Data

Run fio with the --output-format=json parameter, and save the output to a file. e.g.:

fio --output-format=json job1.fio > job1.json

Then pipe the input into fiord:

fiord summary < job1.json

Or, all-in-one:

fio --output-format=json job1.fio | fiord summary

You may also specify the input file using --input <filename>. This can be useful when using the Docker container:

docker run --rm -v `pwd`/data:/data croomes/fiord summary -i /data/input.json

Backends

InfluxDB

The InfluxDB backend posts data directly to InfluxDB. The database must already exist.

fio --output-format=json job1.fio | fiord influxdb --uri http://127.0.0.1:8086 --db=fio

Taurus

Taurus is an XML format supported by the Jenkins Performance Plugin. The XML is written to STDOUT, so you probably want to write to a file within your build workspace.

You may specify --report-url <url> to include a link to an external report.

fio --output-format=json job1.fio | fiord taurus > job1.xml

Docker

fiord can be run as a standalone binary or as a Docker container. To run in a container, you must place the input into a file, and share the directory into the container using a volume. Then, specify the input file when running the container:

docker run --rm -v `pwd`/data:/data croomes/fiord summary -i /data/input.json

The fiord container is available at: https://hub.docker.com/r/croomes/fiord