From 22bb251996a1b114197ad47b85d818a2962ddf0e Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Thu, 5 Mar 2009 09:35:28 +0100 Subject: [PATCH] contrib/collection3: Add the "IgnoreUnknown" config option. Used by the "GenericStacked" graphs. --- .../lib/Collectd/Graph/Type/GenericStacked.pm | 30 ++++++++++++++++++++++ .../collection3/lib/Collectd/Graph/TypeLoader.pm | 7 ++--- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm b/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm index a1a3e1cd..ab95ee2f 100644 --- a/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm +++ b/contrib/collection3/lib/Collectd/Graph/Type/GenericStacked.pm @@ -49,6 +49,19 @@ sub getRRDArgs my $colors = $obj->{'rrd_colors'} || {}; my @ret = ('-t', $rrd_title, @$rrd_opts); + my $ignore_unknown = $obj->{'ignore_unknown'} || 0; + if ($ignore_unknown) + { + if ($ignore_unknown =~ m/^(yes|true|on)$/i) + { + $ignore_unknown = 1; + } + else + { + $ignore_unknown = 0; + } + } + if (defined $obj->{'rrd_vertical'}) { push (@ret, '-v', $obj->{'rrd_vertical'}); @@ -59,6 +72,23 @@ sub getRRDArgs sort_idents_by_type_instance ($idents, $obj->{'custom_order'}); } + if ($ignore_unknown) + { + my $new_idents = []; + for (@$idents) + { + if (exists ($obj->{'ds_names'}{$_->{'type_instance'}})) + { + push (@$new_idents, $_); + } + } + + if (@$new_idents) + { + $idents = $new_idents; + } + } + $obj->{'ds_names'} ||= {}; my @names = map { $obj->{'ds_names'}{$_->{'type_instance'}} || $_->{'type_instance'} } (@$idents); diff --git a/contrib/collection3/lib/Collectd/Graph/TypeLoader.pm b/contrib/collection3/lib/Collectd/Graph/TypeLoader.pm index c5fe613f..2452b2a0 100644 --- a/contrib/collection3/lib/Collectd/Graph/TypeLoader.pm +++ b/contrib/collection3/lib/Collectd/Graph/TypeLoader.pm @@ -6,7 +6,7 @@ Collectd::Graph::TypeLoader - Load a module according to the "type" =cut -# Copyright (C) 2008 Florian octo Forster +# Copyright (C) 2008,2009 Florian octo Forster # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software @@ -34,7 +34,7 @@ use Collectd::Graph::Type (); @Collectd::Graph::TypeLoader::EXPORT_OK = ('tl_load_type'); our @ArrayMembers = (qw(data_sources rrd_opts custom_order)); -our @ScalarMembers = (qw(rrd_title rrd_format rrd_vertical scale)); +our @ScalarMembers = (qw(rrd_title rrd_format rrd_vertical scale ignore_unknown)); our @DSMappedMembers = (qw(ds_names rrd_colors)); our %MemberToConfigMap = @@ -47,7 +47,8 @@ our %MemberToConfigMap = rrd_vertical => 'rrdverticallabel', rrd_colors => 'color', scale => 'scale', # GenericIO only - custom_order => 'order' # GenericStacked only + custom_order => 'order', # GenericStacked only + ignore_unknown => 'ignoreunknown' # GenericStacked only ); return (1); -- 2.11.0