What's wrong?
#!/usr/bin/perl
#
# copyright Michał Szoplik 2010
use lib qw(/usr/local/rrdtool-1.4.3/lib/perl);
use RRDs;
# define location of rrdtool databases
my $rrd = '/var/raclive';
# define location of images
my $img = '/var/raclive';
open (plik, "/var/raclive/stats.xml") || die("Nie moge otworzyc pliku stats.xml");
@zawartosc=(<plik>);
close (plik);
foreach $linia (@zawartosc)
{
if ($linia =~ /<project_name>/)
{
$nazwa_projektu = substr($linia, index($linia, '<project_name>')+14, index($linia, '</project_name>')-14);
}
if ($linia =~ /<user_total_credit/)
{
$credit = substr($linia, index($linia, '<user_total_credit>')+19, index($linia, '</user_total_credit>')-19);
$lol = $credit;
}
}
if (!-e "$rrd/raclive_$nazwa_projektu.rrd")
{
RRDs::create ("$rrd/raclive_$nazwa_projektu.rrd",
"-s 120",
"DS:dane:COUNTER:360:U:U",
"RRA:AVERAGE:0.5:1:240"
);
}
RRDs::update ("$rrd/raclive_$nazwa_projektu.rrd",
"-t", "dane",
"N:$lol"
);
RRDs::graph ("$img/kredyt_$nazwa_projektu.png",
"--color=BACK#FFFFFF",
"-s -1200",
"-w 400",
"-h 300",
"--slope-mode",
"--watermark=©2010 by Szopler",
"--title=Punkty w projekcie: $nazwa_projektu",
"DEF:xyvz=$rrd/raclive_$nazwa_projektu.rrd:dane:AVERAGE",
"LINE3:xyvz#FF0000:Punkty",
);
#print $nazwa_projektu," - ",$credit,"\n";
widziałem w innym wątku, że sobie poradziłeś ;D
No nie do końca... pokazuje mi total credit, a chcę zrobić jak u Ciebie pkt/h. Tylko, że coś mi RRDTool'owy COUNTER nie chce działać i LAST... albo nie rozumiem tego ;) Ty to liczysz na piechotę i wrzucasz do rrd czy wykorzystujesz powyższe i samo liczy?
@mindc
nie masz może ochoty zrobić skrypta który budowałby statystyki top w projekcie dla serwera statów b@P? %)
Pobranie wszystkich danych dla 1 usera można załatwić z wykorzystaniem zewnętrznego serwisu np. tak - http://boinc.netsoft-online.com/get_user.php?cpid=###
Najprostsze pobranie tego do pliku:
#!/usr/bin/perl -w
use strict;
use warnings;
use LWP;
my $browser = LWP::UserAgent->new;
my $url = 'http://boinc.netsoft-online.com/get_user.php?cpid=476d777382a3555be83f6af9ab59c9f9';
my $response = $browser->get($url);
die "$url error: ", $response->status_line unless $response->is_success;
open my $fh,'>',"./dane.xml";
print $fh $response->content;
close $fh;
Sporo ciekawych rzeczy jest tutaj - http://boinc.berkeley.edu/trac/wiki/WebRpc
Cytat: 5z0pl3r w 08 Kwiecień 2010, 11:49
No nie do końca... pokazuje mi total credit, a chcę zrobić jak u Ciebie pkt/h. Tylko, że coś mi RRDTool'owy COUNTER nie chce działać i LAST... albo nie rozumiem tego ;) Ty to liczysz na piechotę i wrzucasz do rrd czy wykorzystujesz powyższe i samo liczy?
bazę mam zrobioną tak (dla każdego projektu osobno):
"--step=3600",
"DS:total:GAUGE:86400:0:U",
"DS:expavg:GAUGE:86400:0:U",
"DS:avgrac:COUNTER:86400:0:U",
"RRA:LAST:0.5:1:20000",
total i expavg - to co zwraca nam scheduler projektu
avgrac - tu wrzucam też total - te dane wykorzystuję do generowania wykresów pts/h
uwaga: COUNTER wymaga wartości całkowitychEDIT:
no i żeby te pts/h miało ręce i nogi, to wyciągam dane bezpośrednio z schedulerów projektów, bo dane/statystyki ogólnie dostępne, przeważnie są aktualizowane raz na dobę....
Dzięki za wskazówkę. Pobawię się tym wkrótce :).