X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/upsgraph/blobdiff_plain/45bf98526bea58d37fbb30b4152dd1041ccb93be..72d2ded0ea9c38f3ae9d498134c89ee749aa71e4:/upsgraph.pl diff --git a/upsgraph.pl b/upsgraph.pl index e55622b..55c6a62 100755 --- a/upsgraph.pl +++ b/upsgraph.pl @@ -15,6 +15,8 @@ use IO::Select; use RRDs; use File::Copy; use Data::Dumper; +use LWP::UserAgent; +use JSON; $UPSGRAPH::outdir = ""; $UPSGRAPH::daysCovered = 370; @@ -186,6 +188,23 @@ sub fetch_tcp_multi(@) { %values; } +sub fetch_iotcore(@) { + my $url = shift; + + my $ua = LWP::UserAgent->new; + $ua->timeout(1); + + my $resp = $ua->get($url); + return undef if (!$resp->is_success); + + my $pdin = decode_json($resp->decoded_content); + return undef if (!defined($pdin)); + + my $value = hex($pdin->{'data'}->{'value'}); + + $value; +} + sub dayGraphFunc { my $dataSrc = shift; my $mode = shift; @@ -477,6 +496,8 @@ while(1) { @multi_values{keys %values} = values %values; $result = $multi_values{$vars->{$var}->{'multi_id'}}; } + } elsif ($vars->{$var}->{'proto'} eq 'iotcore') { + $result = fetch_iotcore($vars->{$var}->{'url'}); } next unless (defined $result); @@ -515,7 +536,7 @@ while(1) { }; } - my @graphdef = ('-P', "-t", $hostname." - ".$vars->{$var}->{'name'}); + my @graphdef = ('-P', "-A", "-t", $hostname." - ".$vars->{$var}->{'name'}); push @graphdef, "--lazy" if !$first; push @graphdef, "DEF:${var}-avg=${rrdfile}.${var}:${var}:AVERAGE";