118 lines
6.3 KiB
PHP
118 lines
6.3 KiB
PHP
|
|
<!-- latest data -->
|
|
<div class="container-fluid mt-2">
|
|
<div class="row mb-4">
|
|
<div class="col-12 mb-4">
|
|
<h2 class="mb-0">Latest data from Jilo Agents</h2>
|
|
<small>gathered for platform <strong><?= htmlspecialchars($platformDetails[0]['name']) ?></strong></small>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="mb-4">
|
|
<?php if (!empty($hostsData)) { ?>
|
|
<?php foreach ($hostsData as $host) { ?>
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-network-wired me-2 text-secondary"></i>
|
|
<?= htmlspecialchars($host['name']) ?><small class="text-muted"> (<?= htmlspecialchars($host['address']) ?>)</small>
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<?php foreach ($host['agents'] as $agent) { ?>
|
|
<div class="mb-4">
|
|
<h6 class="border-bottom pb-2">
|
|
<i class="fas fa-robot me-2 text-secondary"></i>
|
|
<?= htmlspecialchars($agent['name']) ?> agent
|
|
</h6>
|
|
<table class="table table-results table-striped table-hover table-bordered">
|
|
<thead class="align-top">
|
|
<tr>
|
|
<th>Metric</th>
|
|
<th>
|
|
Latest value
|
|
<br>
|
|
<small class="text-muted"><?= date('d M Y H:i:s', strtotime($agent['timestamp'])) ?></small>
|
|
</th>
|
|
<th>
|
|
Previous value
|
|
<?php
|
|
// Find first metric with previous data to get timestamp
|
|
$prevTimestamp = null;
|
|
foreach ($metrics as $m_section => $m_metrics) {
|
|
foreach ($m_metrics as $m_metric => $m_config) {
|
|
if (isset($agent['metrics'][$m_section][$m_metric]['previous'])) {
|
|
$prevTimestamp = $agent['metrics'][$m_section][$m_metric]['previous']['timestamp'];
|
|
break 2;
|
|
}
|
|
}
|
|
}
|
|
if ($prevTimestamp) { ?>
|
|
<br>
|
|
<small class="text-muted"><?= date('d M Y H:i:s', strtotime($prevTimestamp)) ?></small>
|
|
<?php } ?>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($metrics as $section => $section_metrics) { ?>
|
|
<?php
|
|
// Check if this section has any data for this agent
|
|
$hasData = false;
|
|
foreach ($section_metrics as $metric => $metricConfig) {
|
|
if (isset($agent['metrics'][$section][$metric])) {
|
|
$hasData = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!$hasData) continue;
|
|
?>
|
|
<tr class="table-secondary">
|
|
<th colspan="3"><?= htmlspecialchars($section) ?></th>
|
|
</tr>
|
|
<?php foreach ($section_metrics as $metric => $metricConfig) { ?>
|
|
<?php if (isset($agent['metrics'][$section][$metric])) {
|
|
$metric_data = $agent['metrics'][$section][$metric];
|
|
?>
|
|
<tr>
|
|
<td><?= htmlspecialchars($metricConfig['label']) ?></td>
|
|
<td>
|
|
<?php if ($metric_data['link']) { ?>
|
|
<a href="<?= htmlspecialchars($app_root) ?>?platform=<?= htmlspecialchars($platform_id) ?>&page=<?= htmlspecialchars($metric_data['link']) ?>&from_time=<?= htmlspecialchars($metric_data['latest']['timestamp']) ?>&until_time=<?= htmlspecialchars($metric_data['latest']['timestamp']) ?>"><?= htmlspecialchars($metric_data['latest']['value']) ?></a>
|
|
<?php } else { ?>
|
|
<?= htmlspecialchars($metric_data['latest']['value']) ?>
|
|
<?php } ?>
|
|
</td>
|
|
<td>
|
|
<?php if ($metric_data['previous']) { ?>
|
|
<?php if ($metric_data['link']) { ?>
|
|
<a href="<?= htmlspecialchars($app_root) ?>?platform=<?= htmlspecialchars($platform_id) ?>&page=<?= htmlspecialchars($metric_data['link']) ?>&from_time=<?= htmlspecialchars($metric_data['previous']['timestamp']) ?>&until_time=<?= htmlspecialchars($metric_data['previous']['timestamp']) ?>"><?= htmlspecialchars($metric_data['previous']['value']) ?></a>
|
|
<?php } else { ?>
|
|
<?= htmlspecialchars($metric_data['previous']['value']) ?>
|
|
<?php } ?>
|
|
<?php } else { ?>
|
|
<span class="text-muted">No previous data</span>
|
|
<?php } ?>
|
|
</td>
|
|
</tr>
|
|
<?php } ?>
|
|
<?php } ?>
|
|
<?php } ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
</div>
|
|
<?php } ?>
|
|
<?php } else { ?>
|
|
<div class="alert alert-info m-3" role="alert">
|
|
No data available from any agents. Please check agent configuration and connectivity.
|
|
</div>
|
|
<?php } ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /latest data -->
|