Library used to monitor report memory hungry processes
Elixir
42
12 commits
updated Jun 18, 2025
Pinpoint and deal with memory hungry processes
Available in Hex, the package can be installed by adding hog to your list of
dependencies in mix.exs:
def deps do
[
{:hog, "~> 0.1.0"}
]
end
Documentation can be found at https://hexdocs.pm/hog.
If you rely on this library, it would much appreciated if you can give back to the project in order to help ensure its continued development.
Checkout my GitHub Sponsorship page if you want to help out!
Add {:hog, "~> 0.1.0"} to your mix.exs file and run mix deps.get. After installing the dependency,
you can add the following line to your application.ex file:
defmodule MyApp.Application do
use Application
@impl true
def start(_type, _args) do
children = [
# If the defaults laid out in `Hog` work for your use case, you can have
# just `Hog`, else provide your specific options.
{Hog, scan_interval: {30, :seconds}, memory_threshold: {100, :megabytes}},
...
]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)
end
...
end
With that in place, you can start your application and memory hungry processes will be logged using the Logger
module. If the default logging function does not provide adequate information to help track down the memory hungry
process, you can always provide your own :event_handler to the Hog GenServer via config or even tie into the
:telemetry events yourself using the Hog.TelemetryEvents module.
12 commits
Elixir
100.0%
Library used to monitor report memory hungry processes
Elixir
42
12 commits
updated Jun 18, 2025
Pinpoint and deal with memory hungry processes
Available in Hex, the package can be installed by adding hog to your list of
dependencies in mix.exs:
def deps do
[
{:hog, "~> 0.1.0"}
]
end
Documentation can be found at https://hexdocs.pm/hog.
If you rely on this library, it would much appreciated if you can give back to the project in order to help ensure its continued development.
Checkout my GitHub Sponsorship page if you want to help out!
Add {:hog, "~> 0.1.0"} to your mix.exs file and run mix deps.get. After installing the dependency,
you can add the following line to your application.ex file:
defmodule MyApp.Application do
use Application
@impl true
def start(_type, _args) do
children = [
# If the defaults laid out in `Hog` work for your use case, you can have
# just `Hog`, else provide your specific options.
{Hog, scan_interval: {30, :seconds}, memory_threshold: {100, :megabytes}},
...
]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)
end
...
end
With that in place, you can start your application and memory hungry processes will be logged using the Logger
module. If the default logging function does not provide adequate information to help track down the memory hungry
process, you can always provide your own :event_handler to the Hog GenServer via config or even tie into the
:telemetry events yourself using the Hog.TelemetryEvents module.
12 commits
Elixir
100.0%