One of our clients uses a very large HP ProCurve 4108gl switch as the central hub of their network.  When I'm looking at traffic graphs from it for large spaces of time, I invariably see it pegged to +/- 20Gbps because of some traffic spikes during the day (e.g. Windows clients talking to WSUS and downloading their patches).  If I zoom in on one of the "empty" stretches of time, I see that there is actually some traffic flowing – it's just so small in comparison that it gets flatlined by the spikes.  What I'd like to be able to do is to change the graph from a linear one in the Y (bps) axis to a logarithmic one, so I can see my traffic.   For example, here's the past 24 hours:

(The rrdtool command that produces this graph is truly impressive and only crawls out of its blue box with the last set of CDEF statements before the giant list of AREA statements.)

(All graphs generated for this e-mail use the same time span on the same hardware)

I know, I know, "Use the Source, Luke!", but I've only watched the commits fly past, not actually dug into the code past the config file (and this doesn't appear to be a configuration option).  rrdtool_graph() is called in three places, and fortunately only defined in one.  Applying the obvious small patch:

Index: html/includes/graphs/graph.inc.php
===================================================================
--- html/includes/graphs/graph.inc.php (revision 3268)
+++ html/includes/graphs/graph.inc.php (working copy)
@@ -146,6 +146,7 @@
 
     if ($rrd_options)
     {
+      $rrd_options .= " --logarithmic";
       rrdtool_graph($graphfile, $rrd_options);
       if ($debug) { echo($rrd_cmd); }
       if (is_file($graphfile))


Nets me this:



Which could probably use a little more tweaking.  I'd rather see SI "-bi-" units on the left rather than scientific notation.  Also, it does tend to whack the CPU pretty hard figuring it all out, pegging both of the CPUs in the old ml350 I'm using for monitoring.  Running "rrdgraph" at "nice +4" (or better) would likely be a win w/r/t data collection.  

This patch:

Index: html/includes/graphs/graph.inc.php
===================================================================
--- html/includes/graphs/graph.inc.php (revision 3268)
+++ html/includes/graphs/graph.inc.php (working copy)
@@ -146,6 +146,7 @@
 
     if ($rrd_options)
     {
+      $rrd_options .= " --logarithmic --units=si";
       rrdtool_graph($graphfile, $rrd_options);
       if ($debug) { echo($rrd_cmd); }
       if (is_file($graphfile))


Nets this:


I'm pretty happy with this, overall.  

For those who are curious, the ProCurve Switch 4108gl has a claimed capacity of:

routing/switching capacity 36.6 Gbps
Throughput up to 71.4 mpps

Being able to tweak individual graphs to show logarithmically would probably be nice, just to save some CPU for graphs that don't really need it.  

-- 
Andrew Beals
Cell: 913-787-7538
Desk: 913-948-8782
E-mail: ABeals@mersoft.com