The internal structure of a Network Monitoring Tool running
on a Theodolite:
next: Status
previous: Application Scenario (monitoring tool)
up: DataTAG WP4 meeting (29 July 2003)
use strict;
use lib "GlueDomains";
use lib "GlueDomains/rgmacomplete";
use GlueDomains;
# Creates a GlueDomains database handle
my $server="glueserver.cnaf.infn.it";
my $gd=GlueDomains::new($server,"gluedomains","consumer","password2");
# Discover self GlueDomains identifiers (can be repeated for each interface)
my $myself="122.211.112.2";
my @edgeservicelist=EdgeService::getByInterface($gd,$myself);
# More than one identifier may exist to model different QoS
foreach my $t ( @edgeservicelist ) {
# Discover neighbor theodolites
my @sessionlist=$gd->getTargetList($t);
while ( my $session = pop @sessionlist ) {
# initialize measurement session
# ...
# Create handles for RGMA producers
my $networkService=@$session[1];
my $rgmaRTT=rgmacomplete::RoundTripDelayTools->new($networkService);
my $rgmaLost=rgmacomplete::RoundTripLossTools->new($networkService);
while (1) {
# Perform a measurement
my @RTTdata=();
my @RTLdata=();
# Store measurement in R-GMA
my $observation;
$observation=RoundTripDelay->
new($networkService->{id},"glueping",@RTTdata);
$rgmaRTT->insert($observation);
$observation=RoundTripLoss->
new($networkService->{id},"glueping",@RTLdata);
$rgmaLost->insert($observation);
}
}
}