print '%ERROR1: ' .Dumper \%ERROR1;
'Oracle' => {
'server1' => {
'BACKUP ALERT' => {
'DAILY' => {
'1433471420' => 1
}
},
'FILESYSTEM ALERT' => {
'WARNING 85% FULL' => {
'1433523904' => 1,
'1433520305' => 1,
'1433451904' => 1,
'1433450109' => 1,
'1433455504' => 1,
'1433509506' => 1,
'1433529308' => 1,
'1433534713' => 1
}
},
},
'server2' => {
'FILESYSTEM ALERT' => {
'WARNING 85% FULL' => {
'1433523635' => 1,
'1433455225' => 1,
'1433498427' => 1,
'1433512846' => 1,
'1433534424' => 1
}
}, .. ... ..
####
group Hostname Service Count State Alert Started Alert Duration
Oracle server1 BACKUP ALERT 1 DAILY 1433471420 10 MINUTES
Oracle server1 FILESYSTEM ALERT 8 WARNING 85% FULL 1433523904 1 HOUR
Oracle server2 .. ..
####
my @LIST = map {
[ $_->[0], $_->[1], $_->[2], $_->[3], $_->[4], $_->[5],$_->[6] ]
} sort {
$a->[0] cmp $b->[0] || $b->[4] <=> $a->[4] || $a->[1] cmp $b->[1] || $a->[2] cmp $b->[2] || $a->[3] cmp $b->[3]
} map {
my $group = $_;
map {
my $host = $_;
map {
my $service = $_;
map {
my $state = $_;
my $count = keys %{$ERROR1{$group}->{$host}->{$service}->{$state}};
my $ts1 = (sort (keys %{$ERROR1{$group}->{$host}->{$service}->{$state}}))[0];
my $ts2 = (sort(keys %{$ERROR1{$group}->{$host}->{$service}->{$state}}))[$count];
[ $group, $host, $service, $state, $count, $ts1, $ts2 ]
} keys %{$ERROR1{$group}->{$host}->{$_}}
} keys %{$ERROR1{$group}->{$_}}
} keys %{$ERROR1{$_}}
} keys %ERROR1;
####
[
'Oracle',
'server1',
'FILESYSTEM ALERT',
'WARNING 85% FULL',
8,
'1433521920',
{
'' => undef
}
],
[ -- -