mazenharake / entop Goto Github PK
View Code? Open in Web Editor NEWA top-like tool for monitoring an Erlang node
Home Page: http://github.com/mazenharake/entop
License: BSD 2-Clause "Simplified" License
A top-like tool for monitoring an Erlang node
Home Page: http://github.com/mazenharake/entop
License: BSD 2-Clause "Simplified" License
can't compile
The entop_collector:get_data function calls erlang:process_info on each process. This is problematic, because the resulting process info proplist contains the 'messages' entry, with all the messages in the process message queue.
When using entop against a node which has a message leak (a message queue building up) one of the following to things can happen:
The entop_collector should use erlang:process_info/2 instead of process_info/1, not including the 'messages' option.
=ERROR REPORT==== 9-Sep-2010::13:27:55 ===
Error in process <0.40.0> on node 'entop_remote@Jonass-MacBook' with exit value: {{badmatch,{2451,{badrpc,nodedown}}},[{entop_view,update_screen,1},{entop_view,loop,2}]}
entop was started as follows:
./entop NODENAME -sname entop_remote -setcookie cookie
How to reproduce:
call init:restart() in the monitored node
Hello,
I have been using this tool for some days now and am finding it very useful. One issue however is that the HSize ( which happens to be the column that I am using most) is showing truncated values
E.g ordering on the column HSize:
Pid Registered Name Reductions MQueue HSize SSize HTot
<0.563.0> - 5818505 0 156725 9 156725
<0.476.0> - 876170 0 832040 9 832040
If I do a process_info for the heap size on this process then I see the value {heap_size,15672560}.
Could you please advise how I can fix ?
Thanks for any assistance,
Devangana Tarafdar
Entop crashes almost immediately after starting:
=ERROR REPORT==== 21-Feb-2011::16:46:09 ===
Error in process <0.40.0> on node 'test@dator' with exit value: {if_clause,[{entop_format,mem2str,1},{entop_format,header,2},{entop_view,process_header_data,2},{entop_view,update_screen,4},{entop_view,fetch_and_update,2},{entop_view,loop,2}]}
Got the following crash when running init:restart in the shell of the target node:
=ERROR REPORT==== 21-Feb-2011::16:53:40 ===
Error in process <0.40.0> on node 'test@dator' with exit value: {{case_clause,{14731,{badrpc,{'EXIT',{undef,[{entop_collector,get_data,[]},{rpc,'-handle_call/3-fun-0-',5}]}}}}},[{entop_view,fetch_and_update,2},{entop_view,loop,2}]}
Sometime I want to know which proccess is busy, but now I can't read this data from entop. Entop only show the all Reductions of a process, but not the Reductions of the interval.
Error in process <0.39.0> on node 'entop@orz' with exit value: {function_clause,[{proplists,get_value,[registered_name,undefined,undefined]},{entop_format,row,2},{entop_view,hpi,3},{entop_view,update_screen,1},{entop_view,loop,2}]}
I'm assuming something is returning 'undefined' instead of a list, so proplists:get_value blows up?
I get this function clause:
=ERROR REPORT==== 17-Sep-2010::11:58:04 ===
Error in process <0.41.0> on node 'entop@kaze' with exit value:
{function_clause,[{proplists,get_value,3},{inet,gethostname,0}]}
When connected to a node that is spawning a lot of processes during some load.
Right now entop constantly makes rpc calls to the remote node; which is probably more or less okay but feels a little bit awkward.
What do you think about this: instead of doing rpc calls, you can spawn_link(Node, Fun)
which will be a simple loop that sends out data, receives configuration updates if any, sleeps for set update timeout, loops?
If you're down with this but don't have time to implement, I can try doing it myself and submitting another pull request. Please let me know.
Thanks!
When entopping a system with 300k processes, it takes quite a while to refresh the process list (up to a minute). Would be cool if entop could use a different update strategy when it discovers that the number of processes is huge.
For example: refresh only top 1000 processes after getting the initial list (starting with the visible ones, and then it can figure out if a process on the top list has been replaced by keeping track of the Min and Max value for the current sort column), and only get the complete process list in the background, every let's say 30 seconds.
When trying to connect to a node that has used a cookie from ~/.erlang.cookie
, entop cannot connect without the setcookie flag:
./entop target@kaze -sname entop
Unable to connect to 'target@kaze', check nodename, cookie and network.
On target@kaze:
=ERROR REPORT==== 17-Sep-2010::12:07:06 ===
** Connection attempt from disallowed node entop@kaze **
(target@kaze)1> erlang:get_cookie().
'COOKIE'
In the shell:
» cat ~/.erlang.cookie
COOKIE
This works though:
./entop target@kaze -sname entop -setcookie `cat ~/.erlang.cookie`
This is on Ubuntu 10.04, running Erlang R13B04.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.