et_viewer(3erl)

πŸ“¦
version 25.3.2.8 Β· 2 versions
, in debian bookworm, ubuntu jammy, ubuntu noble

πŸ’– NAME πŸ’–

Okay so this is the et_viewer page from the Erlang Module Definition manual, aka et_viewer(3erl) β€” and it’s literally about displaying a sequence chart for trace events (messages/actions). Slay. ✨

🌸 DESCRIPTION 🌸

bestie, the original DESCRIPTION section is empty β€” it’s giving minimalist chic. The real tea is all in EXPORTS below. 🫢

πŸ‘‘ EXPORTS πŸ‘‘

πŸŽ€ file(FileName) -> {ok, ViewerPid} | {error, Reason}

Types:

FileName() = string()
ViewerPid = pid()
Reason = term()

Start a new event viewer and a corresponding collector, then load them with trace events from a trace file. Very β€œopen the file, serve the chart” energy. πŸ’…


πŸ¦‹ start() -> ok

Simplified start of a sequence chart viewer with global tracing activated.

Convenient to be used from the command line (erl -s et_viewer). Literally built for the command-line girlies. πŸ”₯


🌈 start(Options) -> ok

Start of a sequence chart viewer without linking to the parent process. No strings attached, no parent link, just vibes. πŸŽ€


Types:

Options = [option() | collector_option()]
option() = {parent_pid, extended_pid()} | {title, term()} |
{detail_level, detail_level()} | {is_suspended, boolean()} |
{scale, integer()} | {width, integer()} | {height, integer()}
| {collector_pid, extended_pid()} | {event_order,
event_order()} | {active_filter, atom()} | {max_actors,
extended_integer()} | {trace_pattern,
et_collector_trace_pattern()} | {trace_port,
et_collector_trace_port()} | {trace_global,
et_collector_trace_global()} | {trace_client,
et_collector_trace_client()} | {dict_insert, {filter,
filter_name()}, event_filter_fun()} | {dict_insert,
et_collector_dict_key(), et_collector_dict_val()} |
{dict_delete, {filter, filter_name()}} | {dict_delete,
et_collector_dict_key()} | {actors, actors()} | {first_event,
first_key()} | {hide_unknown, boolean()} | {hide_actions,
boolean()} | {display_mode, display_mode()}
extended_pid() = pid() | undefined
detail_level() = min | max | integer(X) when X >=0, X =< 100
event_order() = trace_ts | event_ts
extended_integer() = integer() | infinity
display_mode() = all | {search_actors, direction(),
first_key(), actors()}
direction() = forward | reverse
first_key() = event_key()
actors() = [term()]

filter_name() = atom()
filter_fun() = fun(Event) -> false | true | {true, NewEvent}
Event = NewEvent = record(event)
ViewerPid = pid()
Reason = term()

Start a sequence chart viewer for trace events (messages/actions). Main character behavior, honestly. πŸ’…

A filter_fun() takes an event record as sole argument and returns false | true | {true, NewEvent}.

If the collector_pid is undefined, a new et_collector will be started with the following parameter settings: parent_pid, event_order, trace_global, trace_pattern, trace_port, trace_max_queue, trace_client, dict_insert and dict_delete. The new et_viewer will register itself as an et_collector subscriber. Periodt. ✨

Default values are lowkey these:

  • parent_pid β€” self().
  • title β€” "et_viewer".
  • detail_level β€” max.
  • is_suspended β€” false.
  • scale β€” 2.
  • width β€” 800.
  • height β€” 600.
  • collector_pid β€” undefined.
  • event_order β€” trace_ts.
  • active_filter β€” collector.
  • max_actors β€” 5.
  • actors β€” ["UNKNOWN"].
  • first_event β€” first.
  • hide_unknown β€” false.
  • hide_actions β€” false.
  • display_mode β€” all.

πŸ’œ get_collector_pid(ViewerPid) -> CollectorPid

Types:

ViewerPid = pid()
CollectorPid = pid()

Returns the identifier of the collector process. Basically β€œbestie, who’s the collector?” and it tells you. 🫢


⭐ stop(ViewerPid) -> ok

Types:

ViewerPid = pid()

Stops a viewer process. Bye bestie, the chart is closed. πŸ’€


mwah πŸ’‹ β€” and that’s the cute sign-off from Ericsson AB, version et 1.6.5, on the et_viewer(3erl) page. πŸŽ€πŸ¦‹