|
|
|
@ -208,7 +208,7 @@ defmodule Indexer.Memory.Monitor do |
|
|
|
|
@megabytes_divisor 2 ** 20 |
|
|
|
|
defp set_metrics(%__MODULE__{shrinkable_set: shrinkable_set}) do |
|
|
|
|
total_memory = |
|
|
|
|
Enum.reduce(shrinkable_set ++ on_demand_fetchers(), 0, fn pid, acc -> |
|
|
|
|
Enum.reduce(Enum.to_list(shrinkable_set) ++ on_demand_fetchers(), 0, fn pid, acc -> |
|
|
|
|
memory = memory(pid) / @megabytes_divisor |
|
|
|
|
name = name(pid) |
|
|
|
|
|
|
|
|
@ -221,7 +221,9 @@ defmodule Indexer.Memory.Monitor do |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
defp on_demand_fetchers do |
|
|
|
|
Enum.flat_map([Indexer.Application, Indexer.Supervisor, Explorer.Supervisor], fn supervisor -> |
|
|
|
|
[Indexer.Application, Indexer.Supervisor, Explorer.Supervisor] |
|
|
|
|
|> Enum.reject(&is_nil(Process.whereis(&1))) |
|
|
|
|
|> Enum.flat_map(fn supervisor -> |
|
|
|
|
supervisor |
|
|
|
|
|> Supervisor.which_children() |
|
|
|
|
|> Enum.filter(fn {name, _, _, _} -> is_atom(name) and String.contains?(to_string(name), "OnDemand") end) |
|
|
|
|