---
name: "et_selector"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/et_selector"
---

# et\_selector(3erl)

Define event transforms and trace patterns

## NAME

et\_selector - Define event transforms and trace patterns

## DESCRIPTION

## EXPORTS

**make\_pattern(RawPattern) -\> TracePattern**\

Types:

RawPattern = detail\_level()\
 TracePattern = erlang\_trace\_pattern\_match\_spec()\
 detail\_level() = min \| max \| integer(X) when X \>= 0, X =\< 100\

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()*

**change\_pattern(Pattern) -\> ok**\

Types:

Pattern = detail\_level() \| empty\_match\_spec() \| erlang\_trace\_pattern\_match\_spec()\
 detail\_level() = min \| max \| integer(X) when X \>= 0, X =\< 100\
 empty\_match\_spec() = \[\] \

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*.

**parse\_event(Mod, ValidTraceData) -\> false \| true \| {true, Event}**\

Types:

Mod = module\_name() \| undefined\
 module\_name() = atom()\
 ValidTraceData = erlang\_trace\_data() \| record(event)\
 erlang\_trace\_data() = {trace, Pid, Label, Info} \| {trace, Pid, Label, Info, Extra} \| {trace\_ts, Pid, Label, Info, ReportedTS} \| {trace\_ts, Pid, Label, Info, Extra, ReportedTS} \| {seq\_trace, Label, Info} \| {seq\_trace, Label, Info, ReportedTS} \| {drop, NumberOfDroppedItems}\

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/4*and *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
