FreeBSD Manual Pages
GRAFFER(8) System Manager's Manual GRAFFER(8) NAME graffer -- collect numeric values and generate graphs SYNOPSIS graffer [-c config] [-C configdir] [-d database] [-f file] [-g number:timeframe] [-q] [-p] [-t -days[:days]] DESCRIPTION The graffer utility can collect numeric values from external programs and produce graphs from the collected data. The options are as follows: -q Query the current values from described external programs and store them in the database. This is usually done from a crontab(5) like this: * * * * * /usr/local/bin/graffer -q Note that without regular truncating (see below), the database will grow continually. -p Produce the configured set of graph images based on the sta- tistics collected beforehand. -g number:timeframe Get stored values from the database for collect number accord- ing to the time frame and print them to stdout. Shows queue with last 16 or less calculated records, time frame maximum value, time frame average value, current maximum value and current average value according to the queue. Examples: graffer -c /usr/local/etc/graffer/graffer.conf -g '7:from 3 hours to now' graffer -c /usr/local/etc/graffer/graffer.conf -g '12:from 50 minutes to 30 minutes' graffer -c /usr/local/etc/graffer/graffer.conf -g '23:from 52 weeks to 40 weeks' -t days:[days] Truncate the database, removing entries older than the speci- fied number of days. The first value applies to uncompressed entries which constitute roughly 90 percent of the database, the second value to compressed entries. Uncompressed entries are needed only for high-resolution graphs over short time pe- riods. Assuming statistics are queried every I seconds, and a graph of width W pixels covering a time period of T seconds is gen- erated, then uncompressed entries are only used when T/I < W*10. In other words, removing uncompressed entries earlier than compressed ones drastically reduces the database size. Graphs can be generated over the entire time range the compressed en- tries cover (monthly or yearly graphs), and high resolution graphs over short time periods in the recent past don't lose any precision. The precision is gradually lost for older pe- riods. A typical invokation would be graffer -t 31:365 This removes uncompressed entries older than a month and com- pressed entries older than a year, allowing generation of graphs up to one year into the past, while keeping full preci- sion for one month. Note that truncating the database does not usually shrink the size of the database file. Removed entries are only marked as deleted and their space is later reused for new entries. -f file Copy the database into a new file, skipping removed and in- valid entries. This operation takes longer than truncating, but produces a smaller database file. This can also be used to recover data from a corrupted database, indicated by the following error during truncating: data_truncate: db->del() returned 1 main: data_truncate() failed -c config Use the specified configuration file instead of the default /usr/local/etc/graffer/graffer.conf. Syntax: collect = "collect" number = coldef . coldef = ( "path to external program" ) [ "tdiff" | "vdiff"]. image = "image" filename "{" time theme size [ left ] [ right ] "}" . time = "from" number [ unit ] [ "to" number [ unit ] ] . unit = "minutes" | "hours" | "days" | "weeks" | "months" | "years" . theme = "theme" ( "white" | "black" ) . size = "width" number "height" number . left = "left" graphs . right = "right" graphs . graphs = graph [ "," graphs ] . graph = "graph" number [ "bps" ] [ "avg" | "min" | "max" ] label unit "color" red green blue [ "filled" ] . collect lines define what values to store in the database. Each definition should use a unique number, which is used in graph lines to reference those values. The tdiff option causes differential values (change of value per second) to be stored instead of absolute values. For ex- ample, storing interface byte counters (which count the number of bytes since last reset) differentially produces values rep- resenting current speed (bytes per second). Several images can be defined in the same config file. An im- age can include two independent y-axes, both of which auto- scale independently to the maximum value in the selected range. Each axis can display an arbitrary number of graphs. The vdiff option causes absolute differential values to be stored instead of absolute values. For example, storing in- terface packet counters (which count the number of packets since last reset). When the bps option is used, values are multiplied by eight, and the unit prefixes 'k' (kilo), 'm' (mega), etc. are multi- ples of 1024, instead of 1000. -C configdir Config directory. Use all files from this directory instead of the default /usr/local/etc/graffer/graffer.conf. -d database Database file. Default is /var/db/graffer.db. EXAMPLES collect 1 = "/usr/local/bin/statgrab -u net.sis0.rx" tdiff collect 2 = "/usr/local/bin/statgrab -u net.sis0.tx" tdiff image "/var/www/htdocs/bandwidth.png" { from 7 days to now width 1000 height 400 left graph 1 bps "in" "bits/s" color 0 192 0 filled right graph 2 bps "out" "bits/s" color 0 0 255 } collect 3 = "/usr/local/etc/graffer/scripts/freebsd/netstat.sh rl0 in" tdiff collect 4 = "/usr/local/etc/graffer/scripts/freebsd/disk.sh /dev/ad0 temp" image "/var/www/htdocs/rl0.png" { from 12 months to now theme black width 800 height 200 left graph 3 bps "states" "entries" color 200 0 0 filled, right graph 4 "ad0" "temperature" color 0 0 255 } SEE ALSO crontab(5) FreeBSD ports 15.quarterly September 16, 2025 GRAFFER(8)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=graffer&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>
