Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
NetBSD Performance capture/charting tool
JavaScript Ruby
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Kunabi is a quick and dirty solution I came up with to capture all of the primary metrics available on NetBSD
to track long term as well as plot.
Initially I was using it to help track metrics when doing benchmarks but now I use it
on all production servers to be able to track performance.

sqlite3, rubygems
gems sinatra, yaml

It is a single script at the moment used for both capture and plotting.
This should be broken out shortly.
Below is a brief overview of syntax


-d (no argument)
Turn debugging on which adds more verbose output

-D (no argument)
WARNING! This removes your database collection file.

-c (no argument)
Collect information from the various commands like vmstat/netstat/iostat/pstat

-e "Event name"
This allows you to collect data points and have them assigned to a given event.
For example on several runs of benchmarks I will kick this off
with different event names so I can plot those metrics as they apply to a given
benchmark run.

-p (no argument)
Plot all charts related to the data collected.
Right now all charts are plotted and there is no subcontrol over plotting by name, group.

-r (no argument)
Plot charts using relative time to the beginning of capture.
Good for benchmarks where you wish to compare the results of various events against each other
with relative time scales.
Default is to use absolute date/time

-i (no argument)
This just creates an index.html of the images and thumbnails found in the @home directory.
It assumes thumbnails exist.

-l "number of loops"
Turning looping on for argument value runs.
This is used in conjunction with -w to setup
a loop of capturing data points with the -w option determining how long
to sleep between runs.
Example kunabi.rb -l 10 -w 60
Would loop over 10 minutes capturing once a minute.
Used in conjunction with -e helps make the charts comparable with same number of iterations.

-L "limit charts to this number of data points."
This limits the charted data to the last n data points.
Adds a limit clause to the sql queries to value given.
Works well for cases of very large data groups that result in excessive plot times.

-t (no argument)
Plot thumbnails for the charts created.
For performance reasons this is not enabled by default.
In order to use -i to create index.html you need to ensure -t is used.

-w "number of seconds to wait between runs"
Used with the -l option to loop and determine the wait time between runs.
Something went wrong with that request. Please try again.