Skip to content

techgaun/ex_erlstats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExErlstats Hex version Hex downloads

Get statistics about Erlang VM

How It Looks Like

Installation

If available in Hex, the package can be installed as:

  1. Add ex_erlstats to your list of dependencies in mix.exs:
```elixir
def deps do
  [{:ex_erlstats, "~> 0.1.1"}]
end
```
  1. Ensure ex_erlstats is started before your application:
```elixir
def application do
  [applications: [:ex_erlstats]]
end
```

Examples

You can get information about

  • memory such as total allocated memory, total amount of memory allocated for atoms, etc.
  • system such as port limits, current port counts, processes counts, etc.
  • erlang statistics such as total run queue length, total active tasks, etc.
> ExErlstats.get_all
%{memory: %{atom: 388625, atom_used: 365825, binary: 49296, code: 9059496,
    ets: 573344, processes: 6593256, processes_used: 6592272, system: 15867984,
    total: 22461240},
  stats: %{run_queue: 0, run_queue_lengths: [0, 0, 0, 0],
    scheduler_wall_time: :undefined, total_active_tasks: 1,
    total_run_queue_lengths: 0},
  system: %{check_io: [name: :erts_poll, primary: :poll, fallback: false,
     kernel_poll: false, memory_size: 66200, total_poll_set_size: 3,
     lazy_updates: true, pending_updates: 0, batch_updates: false,
     concurrent_updates: false, max_fds: 1024, active_fds: 0],
    otp_release: "19", port_count: 5, port_limit: 65536, process_count: 49,
    process_limit: 262144, schedulers: 4, schedulers_online: 4, version: "8.0"}}

> ExErlstats.stats                     
%{run_queue: 0, run_queue_lengths: [0, 0, 0, 0],
  scheduler_wall_time: :undefined, total_active_tasks: 1,
  total_run_queue_lengths: 0}

> ExErlstats.stats[:total_active_tasks]
1

> ExErlstats.system_info
%{check_io: [name: :erts_poll, primary: :poll, fallback: false,
   kernel_poll: false, memory_size: 66200, total_poll_set_size: 3,
   lazy_updates: true, pending_updates: 0, batch_updates: false,
   concurrent_updates: false, max_fds: 1024, active_fds: 0], otp_release: "19",
  port_count: 5, port_limit: 65536, process_count: 49, process_limit: 262144,
  schedulers: 4, schedulers_online: 4, version: "8.0"}

> ExErlstats.system_info[:port_count]
5

> ExErlstats.memory                  
%{atom: 388625, atom_used: 367118, binary: 170776, code: 9396647, ets: 598128,
  processes: 6469296, processes_used: 6468312, system: 16370224,
  total: 22839520}

> ExErlstats.memory[:total]
22827520

> ExErlstats.processes
[[memory: 21640, heap_size: 1598, total_heap_size: 2585, message_queue_len: 0,
registered_name: :init], ...]

> ExErlstats.processes(#PID<0.0.0>)
[memory: 21640, heap_size: 1598, total_heap_size: 2585, message_queue_len: 0,
registered_name: :init]

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages