Module Collector.Callbacks

type 'st t = {
  1. enter_span : 'st -> __FUNCTION__:string option -> __FILE__:string -> __LINE__:int -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> parent:Trace_core__.Types.parent -> string -> Trace_core__.Types.span;
    (*

    Enter a span

    *)
  2. exit_span : 'st -> Trace_core__.Types.span -> unit;
    (*

    Exit a span. Must be called exactly once per span. Additional constraints on nesting, threads, etc. vary per collector.

    *)
  3. add_data_to_span : 'st -> Trace_core__.Types.span -> (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> unit;
  4. enabled : 'st -> Level.t -> bool;
    (*

    Is the collector accepting spans/messages/metrics with this level?

    *)
  5. message : 'st -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> span:Trace_core__.Types.span option -> string -> unit;
    (*

    Emit a message or log

    *)
  6. metric : 'st -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> string -> Trace_core__.Types.metric -> unit;
    (*

    Metric .

    *)
  7. extension : 'st -> level:Level.t -> Trace_core__.Types.extension_event -> unit;
    (*

    Collector-specific extension. It now has a level as well.

    *)
  8. init : 'st -> unit;
    (*

    Called on initialization

    *)
  9. shutdown : 'st -> unit;
    (*

    Shutdown collector, possibly waiting for it to finish sending data.

    *)
}

Callbacks taking a state 'st

val make : ?enabled:('a -> Level.t -> bool) -> enter_span: ('a -> __FUNCTION__:string option -> __FILE__:string -> __LINE__:int -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> parent:Trace_core__.Types.parent -> string -> Trace_core__.Types.span) -> exit_span:('a -> Trace_core__.Types.span -> unit) -> add_data_to_span: ('a -> Trace_core__.Types.span -> (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> unit) -> message: ('a -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> span:Trace_core__.Types.span option -> string -> unit) -> metric: ('a -> level:Level.t -> params:Trace_core__.Types.extension_parameter list -> data: (string * [ `Int of int | `String of string | `Bool of bool | `Float of float | `None ]) list -> string -> Trace_core__.Types.metric -> unit) -> ?extension: ('a -> level:Level.t -> Trace_core__.Types.extension_event -> unit) -> ?init:('a -> unit) -> ?shutdown:('a -> unit) -> unit -> 'a t

Helper to create backends in a future-proof way