Collector.Callbackstype 'st t = {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
*)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.
*)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;enabled : 'st -> Level.t -> bool;Is the collector accepting spans/messages/metrics with this level?
*)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
*)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 .
*)extension : 'st -> level:Level.t -> Trace_core__.Types.extension_event -> unit;Collector-specific extension. It now has a level as well.
*)init : 'st -> unit;Called on initialization
*)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 tHelper to create backends in a future-proof way