~ubuntu-branches/ubuntu/oneiric/collectd/oneiric

« back to all changes in this revision

Viewing changes to contrib/collection3/lib/Collectd/Graph/Type/GenericIO.pm

  • Committer: Bazaar Package Importer
  • Author(s): Morten Kjeldgaard
  • Date: 2008-11-18 15:54:20 UTC
  • mfrom: (1.1.5 upstream) (3.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20081118155420-sc2mxv2pebafkmon
Tags: 4.4.2-2ubuntu1
* Merge from Debian unstable (LP: #298828). Remaining Ubuntu changes:
* Add ubuntu_in6-glibc28.dpatch patch, fix FTBFS.
* Add ubuntu_hardening.dpatch patch, fix FTBFS.
* Add ubuntu_perl.c.dpatch, fix FTBFS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package Collectd::Graph::Type::GenericIO;
 
2
 
 
3
use strict;
 
4
use warnings;
 
5
use base ('Collectd::Graph::Type');
 
6
 
 
7
use Carp ('confess');
 
8
 
 
9
use Collectd::Graph::Common (qw($ColorCanvas ident_to_filename get_faded_color));
 
10
 
 
11
return (1);
 
12
 
 
13
sub getRRDArgs
 
14
{
 
15
  my $obj = shift;
 
16
  my $index = shift;
 
17
 
 
18
  my $ident = $obj->{'files'}[$index] || confess ("Unknown index $index");
 
19
  my $filename = ident_to_filename ($ident);
 
20
 
 
21
  my $rrd_opts = $obj->{'rrd_opts'} || [];
 
22
  my $rrd_title = $obj->getTitle ($ident);
 
23
  my $format = $obj->{'rrd_format'} || '%5.1lf%s';
 
24
 
 
25
  my $ds_list = $obj->getDataSources ();
 
26
  my $ds_names = $obj->{'ds_names'};
 
27
  if (!$ds_names)
 
28
  {
 
29
    $ds_names = {};
 
30
  }
 
31
 
 
32
  my $colors = $obj->{'rrd_colors'} || {};
 
33
  my @ret = ('-t', $rrd_title, @$rrd_opts);
 
34
 
 
35
  if (defined $obj->{'rrd_vertical'})
 
36
  {
 
37
    push (@ret, '-v', $obj->{'rrd_vertical'});
 
38
  }
 
39
 
 
40
  if (@$ds_list != 2)
 
41
  {
 
42
    my $num = 0 + @$ds_list;
 
43
    confess ("Expected two data sources, but there is/are $num");
 
44
  }
 
45
 
 
46
  my $rx_ds = $ds_list->[0];
 
47
  my $tx_ds = $ds_list->[1];
 
48
 
 
49
  my $rx_ds_name = $ds_names->{$rx_ds} || $rx_ds;
 
50
  my $tx_ds_name = $ds_names->{$tx_ds} || $tx_ds;
 
51
 
 
52
  my $rx_color_fg = $colors->{$rx_ds} || '0000ff';
 
53
  my $tx_color_fg = $colors->{$tx_ds} || '00b000';
 
54
 
 
55
  my $rx_color_bg = get_faded_color ($rx_color_fg);
 
56
  my $tx_color_bg = get_faded_color ($tx_color_fg);
 
57
  my $overlap_color = get_faded_color ($rx_color_bg, background => $tx_color_bg);
 
58
 
 
59
  $filename =~ s#:#\\:#g;
 
60
  $rx_ds =~ s#:#\\:#g;
 
61
  $tx_ds =~ s#:#\\:#g;
 
62
  $rx_ds_name =~ s#:#\\:#g;
 
63
  $tx_ds_name =~ s#:#\\:#g;
 
64
 
 
65
  if ($obj->{'scale'})
 
66
  {
 
67
    my $factor = $obj->{'scale'};
 
68
 
 
69
    push (@ret,
 
70
        "DEF:min_rx_raw=${filename}:${rx_ds}:MIN",
 
71
        "DEF:avg_rx_raw=${filename}:${rx_ds}:AVERAGE",
 
72
        "DEF:max_rx_raw=${filename}:${rx_ds}:MAX",
 
73
        "DEF:min_tx_raw=${filename}:${tx_ds}:MIN",
 
74
        "DEF:avg_tx_raw=${filename}:${tx_ds}:AVERAGE",
 
75
        "DEF:max_tx_raw=${filename}:${tx_ds}:MAX",
 
76
        "CDEF:min_rx=min_rx_raw,${factor},*",
 
77
        "CDEF:avg_rx=avg_rx_raw,${factor},*",
 
78
        "CDEF:max_rx=max_rx_raw,${factor},*",
 
79
        "CDEF:min_tx=min_tx_raw,${factor},*",
 
80
        "CDEF:avg_tx=avg_tx_raw,${factor},*",
 
81
        "CDEF:max_tx=max_tx_raw,${factor},*");
 
82
  }
 
83
  else # (!$obj->{'scale'})
 
84
  {
 
85
    push (@ret,
 
86
        "DEF:min_rx=${filename}:${rx_ds}:MIN",
 
87
        "DEF:avg_rx=${filename}:${rx_ds}:AVERAGE",
 
88
        "DEF:max_rx=${filename}:${rx_ds}:MAX",
 
89
        "DEF:min_tx=${filename}:${tx_ds}:MIN",
 
90
        "DEF:avg_tx=${filename}:${tx_ds}:AVERAGE",
 
91
        "DEF:max_tx=${filename}:${tx_ds}:MAX");
 
92
  }
 
93
 
 
94
  push (@ret,
 
95
      "CDEF:overlap=avg_rx,avg_tx,LT,avg_rx,avg_tx,IF",
 
96
      "AREA:avg_rx#${rx_color_bg}",
 
97
      "AREA:avg_tx#${tx_color_bg}",
 
98
      "AREA:overlap#${overlap_color}",
 
99
      "LINE1:avg_rx#${rx_color_fg}:${rx_ds_name}",
 
100
      "GPRINT:min_rx:MIN:${format} Min,",
 
101
      "GPRINT:avg_rx:AVERAGE:${format} Avg,",
 
102
      "GPRINT:max_rx:MAX:${format} Max,",
 
103
      "GPRINT:avg_rx:LAST:${format} Last\\l",
 
104
      "LINE1:avg_tx#${tx_color_fg}:${tx_ds_name}",
 
105
      "GPRINT:min_tx:MIN:${format} Min,",
 
106
      "GPRINT:avg_tx:AVERAGE:${format} Avg,",
 
107
      "GPRINT:max_tx:MAX:${format} Max,",
 
108
      "GPRINT:avg_tx:LAST:${format} Last\\l");
 
109
 
 
110
  return (\@ret);
 
111
} # getRRDArgs
 
112
 
 
113
# vim: set shiftwidth=2 softtabstop=2 tabstop=8 :