applied both patches, thanks! On 3/5/18 9:58 AM, Dominik Csapak wrote: > the graphite daemons which accept the data (carbon), only > accepts numeric values, and logs all invalid lines > > since that were about 5 values per vm/ct this generated lot of noise > in the carbon log > > so we check with a regex if a value is numeric, and > additionally we have a blacklist of keys which seem to be numeric but > are either boolean (e.g. template) or a state (e.g. pid) > > Signed-off-by: Dominik Csapak <[email protected]> > --- > changes from v1: > * improve number regex (thanks thomas :) ) > * add blacklist for non-numeric values > * add explaining comment for all other values > PVE/Status/Graphite.pm | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/PVE/Status/Graphite.pm b/PVE/Status/Graphite.pm > index 849930f0..64ca89c0 100644 > --- a/PVE/Status/Graphite.pm > +++ b/PVE/Status/Graphite.pm > @@ -36,6 +36,14 @@ sub options { > }; > } > > +# we do not want boolean/state information to export to graphite > +my $key_blacklist = { > + 'template' => 1, > + 'pid' => 1, > + 'agent' => 1, > + 'serial' => 1, > +}; > + > # Plugin implementation > sub update_node_status { > my ($class, $plugin_config, $node, $data, $ctime) = @_; > @@ -93,9 +101,12 @@ sub write_graphite { > if ( defined $value ) { > if ( ref $value eq 'HASH' ) { > write_graphite($carbon_socket, $value, $ctime, $path); > - }else { > - $carbon_socket->send( "$path $value $ctime\n" ); > - } > + } elsif ($value =~ m/^[+-]?[0-9]*\.?[0-9]+$/ && > + !$key_blacklist->{$key}) { > + $carbon_socket->send( "$path $value $ctime\n" ); > + } else { > + # do not send blacklisted or non-numeric values > + } > } > $path = $oldpath; > } >
_______________________________________________ pve-devel mailing list [email protected] https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
