Library
Module
Module type
Parameter
Class
Class type
Lwt
monitoring.
The monitoring functions of this module return Lwt
threads that proceed only when the metric operation is over, as defined by the current reporter
.
v0.4.1 - homepage
val add :
('a, 'b) Metrics.src ->
('a -> Metrics.tags) ->
('b -> Metrics.data Lwt.t) ->
unit Lwt.t
add src t f
adds a new data point to src
.
val run :
('a, ('b, exn) Stdlib.result -> Metrics.Data.t) Metrics.src ->
('a -> Metrics.tags) ->
(unit -> 'b Lwt.t) ->
'b Lwt.t
run src f
runs f ()
and records in a new data point the time it took. run
will also record the status of the computation, e.g. whether an exception has been raised.
val rrun :
('a, ('b, [ `Exn of exn | `Error of 'c ]) Stdlib.result -> Metrics.Data.t)
Metrics.src ->
('a -> Metrics.tags) ->
(unit -> ('b, 'c) Stdlib.result Lwt.t) ->
('b, 'c) Stdlib.result Lwt.t
Same as run
but also record if the result is Ok
or Error
.
val periodically :
(Metrics.field list, unit -> Metrics.data) Metrics.src ->
unit
periodically src
registers src
for periodic collection.
val init_periodic :
?gc:[ `None | `Quick | `Full ] ->
?logs:bool ->
(unit -> unit Lwt.t) ->
unit
init_periodic ~gc ~logs sleeper
starts a task which Lwt.join
sleeper
and all registered periodically
sources. gc
is by default `Full
, collecting full GC stats - other options are `None
and `Quick
. If logs
is provided and true
(the default), the error and warning count from the Logs library are registered to be periodically reported.