查看源码 et_selector (et v1.7.1)
定义事件转换和跟踪模式
概要
类型
函数
-spec change_pattern({Mod :: module(), Pattern}) -> ok when Pattern :: DetailLevel | TracePattern | EmptyTracePattern, DetailLevel :: level(), TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}], EmptyTracePattern :: [].
通过更改当前跟踪模式来激活/停用跟踪。
min
细节级别停用对 et:trace_me/4,5
的调用跟踪
max
细节级别激活对 et:trace_me/4,5
的所有调用跟踪
integer(X)
细节级别激活对 et:trace_me/4,5
的所有调用跟踪,这些调用的细节级别参数小于 X
。
空的匹配规范停用对 et:trace_me/4,5
的调用跟踪
其他的匹配规范根据 erlang:trace_pattern/2
激活对 et:trace_me/4,5
的调用跟踪。
-spec make_pattern({Mod :: module(), RawPattern}) -> {Mod :: module(), TracePattern} when RawPattern :: level(), TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}].
生成适合传递给 change_pattern/1 的跟踪模式
最小细节级别停用对 et:trace_me/4,5
的调用跟踪
最大细节级别激活对 et:trace_me/4,5
的所有调用跟踪
integer(X) 细节级别激活对 et:trace_me/4,5
的所有调用跟踪,这些调用的细节级别参数小于 X。
有关其 match_spec()
的更多信息,另请参见 erlang:trace_pattern/2
。
-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()}.
转换跟踪数据并从中生成事件记录。
有关跟踪数据的语义的更多信息,请参见 erlang:trace/3
。
事件记录包含以下字段
detail_level - 噪声的级别高于基本信息。
trace_ts - 生成跟踪的时间。如果跟踪数据中省略,则与 event_ts 相同。
event_ts - 创建事件记录的时间。
from - 来自参与者,例如消息的发送者。
to - 到达参与者,例如消息的接收者。
label - 旨在提供简短的事件摘要的标签。
contents - 事件的所有详细信息。
有关详细信息,请参见 et:trace_me/4
和 et:trace_me/5
。
返回
{true, Event} - 其中 Event 是表示跟踪数据的 #event{} 记录
true - 表示跟踪数据已经是事件记录,并且它是有效的。不需要转换。
false - 表示跟踪数据不感兴趣,应该丢弃