rtgplot 0.8.x demo
Rob Beverly / February 26, 2005
(Updated April 8, 2005)

Intro:

rtgplot (part of the RTG package) is largely rewritten for the 0.8 release as specified in the 0.8 roadmap. It should now be significantly more flexible and powerful. Some notable features in the latest version:

This document is designed to serve as a demo of the new rtgplot features. Note that rtgplot is still under development.

Basic Concepts:
rtgplot graphs are now comprised of three basic components: Plot Objects (POs), Data Objects (DOs) and Line Objects (LOs). POs define plot properties such as title, image size and scaling. DOs represent device OID pairs (for example, ifInOctets on some interface of a router). LOs are the objects which are actually plotted. LOs may be made up of multiple DOs when aggregating DOs, can have custom legends, factors, fills, percentiles, etc. Each DO and LO is referenced by a unique integer.
Specifying Objects:
PO=PlotTitle:XSize:YSize:options:Begin:End

where
  PlotTitle = String
  XSize     = Integer
  YSize     = Integer
  options   = Comma Separated Options
  Begin     = Unixtime Integer
  End       = Unixtime Integer

DO=id:tablename:ifaceid

where
  id        = Integer
  tablename = String
  ifaceid   = Integer

LO=id:DOlist:options:legend

where
  id        = Integer
  DOlist    = Comma Separated Integers
  options   = Comma Separated Options
  legend    = String

Examples:
The easiest way to understand invoking rtgplot is by example (the arguments here are broken by whitespace only to keep them on one page).

Example 1. Basic Plot
demo1.png
Arguments: rtgplot.cgi?PO=Custom+Title:500:150::1043211600:1043300000& DO=1:ifInOctets_2:7&DO=2:ifOutOctets_2:7& LO=1:1::Traffic+In&LO=2:2::Traffic+Out

Example 2. Multiple Lines
demo2.png
Arguments: rtgplot.cgi?PO=Custom+Title:500:150::1043211600:1043300000& DO=1:ifInOctets_2:7&DO=2:ifOutOctets_2:7& DO=3:ifInOctets_2:8&DO=4:ifOutOctets_2:8& LO=1:1::Traffic+A+In&LO=2:2::Traffic+A+Out& LO=3:3::Traffic+B+In&LO=4:4::Traffic+B+Out

Example 3. Multiple Lines, Filled, Percentiles
demo3.png
Arguments: rtgplot.cgi?PO=Custom+Filled+Plot:500:150::1043211600:1043300000& DO=1:ifInOctets_2:7&DO=2:ifOutOctets_2:7& DO=3:ifInOctets_2:8&DO=4:ifOutOctets_2:8& LO=1:1::Traffic+A+In&LO=2:2:percentile=95:Traffic+A+Out& LO=3:3:percentile=75:Traffic+B+In&LO=4:4:filled:Traffic+B+Out

Example 4. Aggregation
demo4.png
Arguments: rtgplot.cgi?PO=Custom+SuperDuper+Plot:500:150::1043211600:1043300000& DO=1:ifInOctets_2:7&DO=2:ifOutOctets_2:7& LO=1:1::Traffic+In&LO=2:2::Traffic+Out&LO=3:1,2:aggr,filled:Aggregate

Example 5. Aggregation between Interfaces
demo5.png
Arguments: rtgplot.cgi?PO=Custom+Aggregate+Plot:500:150::1043211600:1043300000& DO=1:ifInOctets_2:7&DO=2:ifOutOctets_2:7& DO=3:ifInOctets_2:8&DO=4:ifOutOctets_2:8& LO=1:1::Traffic+A+In&LO=2:2::Traffic+A+Out& LO=3:3::Traffic+B+In&LO=4:4::Traffic+B+Out& LO=7:1,3:aggr,filled:A+B+Aggregate+In& LO=6:2,4:aggr,percentile=95:A+B+Aggregate+Out

Example 6. Gauges
demo6.png
Arguments: rtgplot.cgi?PO=Server+Temperature:500:150:gauge,units=Celsius:1112818665:1112904765& DO=1:g1:1& LO=1:1::Netra1

Example 7. Impulses
demo7.png
Arguments: rtgplot.cgi?PO=SONET+Errors:500:150:impulse,units=Errors:1112818665:1112904765& DO=1:g1:1& LO=1:1::so-0/0/0