On 28 Jun 2011, at 15:09, Daniele Sluijters wrote:

> Is it even possible to use such "complex" Target-lines with RRD as a backend?

        You'll have seen earlier replies.
        What you can display is limited only by your imagination and daring
        (or those qualities in the author of your display system).

        For historical reasons, we use a home-grown display system based on
        HTML::Mason.  Here's a fragment showing how client counts are
        aggregated over all our base stations.

        The result is the top graph at http://mrtg.ucd.ie/mrtg/wifi/.

<%perl>
  push @rrdargs,
    "$graph_path/aggregate$tag\+$width" . "x$height.png",  
    '--lazy', 
    '--interlaced',
    '--height', $height,
    '--width', $width,
    '--imginfo', $img_info,
    (($height > 60) ? ( ) : ( '--only-graph', '--color', 'CANVAS#ffffcc99' )),
    '--start', {'-week' => '-180h', '-month' => '-33d', '-year' => 
'-400d'}->{$tag} || '-30h';
  my $count = scalar(@$logs);
  if ($count > 0) {
    foreach my $f ( @$logs ) {
      push @rrdargs, sprintf("DEF:%s=%s:ds0:AVERAGE", $var++, $f);
    }
    for (my $i=0; $i++<$count;) {
      push @rrdargs, sprintf("CDEF:%s%05d=%s%05d,UN,0,%s%05d,IF",
                             'sam', $i, 'raw', $i, 'raw', $i);
    }
    for (my ($i, $j, $k) = ($count)x3; 1 < $i--; $j--) {
      push @rrdargs, sprintf("CDEF:%s%05d=%s%2\$05d,%s%05d,+",
                             'agg', $i, 'sam',
                             (($j == $k) ? 'sam' : 'agg'), $j);
    }
    for (my ($i, $j, $k) = ($count)x3; 1 < $i--; $j--) {
      if ($j == $k) {
        push @rrdargs,
        
sprintf("CDEF:%s%05d=10,%s%2\$05d,GT,0,%3\$s%2\$05d,IF,10,%3\$s%05d,GT,%3\$s%4\$05d,0,IF,+",
                    'bsy', $i, 'sam', $j);
      }
      else {
        push @rrdargs, 
        sprintf("CDEF:%s%05d=10,%s%2\$05d,GT,0,%3\$s%2\$05d,IF,%1\$s%05d,+",
                'bsy', $i, 'sam', $j);
      }
    }
    push @rrdargs,
      'LINE:agg00001#0000a0:' . rrdgraph_legend_escape('Reported wireless 
associations: all APs');
    push @rrdargs,
      'AREA:bsy00001#00a000:' . rrdgraph_legend_escape('Reported wireless 
associations: busy APs');
  
    my ($text, $hsize, $vsize) = RRDs::graph(@rrdargs);
    if (defined $text) {
</%perl>

_______________________________________________
mrtg mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/mrtg

Reply via email to