Traceinclude module type of struct include Trace_core endUser defined data, generally passed as key/value pairs to whatever collector is installed (if any).
module Collector = Trace_core.Collectormodule Meta_map = Trace_core.Meta_mapIs there a collector?
This is fast, so that the traced program can check it before creating any span or message.
val with_span :
?__FUNCTION__:string ->
__FILE__:string ->
__LINE__:int ->
?data:(unit -> (string * user_data) list) ->
string ->
(span -> 'a) ->
'awith_span ~__FILE__ ~__LINE__ name f enters a new span sp, and calls f sp. sp might be a dummy span if no collector is installed. When f sp returns or raises, the span sp is exited.
This is the recommended way to instrument most code.
NOTE an important restriction is that this is only supposed to work for synchronous, direct style code. Monadic concurrency, Effect-based fibers, etc. might not play well with this style of spans on some or all backends.
val exit_span : span -> unitAdd structured data to the given active span (see with_span). Behavior is not specified if the span has been exited.
message msg logs a message msg (if a collector is installed). Additional metadata can be provided.
val messagef :
?span:span ->
?data:(unit -> (string * user_data) list) ->
((('a, Stdlib.Format.formatter, unit, unit) Stdlib.format4 -> 'a) -> unit) ->
unitmessagef (fun k->k"hello %s %d!" "world" 42) is like message "hello world 42!" but only computes the string formatting if a collector is installed.
Give a name to the current thread. This might be used by the collector to display traces in a more informative way.
Give a name to the current process. This might be used by the collector to display traces in a more informative way.
val counter_int :
?data:(unit -> (string * user_data) list) ->
string ->
int ->
unitEmit a counter of type int. Counters represent the evolution of some quantity over time.
val counter_float :
?data:(unit -> (string * user_data) list) ->
string ->
float ->
unitEmit a counter of type float. See counter_int for more details.
type collector = (module Collector.S)An event collector.
See Collector for more details.
val setup_collector : collector -> unitsetup_collector c installs c as the current collector.