metrics-lwt

Lwt backend for the Metrics library
back to documentation root
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library metrics-lwt
Module Metrics_lwt

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 ) 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 ] ) result -> Metrics.Data.t ) Metrics.src -> ( 'a -> Metrics.tags ) -> ( unit -> ( 'b, 'c ) result Lwt.t ) -> ( 'b, 'c ) 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.