Skip to content

Commit 458edc0

Browse files
committed
📏 Add busy_percent to ProcessMetrics
1 parent 5a0927e commit 458edc0

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lib/sequin/process_metrics.ex

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,12 @@ defmodule Sequin.ProcessMetrics do
382382
# Add unaccounted percentage
383383
percentages =
384384
if interval_ms && interval_ms > 0 && unaccounted_ms do
385-
Keyword.put(percentages, :unaccounted_percent, Float.round(unaccounted_ms / interval_ms * 100, 2))
385+
unaccounted_percent = Float.round(unaccounted_ms / interval_ms * 100, 2)
386+
busy_percent = Float.round(100 - unaccounted_percent, 2)
387+
388+
percentages
389+
|> Keyword.put(:unaccounted_percent, unaccounted_percent)
390+
|> Keyword.put(:busy_percent, busy_percent)
386391
else
387392
percentages
388393
end
@@ -415,7 +420,16 @@ defmodule Sequin.ProcessMetrics do
415420
metadata
416421
end
417422

418-
Logger.info("#{logger_prefix} Process metrics", metadata)
423+
case metadata[:busy_percent] do
424+
nil ->
425+
Logger.info("#{logger_prefix} Process metrics", metadata)
426+
427+
busy_percent when busy_percent < 20 ->
428+
Logger.info("#{logger_prefix} Process metrics (#{busy_percent}% busy)", metadata)
429+
430+
busy_percent ->
431+
Logger.warning("#{logger_prefix} Process metrics (#{busy_percent}% busy)", metadata)
432+
end
419433

420434
# Clear metrics after logging
421435
put_metrics(@default_state)

0 commit comments

Comments
 (0)