From 8bceb6dce2c1a0adcb20fa09da2923ff06380e22 Mon Sep 17 00:00:00 2001 From: mayor Date: Fri, 6 Feb 2026 18:34:43 -0600 Subject: [PATCH] feat: build comprehensive health metrics panel with success rates Co-Authored-By: Claude Sonnet 4.5 --- .../live/admin/monitoring_live.ex | 2 + .../live/admin/monitoring_live.html.heex | 111 +++++++++++++++++- 2 files changed, 107 insertions(+), 6 deletions(-) diff --git a/lib/towerops_web/live/admin/monitoring_live.ex b/lib/towerops_web/live/admin/monitoring_live.ex index a232aad2..8bd0a54a 100644 --- a/lib/towerops_web/live/admin/monitoring_live.ex +++ b/lib/towerops_web/live/admin/monitoring_live.ex @@ -31,6 +31,7 @@ defmodule ToweropsWeb.Admin.MonitoringLive do |> assign(:failed_jobs, []) |> assign(:failed_jobs_count, 0) |> assign(:recent_jobs, []) + |> assign(:metrics, %{}) |> assign(:health_metrics, %{}) |> load_monitoring_data() @@ -75,6 +76,7 @@ defmodule ToweropsWeb.Admin.MonitoringLive do |> assign(:failed_jobs, failed_jobs) |> assign(:failed_jobs_count, length(failed_jobs)) |> assign(:recent_jobs, recent_jobs) + |> assign(:metrics, metrics) |> assign(:health_metrics, metrics) end diff --git a/lib/towerops_web/live/admin/monitoring_live.html.heex b/lib/towerops_web/live/admin/monitoring_live.html.heex index 3785e8fe..c24d5e19 100644 --- a/lib/towerops_web/live/admin/monitoring_live.html.heex +++ b/lib/towerops_web/live/admin/monitoring_live.html.heex @@ -160,13 +160,112 @@ <% end %> -
-
-

Health Metrics

+
+

+ Health Metrics +

+ + +
+

+ Current Activity +

+
+
+

Executing

+

+ {@metrics.executing_count} +

+
+
+

Queued

+

+ {@metrics.queued_count} +

+
+
+

Completed (1h)

+

+ {@metrics.completed_last_hour} +

+
+
+

Failed (1h)

+

+ {@metrics.failed_last_hour} +

+
+
-
-

- Detailed metrics coming soon + + +

+

+ Success Rates +

+
+
+
+ Polling (1h) + + <%= Float.round(@metrics.polling_success_rate_1h * 100, 1) %>% + +
+
+
+
+
+
+ +
+
+ Discovery (1h) + + <%= Float.round(@metrics.discovery_success_rate_1h * 100, 1) %>% + +
+
+
+
+
+
+
+
+ + +
+

+ Performance +

+
+
+
Avg Execution Time
+
+ <%= if @metrics.avg_execution_time_seconds do %> + <%= Float.round(@metrics.avg_execution_time_seconds, 1) %>s + <% else %> + N/A + <% end %> +
+
+
+
Jobs/Hour
+
+ {@metrics.completed_last_hour} +
+
+
+
+ +
+

+ Updates every 10 seconds