s_was_esb_logging.pl
Stocke dans CODA les compteurs de perfs WAS ESB.
# # PERL # VERSION: "@(#)s_was_esb_logging.pl v1.0 05/06/2007" # # FONCTION: # # POLICY: N/A # # CONFIGURATION: N/A # # PARAMETRES D'APPEL: # # SORTIE: message # # FICHIERS ENTREE: # # # FICHIERS SORTIE: # # # # COMMENTAIRES: # # # MODIFICATIONS: # # use strict; use warnings; my $debug = ''; my $spi_was_dir = "$ENV{OVAGENTDIR}\\wasspi\\wbs"; my $instrum_dir = "$ENV{OVAGENTDIR}\\bin\\instrumentation"; #my $udm_dir = 'c:\IBPEXPL'; #my $udm_file = 'UDMMetrics.xml'; #my $spiconfig_dir = "$spi_was_dir"; my $perl_exe_path = "$ENV{OVPERLBIN}"; my $dir_for_log = "$spi_was_dir\\datalog_esb"; my @server_list = ( 'server1 on ibwasr08.srv-ib.dev port 2309', 'server1 on ibwasr08.srv-ib.dev port 2209', 'server1 on ibwasr08.srv-ib.dev port 2809', 'server1 on ibwasr08.srv-ib.dev port 2109', 'server1 on ibwasr08.srv-ib.dev port 2109', 'server1 on ibwasr08.srv-ib.dev port 2409', ); my @instance_list = qw ( DossierCliEJB GestAboEJB GestAdmCliEJB GestAdrComEJB GestComCliEJB FctCtrEJB ); my @metric_list = qw ( 717 710 ); my $coll_cmd = "wasspi_wbs_perl -S wasspi_wbs_ca -m 717 -x print=on"; my $cmd_output = `cd \"$instrum_dir\" && $coll_cmd`; my %servers; my %instances; sub value_print { my ( $desc_file, $server_app ) = @_; for my $instance ( keys %{ $servers{$server_app} } ) { my ( $val ) = $servers{$server_app}->{$instance} =~ /[0-9a-zA-Z-_ \.,]+\=\>[0-9a-zA-Z-_ \.,]+\=\>(\d+.\d+)/x; $val =~ s/\,/\./g; print {$$desc_file} ' ' . $val ; } return; } sub ddf_log { my ( $server ) = @_; my $cmd = "\"$instrum_dir\\ddflog.exe\" \"$dir_for_log\" WAS_ESB -s 0 -i \"$dir_for_log\\$server.dat\""; system "\"$cmd\""; return; } foreach my $line ( split /\n/, $cmd_output ) { next if !($line); my ( $server_name, $instance_name, $value ) = $line =~ /^\w+\W+\w+\W+\w+\W+"([0-9a-zA-Z-_ \.]+)"\W+\w+\W+"([0-9a-zA-Z-_ \.,]+)"\W+\w+\W+(\d+.\d+).*/x; $servers{"$server_name"}{"$instance_name"} = $server_name . '=>' . $instance_name . '=>' . $value; } if ($debug) { for my $server ( keys %servers ) { for my $instance ( keys %{ $servers{$server} } ) { print $servers{$server}->{$instance} . "\n"; } } } for my $server ( keys %servers ) { print $server . "\n" if ($debug); open my $desc_file_sever, '>', "$dir_for_log\\$server.dat" || die "can't open file $server.dat: $!"; ( my $server_fn = $server ) =~ s/ /_/g ; print {$desc_file_sever} "$server_fn " || die "can't print to $server.dat: $!"; value_print( \$desc_file_sever, $server ); close $desc_file_sever; ddf_log( $server ); }