ocaml-trace/src/core/collector.ml
Simon Cruanes ee2e5dd651
refactor: avoid the cursed stdlib Trace module by adding trace.core
this way, we can actually use only `trace.core` when we also expect to
use compiler-libs.toplevel (which contains a naked `Trace` module, which
would cause .cmi collisions). The library `trace` still exists, and just
forwards to `trace.core`.
2023-06-12 13:12:41 -04:00

42 lines
1.1 KiB
OCaml

(** A global collector.
The collector, if present, is responsible for collecting messages
and spans, and storing them, recording them, forward them, or
offering them to other services and processes.
*)
open Types
let dummy_span : span = Int64.min_int
(** Signature for a collector.
This is only relevant to implementors of tracing backends; to instrument
your code you only need to look at the {!Trace} module. *)
module type S = sig
val enter_span :
?__FUNCTION__:string ->
__FILE__:string ->
__LINE__:int ->
data:(string * user_data) list ->
string ->
span
val exit_span : span -> unit
val message : ?span:span -> data:(string * user_data) list -> string -> unit
val name_thread : string -> unit
(** Give a name to the current thread *)
val name_process : string -> unit
(** Give a name to the current process *)
val counter_int : string -> int -> unit
(** Integer counter *)
val counter_float : string -> float -> unit
(** Float counter *)
val shutdown : unit -> unit
(** Shutdown collector, possibly waiting for it to finish sending data. *)
end