diff options
author | Magnus Eriksson <[email protected]> | 2011-09-29 13:20:42 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2011-11-08 08:45:36 +0100 |
commit | 5e1fafb077740c9d919bc532b2c392f4f20bbf1b (patch) | |
tree | 0697735d4c1669b5d7b1bf3e348a650c0a5a2b00 /lib/observer/src/observer_sys.erl | |
parent | 766a0a84f0b9e4b9341fb06364bf5430574588a6 (diff) | |
download | otp-5e1fafb077740c9d919bc532b2c392f4f20bbf1b.tar.gz otp-5e1fafb077740c9d919bc532b2c392f4f20bbf1b.tar.bz2 otp-5e1fafb077740c9d919bc532b2c392f4f20bbf1b.zip |
[observer] Started on a wx gui
Diffstat (limited to 'lib/observer/src/observer_sys.erl')
-rw-r--r-- | lib/observer/src/observer_sys.erl | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/lib/observer/src/observer_sys.erl b/lib/observer/src/observer_sys.erl new file mode 100644 index 0000000000..8db7bb0e46 --- /dev/null +++ b/lib/observer/src/observer_sys.erl @@ -0,0 +1,131 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2011. All Rights Reserved. +%% +%% The contents of this file are subject to the Erlang Public License, +%% Version 1.1, (the "License"); you may not use this file except in +%% compliance with the License. You should have received a copy of the +%% Erlang Public License along with this software. If not, it can be +%% retrieved online at http://www.erlang.org/. +%% +%% Software distributed under the License is distributed on an "AS IS" +%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +%% the License for the specific language governing rights and limitations +%% under the License. +%% +%% %CopyrightEnd% + +-module(observer_sys). + +-export([node_info/0, node_name_str/1, no_procs_str/1, no_cpu_str/1, + no_cpu_available_str/1, no_cpu_online_str/1, tot_alloc_str/1, + proc_used_str/1, proc_alloc_str/1, atom_used_str/1, atom_alloc_str/1, + binary_alloc_str/1, code_alloc_str/1, ets_alloc_str/1]). + +-record(node_info, {node_name, + no_procs, % number of processes + no_cpu, % number of logical cpu's + no_cpu_available, %number of logical cpu's available + no_cpu_online, % number of logical cpu's online + tot_alloc, % total memory allocated + proc_used, % memory used by processes + proc_alloc, % memory alloc by processes, + atom_used, % memory used by atoms + atom_alloc, % memory allocated by atoms + binary_alloc, % memory allocated for binaries + code_alloc, % memory allocated by code + ets_alloc}).% memory allocated by ets + + +%%%%%%%%%%%%%%%%%%%%%%% functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +node_info() -> + #node_info{node_name = node_name(), + no_procs = process_count(), + no_cpu = logical_cpus(), + no_cpu_available = logical_cpus_available(), + no_cpu_online = logical_cpus_online(), + tot_alloc = total_alloc(), + proc_used = processes_used(), + proc_alloc = processes_alloc(), + atom_used = atom_used(), + atom_alloc = atom_alloc(), + binary_alloc = binary_alloc(), + code_alloc = code_alloc(), + ets_alloc = ets_alloc() + }. + +node_name() -> + node(). + +process_count() -> + erlang:system_info(process_count). + +logical_cpus() -> + erlang:system_info(logical_processors). % detected number of logical cpus configured on system + +logical_cpus_available() -> % detected number of logical cpus available to erlang runtime system + erlang:system_info(logical_processors_available). + +logical_cpus_online() -> % detected number of logical cpus online on system + erlang:system_info(logical_processors_online). + +total_alloc() -> + erlang:memory(total). % total amount of memory currently allocated + +processes_used() -> % amount of memory currently used by the erlang processes + erlang:memory(processes_used). + +processes_alloc() -> % allocated by erlang processes + erlang:memory(processes). + +atom_used() -> % amount of memory used for atoms + erlang:memory(atom_used). + +atom_alloc() -> % amount allocated for atoms + erlang:memory(atom). + +binary_alloc() -> % amount allocated for binaries + erlang:memory(binary). + +code_alloc() -> % amount allocated for code + erlang:memory(code). + +ets_alloc() -> % amount allocated for ets tables + erlang:memory(ets). + + +%% formatting functions, from the record-value to string +node_name_str(#node_info{node_name = ToReturn}) -> + erlang:atom_to_list(ToReturn). +no_procs_str(#node_info{no_procs = ToReturn}) -> + erlang:integer_to_list(ToReturn). +no_cpu_str(#node_info{no_cpu = ToReturn}) -> + erlang:integer_to_list(ToReturn). +no_cpu_available_str(#node_info{no_cpu_available = ToReturn}) -> + erlang:integer_to_list(ToReturn). +no_cpu_online_str(#node_info{no_cpu_online = ToReturn}) -> + erlang:integer_to_list(ToReturn). +tot_alloc_str(#node_info{tot_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +proc_used_str(#node_info{proc_used = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +proc_alloc_str(#node_info{proc_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +atom_used_str(#node_info{atom_used = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +atom_alloc_str(#node_info{atom_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +binary_alloc_str(#node_info{binary_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +code_alloc_str(#node_info{code_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). + +ets_alloc_str(#node_info{ets_alloc = ToReturn}) -> + erlang:integer_to_list(ToReturn). |