getRootDSE();
$query = array();
$query['base'] = $attrs['monitorcontext'];
$query['scope'] = 'sub';
$query['attrs'] = array('+','*');
$results = $app['server']->query($query,null);
if (! isset($attrs['monitorcontext']) || ! count($results))
system_message(array(
'title'=>_('Monitoring context does not exist'),
'body'=>sprintf('%s: %s',_('Could not optain the monitor context for this server'),$app['server']->getName()),
'type'=>'warn'),'index.php');
printf('
';
# cn=Monitor
printf('%s |
',_('LDAP Server'));
printf('');
echo '';
printf('%s | ',$results['cn=Monitor']['monitoredInfo']);
echo ' ';
echo ' |
';
foreach (array(
'cn=Backends,cn=Monitor' => 'cn=Backend %s,%s',
'cn=Overlays,cn=Monitor' => 'cn=Overlay %s,%s'
) as $dn => $child) {
if (is_array($results[$dn]['description']))
$description = implode(' ',$results[$dn]['description']);
else
$description = $results[$dn]['description'];
$description = preg_replace('/"/','\'',$description);
printf('%s |
',$description,$dn);
echo '';
echo '';
echo '';
$attrs = array(
'monitorRuntimeConfig',
'supportedControl'
);
echo '';
printf('%s | %s | ',_('Type'),'namingContext');
foreach ($attrs as $attr)
printf('%s | ',$attr);
echo ' ';
$counter = 0;
foreach ($results[$dn]['monitoredInfo'] as $index => $backend) {
printf('',$counter++%2==0?'even':'odd');
printf('%s | ',$backend);
$key = sprintf($child,$index,$dn);
echo '';
if (isset($results[$key]['seeAlso'])) {
$seealso = is_array($results[$key]['seeAlso']) ? $results[$key]['seeAlso'] : array($results[$key]['seeAlso']);
foreach ($seealso as $db)
if (isset($results[$db]['namingContexts']))
printf('%s ',isset($results[$db]['labeledURI']) ? $results[$db]['labeledURI'] : _('Internal'),$results[$db]['namingContexts']);
else
printf('%s ',$results[$db]['monitoredInfo']);
} else {
echo ' ';
}
echo ' | ';
foreach ($attrs as $attr) {
echo '';
if (isset($results[$key][$attr])) {
if (! is_array($results[$key][$attr]))
$sc = array($results[$key][$attr]);
else
$sc = $results[$key][$attr];
if (strcasecmp('supportedControl',$attr) == 0)
foreach ($sc as $control) {
$oidtotext = support_oid_to_text($control);
printf('%s ',
$control,$oidtotext['title']);
}
else
printf('%s ',implode(' ',$sc));
} else {
echo ' ';
}
echo ' | ';
}
echo ' ';
}
echo ' | ';
echo ' ';
echo ' |
';
}
# cn=Connections,cn=Monitor
printf('%s |
',$results['cn=Connections,cn=Monitor']['description'],_('LDAP Connections'));
printf('');
echo '';
echo '';
printf('%s | %s | ',
_('Total Connections'),$results['cn=Total,cn=Connections,cn=Monitor']['monitorCounter']);
printf('%s | %s | ',
_('Current Connections'),$results['cn=Current,cn=Connections,cn=Monitor']['monitorCounter']);
# Look for some connections
foreach ($results as $key => $value) {
if (preg_match('/^cn=Connection.*,cn=Connections,cn=Monitor$/',$key)) {
echo '';
printf('%s | ',$results[$key]['cn']);
echo '';
echo '';
$counter = 0;
foreach (array(
'monitorConnectionActivityTime',
'monitorConnectionAuthzDN',
'monitorConnectionGet',
'monitorConnectionListener',
'monitorConnectionLocalAddress',
'monitorConnectionMask',
'monitorConnectionNumber',
'monitorConnectionOpsCompleted',
'monitorConnectionOpsExecuting',
'monitorConnectionOpsPending',
'monitorConnectionOpsReceived',
'monitorConnectionPeerAddress',
'monitorConnectionPeerDomain',
'monitorConnectionProtocol',
'monitorConnectionRead',
'monitorConnectionStartTime',
'monitorConnectionWrite'
) as $metric) {
printf('',$counter++%2==0?'even':'odd');
printf('%s | %s | ',
$metric,isset($results[$key][$metric]) ? $results[$key][$metric] : ' ');
echo ' ';
}
echo ' ';
echo ' | ';
echo ' ';
}
}
echo ' | ';
echo ' ';
echo ' |
';
foreach (array(
'cn=Listeners,cn=Monitor',
'cn=Log,cn=Monitor',
'cn=Operations,cn=Monitor',
'cn=SASL,cn=Monitor',
'cn=TLS,cn=Monitor',
'cn=Statistics,cn=Monitor',
'cn=Threads,cn=Monitor',
'cn=Time,cn=Monitor',
'cn=Waiters,cn=Monitor'
) as $dn ) {
if (is_array($results[$dn]['description']))
$description = implode(' ',$results[$dn]['description']);
else
$description = $results[$dn]['description'];
$description = preg_replace('/"/','\'',$description);
printf('%s |
',$description,$dn);
echo '';
echo '';
echo '';
if (isset($results[$dn]['monitorOpInitiated']))
printf('%s | %s | ',
'monitorOpInitiated',$results[$dn]['monitorOpInitiated']);
if (isset($results[$dn]['monitorOpCompleted']))
printf('%s | %s | ',
'monitorOpCompleted',$results[$dn]['monitorOpCompleted']);
if (isset($results[$dn]['monitoredInfo']))
printf('%s | %s | ',
'monitoredInfo',$results[$dn]['monitoredInfo']);
# Look for some connecitons
foreach ($results as $key => $value) {
if (preg_match('/^.*,'.$dn.'$/',$key)) {
echo '';
printf('%s | ',$results[$key]['cn']);
echo '';
echo '';
foreach (array(
'labeledURI',
'monitorConnectionLocalAddress',
'monitoredInfo',
'monitorCounter',
'monitorOpInitiated',
'monitorOpCompleted',
'monitorTimestamp'
) as $metric) {
if (isset($results[$key][$metric])) {
printf('',$counter++%2==0?'even':'odd');
printf('%s | %s | ',
$metric,$results[$key][$metric]);
echo ' ';
}
}
echo ' ';
echo ' | ';
echo ' ';
}
}
echo ' | ';
echo ' ';
echo ' |
';
}
echo '
';
?>