Module Core_profiler_offline_tool__Event_generator

type t

Reads profiler data stored in a file and filters them appropriately

type timer_path = {
interest : Core_profiler.Probe_id.t Core_profiler_offline_tool.Interest.Raw.t;
time : Core.Time_ns.t;
time_delta : Core.Time_ns.Span.t;
}
include sig ... end
val timer_path_of_sexp : Base.Sexp.t ‑> timer_path
val sexp_of_timer_path : timer_path ‑> Base.Sexp.t
val compare_timer_path : timer_path ‑> timer_path ‑> int
type probe_path = {
interest : Core_profiler.Probe_id.t Core_profiler_offline_tool.Interest.Raw.t;
time : Core.Time_ns.t;
time_delta : Core.Time_ns.Span.t;
value : int;
delta : int;
}
include sig ... end
val probe_path_of_sexp : Base.Sexp.t ‑> probe_path
val sexp_of_probe_path : probe_path ‑> Base.Sexp.t
val compare_probe_path : probe_path ‑> probe_path ‑> int
type event =
| Timer of Core_profiler.Probe_id.t Core_profiler_offline_tool.Interest.Raw.t * Core.Time_ns.t
| Probe of Core_profiler.Probe_id.t Core_profiler_offline_tool.Interest.Raw.t * Core.Time_ns.t * int
| Timer_path of timer_path
| Probe_path of probe_path
include sig ... end
val event_of_sexp : Base.Sexp.t ‑> event
val sexp_of_event : event ‑> Base.Sexp.t
val compare_event : event ‑> event ‑> int
val event_time : event ‑> Core.Time_ns.t
val create : Core_profiler.Profiler_epoch.t ‑> Core_profiler_offline_tool.Reader.Header.t ‑> Core_profiler.Probe_id.t Core_profiler_offline_tool.Interest.Raw.t list ‑> ([> Core.read ], _Core.Iobuf.t ‑> t

A t emits (via iter_events) all events that match the list of raw interests provided. The source of the event is identified by passing the raw interest inside the event; interests are hashable and comparable.

val iter_events : t ‑> f:(event ‑> unit) ‑> unit