#!/usr/bin/perl
####################################################################### telemetry collector - v1.0.0 (mwx'2020)
use LWP::UserAgent;
chomp($host=`hostname`);$host=~s/\..*$//i;

$url = 'http://monitor.rz-berlin.mpg.de/telemetry.php';

############################################################################################ collect disk usage

$data = "df,$host,";

open(IN,"/bin/df -k -T |");
while(<IN>) {
  @df=split(' ');
	if ($df[1]=~/^ext/ || $df[1]=~/^nfs/) {
    $total=($df[2]/1024/1024);
    $avail=($df[4]/1024/1024);
    $used=$total - $avail;
    $per=$used*100/$total;
    $data.=sprintf("$df[6],%.3f,%.3f,%.3f,%.2f,",$total,$avail,$used,$per);
	}
}

$data .= time();

print "$data\n";
my $ua = new LWP::UserAgent();
$response = $ua->post($url, Content => $data);

########################################################################################### collect system load

open(UPTIME,"/usr/bin/uptime |");chomp($_=<UPTIME>);
if (/load\s*averages*\:\s*[\d\.]+\,\s*[\d\.]+\,\s*([\d\.]+)/) {
  $load=$1;
}

$data = "load,$host,$load,".time();

print "$data\n";
my $ua = new LWP::UserAgent();
$response = $ua->post($url, Content => $data);

########################################################################################################### END
