use utf8;
use Encode;
use SVG::TT::Graph::Line;
use DBI;
use File::Find;
use Data::Dumper;
use POSIX qw(strftime);
my $date = strftime("%Y-%m-%d", localtime(time));
my %mysql = (
'dbname' => "test",
'host' => "127.0.0.1",
'port' => 3306,
'user' => 'report',
'pass' => 'test',
);
my $database ="DBI:mysql:$mysql{'dbname'}";
my $dbh = DBI->connect($database,$mysql{'user'},$mysql{'pass'}) or die("Could not make connection to database:$DBI::errstr");
$dbh->do("SET character_set_client='utf8'");
$dbh->do("SET character_set_connection='utf8'");
$dbh->do("SET character_set_results='utf8'");
my (@fields,%month);
my (@cname);
my (@data_t_1,@data_t_2,@data_t_3,@data_t_4,@data_t_5,@data_t_6,@data_t_7);
$sth = $dbh->prepare("SELECT sdate,apimap,scount FROM v_dmztop5");
$sth->execute() or die "无法执行SQL语句:$dbh->errstr";
while(my @data = $sth->fetchrow_array())
{
$data_array{"Y:$data[0]"}{$data[1]}="$data[2]";
$month{$data[0]}='1';
$cname{$data[1]}='1';
}
for (sort keys %month)
{
push @fields,"$_";
}
my $nu;
for my $va (sort keys %data_array)
{
$nu++;
for my $vb (sort keys %{ $data_array{$va} })
{
print "$nu\n";
print "$va->$vb=>$data_array{$va}{$vb}\n";
push @cname,"$vb" if $nu == 1;
push @data_t_1,"0$data_array{$va}{$vb}" if $nu == 1;
push @data_t_2,"0$data_array{$va}{$vb}" if $nu == 2;
push @data_t_3,"0$data_array{$va}{$vb}" if $nu == 3;
push @data_t_4,"0$data_array{$va}{$vb}" if $nu == 4;
push @data_t_5,"0$data_array{$va}{$vb}" if $nu == 5;
push @data_t_6,"0$data_array{$va}{$vb}" if $nu == 6;
push @data_t_7,"0$data_array{$va}{$vb}" if $nu == 7;
}
print "\n";
}
my @str1=("$data_t_1[0]","$data_t_2[0]","$data_t_3[0]","$data_t_4[0]","$data_t_5[0]","$data_t_6[0]","$data_t_7[0]");
my @str2=("$data_t_1[1]","$data_t_2[1]","$data_t_3[1]","$data_t_4[1]","$data_t_5[1]","$data_t_6[1]","$data_t_7[1]");
my @str3=("$data_t_1[2]","$data_t_2[2]","$data_t_3[2]","$data_t_4[2]","$data_t_5[2]","$data_t_6[2]","$data_t_7[2]");
my @str4=("$data_t_1[3]","$data_t_2[3]","$data_t_3[3]","$data_t_4[3]","$data_t_5[3]","$data_t_6[3]","$data_t_7[3]");
my @str5=("$data_t_1[4]","$data_t_2[4]","$data_t_3[4]","$data_t_4[4]","$data_t_5[4]","$data_t_6[4]","$data_t_7[4]");
my $graph = SVG::TT::Graph::Line->new(
{
'height' => '500',
'width' => '900',
'show_data_values' => 0,
'scale_integers' => 1,
'show_y_title' => 1,
'show_x_title' => 1,
'y_title' => encode("utf8",'接口调用量'),
'x_title' => encode("utf8",'接口调日期'),
'show_graph_title' => 0,
'graph_title' => 'MAMC-DMZ-TOP5',
'key' => 1,
'key_position' => 'bottom',
'fields' => \@fields,
}
);
my @xy = (\@str1,\@str2,\@str3,\@str4,\@str5);
my $num;
for my $val (@xy)
{
$num++;
$graph->add_data(
{
'data' => $val,
'title' => "$cname[$num-1]",
}
);
}
open( my $fh, '>', "/home/mamc_report/report_file/mamc_dmztop5$date.svg" );
select $fh;
binmode $fh;
print $graph->burn();
close($fh);
$sth->finish();
$dbh->disconnect;
