X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=contrib%2Fcollectd2html.pl;h=511b3f9d585d0a8ad2bfb1ea79e396fa7b8fdbac;hb=40aabf444e124f40603021821e98bcc40c4aaa0e;hp=ab22bf97be48dc88500ebe3ecf5910708ba76191;hpb=a37c766a9309e6efe7653d81fe4c44d6dc5b0af8;p=collectd.git
diff --git a/contrib/collectd2html.pl b/contrib/collectd2html.pl
index ab22bf97..511b3f9d 100644
--- a/contrib/collectd2html.pl
+++ b/contrib/collectd2html.pl
@@ -41,24 +41,34 @@ use Fatal qw(open close);
use File::Basename;
use Getopt::Long qw(:config no_ignore_case bundling pass_through);
-my $DIR = "/var/lib/collectd";
-my $HOST = undef;
-my $IMG_FMT = "PNG";
+my $DIR = "/var/lib/collectd";
+my $HOST = undef;
+my $IMG_FMT = "PNG";
+my $RECURSIVE = 1;
GetOptions (
- "host=s" => \$HOST,
- "data-dir=s" => \$DIR,
- "image-format=s" => \$IMG_FMT
+ "host=s" => \$HOST,
+ "data-dir=s" => \$DIR,
+ "image-format=s" => \$IMG_FMT,
+ "recursive" => \$RECURSIVE
);
+if (($DIR !~ m/\/rrd\/?$/) && (-d "$DIR/rrd")) {
+ $DIR .= "/rrd";
+}
+
+if (defined($HOST) && ($DIR !~ m/\/$HOST\/?$/) && (-d "$DIR/$HOST")) {
+ $DIR .= "/$HOST";
+}
+
my @COLORS = (0xff7777, 0x7777ff, 0x55ff55, 0xffcc77, 0xff77ff, 0x77ffff,
0xffff77, 0x55aaff);
-my @tmp = `/bin/hostname`; chomp(@tmp);
+my @tmp = `/bin/hostname -f`; chomp(@tmp);
$HOST = $tmp[0] if (! defined $HOST);
my $svg_p = ($IMG_FMT eq "SVG");
my $IMG_SFX = $svg_p ? ".svg" : ".png";
my $IMG_DIR = "${HOST}.dir";
-my $HTML = "${HOST}.html";
+my $HTML = "${HOST}.xhtml";
################################################################################
#
@@ -108,54 +118,70 @@ open(OUT, ">$HTML");
my $title="Rrd plot for $HOST";
print OUT <
+
END
foreach my $bn (@rrds){
- my $cleaned_bn = $bn; $cleaned_bn =~ s/%/_/g;
+ my $cleaned_bn = $bn;
+ $cleaned_bn =~ tr/%\//__/;
print OUT <$title
-$title
+$bn
+$bn
END
# graph various ranges
- foreach my $span qw(1hour 1day 1week 1month){
+ foreach my $span (qw(1hour 1day 1week 1month)){
+ system("mkdir -p $IMG_DIR/" . dirname($bn));
my $img = "$IMG_DIR/${bn}-$span$IMG_SFX";
my $cmd = "rrdtool graph $img"
@@ -201,24 +229,28 @@ END
my $cleaned_img = $img; $cleaned_img =~ s/%/%25/g;
if (! $svg_p) {
print OUT <