View Source et_selector (et v1.7.1)

Define event transforms and trace patterns

Summary

Functions

change_pattern(Pattern) -> ok

make_pattern(RawPattern) -> TracePattern

parse_event(Mod, ValidTraceData) -> false | true | {true, Event}

Types

Link to this type

event()

View Source (not exported)
-type event() ::
          #event{detail_level :: term(),
                 trace_ts :: term(),
                 event_ts :: term(),
                 from :: term(),
                 to :: term(),
                 label :: term(),
                 contents :: term()}.
Link to this type

level()

View Source (not exported)
-type level() :: 0..100.

Functions

-spec change_pattern({Mod :: module(), Pattern}) -> ok
                        when
                            Pattern :: DetailLevel | TracePattern | EmptyTracePattern,
                            DetailLevel :: level(),
                            TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}],
                            EmptyTracePattern :: [].

change_pattern(Pattern) -> ok

Activates/deactivates tracing by changing the current trace pattern.

min detail level deactivates tracing of calls to et:trace_me/4,5

max detail level activates tracing of all calls to et:trace_me/4,5

integer(X) detail level activates tracing of all calls to et:trace_me/4,5 whose detail level argument is lesser than X.

An empty match spec deactivates tracing of calls to et:trace_me/4,5

Other match specs activates tracing of calls to et:trace_me/4,5 accordingly with erlang:trace_pattern/2.

-spec make_pattern({Mod :: module(), RawPattern}) -> {Mod :: module(), TracePattern}
                      when
                          RawPattern :: level(),
                          TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}].

make_pattern(RawPattern) -> TracePattern

Makes a trace pattern suitable to feed change_pattern/1

Min detail level deactivates tracing of calls to et:trace_me/4,5

Max detail level activates tracing of all calls to et:trace_me/4,5

integer(X) detail level activates tracing of all calls to et:trace_me/4,5 whose detail level argument is lesser than X.

See also erlang:trace_pattern/2 for more info about its match_spec()

Link to this function

parse_event(Mod, ValidTraceData)

View Source
-spec parse_event(Mod, ValidTraceData) -> boolean | {true, event()}
                     when
                         Mod :: module(),
                         ValidTraceData :: ErlangTraceData | event(),
                         ErlangTraceData ::
                             {trace, pid(), atom(), term()} |
                             {trace, pid(), atom(), term(), term()} |
                             {trace_ts, pid(), atom(), term(), TS :: {integer(), integer(), integer()}} |
                             {trace_ts,
                              pid(),
                              atom(),
                              term(),
                              term(),
                              TS :: {integer(), integer(), integer()}} |
                             {seq_trace, atom(), term()} |
                             {seq_trace, atom(), term(), TS :: {integer(), integer(), integer()}} |
                             {drop, integer()}.

parse_event(Mod, ValidTraceData) -> false | true | {true, Event}

Transforms trace data and makes an event record out of it.

See erlang:trace/3 for more info about the semantics of the trace data.

An event record consists of the following fields:

  • detail_level - Noise has a high level as opposed to essentials.

  • trace_ts - Time when the trace was generated. Same as event_ts if omitted in trace data.

  • event_ts - Time when the event record was created.

  • from - From actor, such as sender of a message.

  • to - To actor, such as receiver of message.

  • label - Label intended to provide a brief event summary.

  • contents - All nitty gritty details of the event.

See et:trace_me/4and et:trace_me/5 for details.

Returns:

  • {true, Event} - where Event is an #event{} record representing the trace data

  • true - means that the trace data already is an event record and that it is valid as it is. No transformation is needed.

  • false - means that the trace data is uninteresting and should be dropped