Module Metrics_lwt

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

Metric Monitoring

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.