A collection of diagnostic bits and pieces for Elixir.
Examples:
Get module name from pid
Diagnostics.module_name(pid)Get the size of a process
Diagnostics.size(pid)Get the size of processes state
Diagnostics.state_size(pid)Get a processes state
Diagnostics.state(pid)List the processes in the system using the most memory (total heap) by module name and the count of them running on the node
Diagnostics.processes_by_moduleList all processes created by Module MyModule in namespace MyApp ordered by size
Diagnostics.processes_by_size("MyApp.MyModule")List top 10 processes created by Module MyModule in namespace MyApp ordered by size
Diagnostics.processes_by_size("MyApp.MyModule", 10)List all processes ordered by size
Diagnostics.processes_by_sizeList all processes created by Module MyModule in namespace MyApp ordered by proc bin size
Diagnostics.processes_by_large_binary_size("MyApp.MyModule")List top 10 processes created by Module MyModule in namespace MyApp ordered by proc bin size
Diagnostics.processes_by_large_binary_size("MyApp.MyModule", 10)List all processes ordered by proc bin size
Diagnostics.processes_by_large_binary_sizeThese can also be run on a remote node e.g
:rpc.call(@node_name, Diagnostics, :module_name, [pid])