diff --git a/templates/apps_table.html b/templates/apps_table.html index 11cabdc..52a3825 100644 --- a/templates/apps_table.html +++ b/templates/apps_table.html @@ -1,150 +1,211 @@ -{% macro donut(label, pct, subtitle) %} -{% set r = 22 %} -{% set c = 2 * 3.1415926 * r %} -{% set dash = (pct / 100.0) * c %} -
- - - - {{ pct|round(0) - }}% - -
-
{{ label }}
-
{{ subtitle }}
-
-
-{% endmacro %} +{% macro donut(label, pct, subtitle, value_text=None) %} +{% set p = pct if pct is not none else 0 %} +{% if p < 0 %}{% set p=0 %}{% endif %} {% if p> 100 %}{% set p = 100 %}{% endif %} -

Live usage

-
- {{ donut("CPU (containers)", data.gauges.cpu_total_pct, "Sum of container CPU%") }} - {{ donut("RAM (containers)", data.gauges.ram_pct, "Container RAM vs host total") }} - {{ donut("Docker images", data.gauges.docker_images_pct, "Used vs total image store") }} -
+ {# severity color #} + {% if p < 60 %} {% set col="#16a34a" %} {# green #} {% elif p < 85 %} {% set col="#f59e0b" %} {# amber #} {% else %} + {% set col="#ef4444" %} {# red #} {% endif %} {% set r=24 %} {% set stroke=10 %} {% set c=2 * 3.1415926 * r %} + {% set dash=(p / 100.0) * c %} {% set txt=value_text if value_text else (p|round(0) ~ "%" ) %}
+
+ + + + + + -

System

-
-
-
Host
-
{{ data.system.name or "—" }}
-
{{ data.system.operating_system }} · {{ data.system.kernel_version }}
-
+ {# track #} + -
-
Compute
-
{{ data.system.cpus or "—" }} CPUs
-
{{ data.system.mem_total_h or "—" }} RAM
-
+ {# progress ring #} + -
-
Docker
-
Engine: {{ data.system.server_version or "—" }}
-
Images: {{ data.system.images or "—" }}
-
Containers: {{ data.system.containers_running or "—" }} running / {{ - data.system.containers_stopped or "—" }} stopped
-
-
+ {# center text #} + {{ txt }} + + + {# small dot marker at end (nice touch) #} + {% set angle = (p/100.0) * 2 * 3.1415926 - (3.1415926/2) %} + {% set cx = 36 + r * (angle|float|cos) %} + {% set cy = 36 + r * (angle|float|sin) %} +
+ +
+
+
{{ label }}
+
+ live +
+
+ +
+ {{ subtitle }} +
+ + {# bar meter for quick scan #} +
+
+
+
+
+ {% endmacro %} -

Docker disk usage

- - - - - - - - - - - - {% for typ, r in data.system.system_df.items() %} - - - - - - - - {% endfor %} - -
TypeTotalActiveSizeReclaimable
{{ typ }}{{ r.total }}{{ r.active }}{{ r.size }}{{ r.reclaimable }}
+

Live usage

+
+ {{ donut("CPU", data.gauges.cpu_total_pct, "Sum of container CPU% (clamped)") }} + {{ donut("RAM", data.gauges.ram_pct, "All containers vs host RAM", (data.gauges.ram_used_h ~ " / " ~ + data.gauges.ram_total_h)) }} + {{ donut("Docker disk", data.gauges.docker_images_pct, "Images used vs total store") }} +
-
Generated at: {{ data.generated_at }}
+

System

+
+
+
Host
+
{{ data.system.name or "—" }}
+
{{ data.system.operating_system }} · {{ data.system.kernel_version }}
+
-{% if data.warnings %} -
- Warnings - -
-{% endif %} +
+
Compute
+
{{ data.system.cpus or "—" }} CPUs
+
{{ data.system.mem_total_h or "—" }} RAM
+
-

Apps

- - - - - - - - - - - - - - {% for r in data.apps %} - - - - - - - - - - {% endfor %} - -
AppURLStatusCPURAMRestartsImage
{{ r.app }}{{ r.url }}{{ r.status }}{{ r.cpu or "—" }} - {% if r.mem_used %} - {{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }}) - {% else %} — {% endif %} - {{ r.restarts }}{{ r.image }}
+
+
Docker
+
Engine: {{ data.system.server_version or "—" }}
+
Images: {{ data.system.images or "—" }}
+
Containers: {{ data.system.containers_running or "—" }} running / {{ + data.system.containers_stopped or "—" }} stopped
+
+
-{% if data.infra %} -

Infra

- - - - - - - - - - - - - {% for r in data.infra %} - - - - - - - - - {% endfor %} - -
ContainerStatusCPURAMRestartsImage
{{ r.container }}{{ r.status }}{{ r.cpu or "—" }} - {% if r.mem_used %} - {{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }}) - {% else %} — {% endif %} - {{ r.restarts }}{{ r.image }}
-{% endif %} \ No newline at end of file + +

Docker disk usage

+ + + + + + + + + + + + {% for typ, r in data.system.system_df.items() %} + + + + + + + + {% endfor %} + +
TypeTotalActiveSizeReclaimable
{{ typ }}{{ r.total }}{{ r.active }}{{ r.size }}{{ r.reclaimable }}
+ +
Generated at: {{ data.generated_at }}
+ + {% if data.warnings %} +
+ Warnings + +
+ {% endif %} + +

Apps

+ + + + + + + + + + + + + + {% for r in data.apps %} + + + + + + + + + + {% endfor %} + +
AppURLStatusCPURAMRestartsImage
{{ r.app }}{{ r.url }}{{ r.status }}{{ r.cpu or "—" }} + {% if r.mem_used %} + {{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }}) + {% else %} — {% endif %} + {{ r.restarts }}{{ r.image }}
+ + {% if data.infra %} +

Infra

+ + + + + + + + + + + + + {% for r in data.infra %} + + + + + + + + + {% endfor %} + +
ContainerStatusCPURAMRestartsImage
{{ r.container }}{{ r.status }}{{ r.cpu or "—" }} + {% if r.mem_used %} + {{ r.mem_used }} / {{ r.mem_limit }} ({{ r.mem_pct }}) + {% else %} — {% endif %} + {{ r.restarts }}{{ r.image }}
+ {% endif %} \ No newline at end of file