Files
librenms-librenms/includes/html/pages/device/overview/puppet_agent.inc.php
SourceDoctor 53dc564ef5 Puppet Agent Monitoring (#10827)
* puppet agent monitoring

* change position of last run graph

* device overview panel

* updating documentation

* mouseover for Overview Dashboard

* adding blank line for code climate
2020-02-12 08:26:02 +01:00

107 lines
5.0 KiB
PHP

<?php
use LibreNMS\Util\StringHelpers;
$app_id = \App\Models\Application::query()->where('device_id', $device['device_id'])->where('app_type', 'puppet-agent')->get('app_id')[0];
// show only if Puppet Agent Application discovered
if (count($app_id)) {
$params = [];
$sql = "SELECT `metric`, `value` FROM `application_metrics` WHERE `app_id` =" . $app_id['app_id'];
$metrics = dbFetchKeyValue($sql, $params);
?><div class='row'>
<div class='col-md-12'>
<div class='panel panel-default panel-condensed device-overview'>
<div class='panel-heading'>
<a href="device/device=<?php echo $device['device_id']?>/tab=apps/app=puppet-agent/">
<i class="fa fa-cogs fa-lg icon-theme" aria-hidden="true"></i>
<strong>Puppet Agent</strong>
</a>
</div>
<div class="panel-body">
<?php
$graph_array = array();
$graph_array['height'] = '100';
$graph_array['width'] = '210';
$graph_array['to'] = \LibreNMS\Config::get('time.now');
$graph_array['id'] = $app_id['app_id'];
$graph_array['from'] = \LibreNMS\Config::get('time.day');
$graph_array['legend'] = 'no';
// graph last run
$title_last_run = 'Last run';
$graph_array_last_run = $graph_array;
$graph_array_last_run['type'] = 'application_puppet-agent_last_run';
$link_array_last_run = $graph_array_last_run;
$link_array_last_run['page'] = 'graphs';
unset($link_array_last_run['height'], $link_array_last_run['width'], $link_array_last_run['legend']);
$link_last_run = generate_url($link_array_last_run);
$overlib_content_last_run = generate_overlib_content($graph_array_last_run, $device['hostname'].' - '. $title_last_run);
$overlib_link_last_run = overlib_link($link_last_run, 'Last run', $overlib_content_last_run);
// graph runtime
$title_runtime = 'Runtime';
$graph_array_runtime = $graph_array;
$graph_array_runtime['type'] = 'application_puppet-agent_time';
$link_array_runtime = $graph_array_runtime;
$link_array_runtime['page'] = 'graphs';
unset($link_array_runtime['height'], $link_array_runtime['width'], $link_array_runtime['legend']);
$link_runtime = generate_url($link_array_runtime);
$overlib_content_runtime = generate_overlib_content($graph_array_runtime, $device['hostname'].' - '. $title_runtime);
$overlib_link_runtime = overlib_link($link_runtime, $title_runtime, $overlib_content_runtime);
// graph resources
$title_resources = 'Resources';
$graph_array_resources = $graph_array;
$graph_array_resources['type'] = 'application_puppet-agent_resources';
$link_array_resources = $graph_array_resources;
$link_array_resources['page'] = 'graphs';
unset($link_array_resources['height'], $link_array_resources['width'], $link_array_resources['legend']);
$link_resources = generate_url($link_array_resources);
$overlib_content_resources = generate_overlib_content($graph_array_resources, $device['hostname'].' - '. $title_resources);
$overlib_link_resources = overlib_link($link_resources, $title_resources, $overlib_content_resources);
// graph events
$title_events = 'Change Events';
$graph_array_events = $graph_array;
$graph_array_events['type'] = 'application_puppet-agent_events';
$link_array_events = $graph_array_events;
$link_array_events['page'] = 'graphs';
unset($link_array_events['height'], $link_array_events['width'], $link_array_events['legend']);
$link_events = generate_url($link_array_events);
$overlib_content_events = generate_overlib_content($graph_array_events, $device['hostname'].' - '. $title_events);
$overlib_link_events = overlib_link($link_events, $title_events, $overlib_content_events);
echo '<div class="row">
<div class="col-sm-4">Summary</div>
<div class="col-sm-8">
<table width=100%><tr>
<td><span>'.$overlib_link_last_run.': '.$metrics['last_run_last_run'].'min</span></td>
<td><span>'.$overlib_link_runtime.': '.$metrics['time_total'].'s</span></td>
<td><span>'.$overlib_link_resources.': '.$metrics['resources_total'].'</span></td>
</tr></table>
</div>
<div class="col-sm-4">'.$overlib_link_events.'</div>
<div class="col-sm-8">
<table width=100%><tr>
<td><span ' . ($metrics['events_success']?'class="blue"':''). '>Success: '.$metrics['events_success'].'</span></td>
<td><span ' . ($metrics['events_failure']?'class="red"':'').'>Failure: '.$metrics['events_failure'].'</span></td>
<td><span>Total: '.$metrics['events_total'].'</span></td>
</tr></table>
</div>
</div>
</div>
</div>
</div>
</div>';
}