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 Interest.Raw.t;
time : Core.Time_ns.t;
time_delta : Core.Time_ns.Span.t;
}
val sexp_of_timer_path : timer_path -> Ppx_sexp_conv_lib.Sexp.t
val timer_path_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> timer_path
val compare_timer_path : timer_path -> timer_path -> int
type probe_path = {
interest : Core_profiler.Probe_id.t Interest.Raw.t;
time : Core.Time_ns.t;
time_delta : Core.Time_ns.Span.t;
value : int;
delta : int;
}
val sexp_of_probe_path : probe_path -> Ppx_sexp_conv_lib.Sexp.t
val probe_path_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> probe_path
val compare_probe_path : probe_path -> probe_path -> int
type event =
| Timer of Core_profiler.Probe_id.t Interest.Raw.t * Core.Time_ns.t
| Probe of Core_profiler.Probe_id.t Interest.Raw.t * Core.Time_ns.t * int
| Timer_path of timer_path
| Probe_path of probe_path
val sexp_of_event : event -> Ppx_sexp_conv_lib.Sexp.t
val event_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> event
val compare_event : event -> event -> int
val event_time : event -> Core.Time_ns.t
val create : Core_profiler.Profiler_epoch.t -> Reader.Header.t -> Core_profiler.Probe_id.t 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