package prometheus

  1. Overview
  2. Docs


module Buckets : sig ... end


include METRIC
type family

A collection of metrics that are the same except for their labels. e.g. "Number of HTTP responses"

type t

A particular metric. e.g. "Number of HTTP responses with code=404"

val v_labels : label_names:string list -> ?registry:CollectorRegistry.t -> help:string -> ?namespace:string -> ?subsystem:string -> string -> family

v_labels ~label_names ~help ~namespace ~subsystem name is a family of metrics with full name namespace_subsystem_name and documentation string help. Each metric in the family will provide a value for each of the labels. The new family is registered with registry (default: CollectorRegistry.default).

val labels : family -> string list -> t

labels family label_values is the metric in family with these values for the labels. The order of the values must be the same as the order of the label_names passed to v_labels; you may wish to write a wrapper function with labelled arguments to avoid mistakes. If this is called multiple times with the same set of values, the existing metric will be returned.

val v_label : label_name:string -> ?registry:CollectorRegistry.t -> help:string -> ?namespace:string -> ?subsystem:string -> string -> string -> t

v_label is a convenience wrapper around v_labels for the case where there is a single label. The result is a function from the single label's value to the metric.

val v : ?registry:CollectorRegistry.t -> help:string -> ?namespace:string -> ?subsystem:string -> string -> t

v is a convenience wrapper around v_labels for the case where there are no labels.

val observe : t -> float -> unit

observe t v adds one to the appropriate bucket for v and adds v to the sum.

val time : t -> (unit -> float) -> (unit -> 'a Lwt.t) -> 'a Lwt.t

time t gettime f calls gettime () before and after executing f () and observes the difference.