diff --git a/src/components/Widgets/GlCompactMetrics.vue b/src/components/Widgets/GlCompactMetrics.vue new file mode 100644 index 00000000..1e59290e --- /dev/null +++ b/src/components/Widgets/GlCompactMetrics.vue @@ -0,0 +1,702 @@ + + + + {{ options.label }} + + + + + + Node + CPU + Memory + Disk + + + + + + {{ system.header }} + {{ system.url.replace(/^https?:\/\//, '') }} + + + + {{ getMetricDisplay(system.url, 'cpu') }} + + + + + {{ getMetricDisplay(system.url, 'mem') }} + + + + + {{ getMetricDisplay(system.url, 'disk') }} + + + + + + + + + + {{ selectedSystem.header }} + + Back + + + + + + System Information + + + Hostname: + {{ detailData.system?.hostname || '-' }} + + + OS: + {{ detailData.system?.os_name || '-' }} + + + Uptime: + {{ getUptimeDisplay() }} + + + + + + CPU Usage + + + + {{ getMetricValue(selectedSystem.url, 'cpu') !== null + ? getMetricValue(selectedSystem.url, 'cpu') + '%' : '-' }} + + + + + + Memory Usage + + + + {{ getMetricValue(selectedSystem.url, 'mem') !== null + ? getMetricValue(selectedSystem.url, 'mem') + '%' : '-' }} + + + + + Used: {{ formatBytes(detailData.mem.used) }} / + Total: {{ formatBytes(detailData.mem.total) }} + + + + + + Disk Usage + + + + {{ getMetricValue(selectedSystem.url, 'disk') !== null + ? getMetricValue(selectedSystem.url, 'disk') + '%' : '-' }} + + + + + + Disk Partitions + + + {{ disk.mnt_point }} + + + {{ formatBytes(disk.used || 0) }} / {{ formatBytes(disk.size || 0) }} + + + ({{ disk.size > 0 ? Math.round(((disk.used || 0) / disk.size) * 100) : 0 }}%) + + + + + + + + + Unable to retrieve details for {{ selectedSystem.header }} + + + + + + + + diff --git a/src/components/Widgets/WidgetBase.vue b/src/components/Widgets/WidgetBase.vue index a148b476..977d88c0 100644 --- a/src/components/Widgets/WidgetBase.vue +++ b/src/components/Widgets/WidgetBase.vue @@ -127,6 +127,7 @@ const COMPAT = { weather: 'Weather', 'weather-forecast': 'WeatherForecast', 'xkcd-comic': 'XkcdComic', + 'gl-compact-metrics': 'GlCompactMetrics', }; export default {