[erlang-questions] Ramblings about the Event Tracer

Per Melin per.melin@REDACTED
Sun May 3 23:34:48 CEST 2009


Once I saw the screenshots of the Event Tracer viewer I decided that I
should figure out how to use it.

http://erlang.org/doc/apps/et/part_frame.html

That was some eight-nine hours ago. I now have a splitting headache.

I would really have appreciated if the documentation started out with
a much simpler example. Maybe like this:

1> et_viewer:start([{trace_global, true}, {trace_pattern, {et, max}}]).
{ok,<0.41.0>}
2> et:report_event(50, from, to, action, data).
hopefully_traced

That's all you need to do some really cool things with ET.

I wasted frustrating hours before I figured out that the trace_pattern
option does absolutely nothing without trace_global, even if used on a
single node. Though I later saw that there is a place in the User's
guide where this is hinted at.

I also wasted time before I found out that calls to report_event/5
with detail level 100 is ignored (or not shown), even with the detail
slider in the viewer at 100.

What does the doc say, you ask?
DetailLevel = integer(X) when X =< 0, X >= 100 (sic)

One thing that concerns me is that if I launch the viewer with
trace_global true when connected to other nodes, I've found that even
after I shut down the viewer, the collector and even the whole node,
there is still a trace in place on the other nodes.

(production@REDACTED)1> erlang:trace_info({et, report_event, 5}, all).
{all,[{traced,global},
      {match_spec,[{['$1','_','_','_','_'],[{'<','$1',100}],[]}]},
      {meta,false},
      {meta_match_spec,false},
      {call_count,false}]}

I have no idea what kind of overhead that brings. If I run dbg:i() at
this point I get a dbg_server_crash error.



More information about the erlang-questions mailing list