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:Basic Concepts:
- All new systematic interface
- Unlimited number of plot lines (dynamic allocation up to memory limit)
- Arbitrary, unlimited aggregation between any device(s) and any interface(s)
- Autosizing of graph legend space
- Custom Graph Titling
- Custom Legend Titling
- Unfilled line objects always placed on top of filled line objects
- Each line can have dashed Nth percentile lines (for arbitrary N)
This document is designed to serve as a demo of the new rtgplot features. Note that rtgplot is still under development.
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:
Examples: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
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 | |
|---|---|
| |
| 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 | |
|---|---|
| |
| 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 | |
|---|---|
| |
| 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 | |
|---|---|
| |
| 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 | |
|---|---|
| |
| 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 | |
|---|---|
| |
| Arguments: | rtgplot.cgi?PO=Server+Temperature:500:150:gauge,units=Celsius:1112818665:1112904765& DO=1:g1:1& LO=1:1::Netra1 |
| Example 7. Impulses | |
|---|---|
| |
| Arguments: | rtgplot.cgi?PO=SONET+Errors:500:150:impulse,units=Errors:1112818665:1112904765& DO=1:g1:1& LO=1:1::so-0/0/0 |