Module Opentelemetry.Metrics

Metrics.

See the spec

A single metric, measuring some time-varying quantity or statistical distribution. It is composed of one or more data points that have precise values and time stamps. Each distinct metric should have a distinct name.

val float : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Float of float | `Int of int | `None | `String of string ]) list -> float -> Proto.Metrics.number_data_point

Number data point, as a float

val int : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Float of float | `Int of int | `None | `String of string ]) list -> int -> Proto.Metrics.number_data_point

Number data point, as an int

val gauge : name:string -> ?description:string -> ?unit_:string -> Proto.Metrics.number_data_point list -> t

Aggregation of a scalar metric, always with the current value

type aggregation_temporality = Proto.Metrics.aggregation_temporality =
  1. | Aggregation_temporality_unspecified
  2. | Aggregation_temporality_delta
  3. | Aggregation_temporality_cumulative
val sum : name:string -> ?description:string -> ?unit_:string -> ?aggregation_temporality:aggregation_temporality -> ?is_monotonic:bool -> Proto.Metrics.number_data_point list -> t

Sum of all reported measurements over a time interval

val histogram_data_point : ?start_time_unix_nano:Timestamp_ns.t -> ?now:Timestamp_ns.t -> ?attrs: (string * [< `Bool of bool | `Float of float | `Int of int | `None | `String of string ]) list -> ?exemplars:Proto.Metrics.exemplar list -> ?explicit_bounds:float list -> ?sum:float option -> bucket_counts:int64 list -> count:int64 -> unit -> Proto.Metrics.histogram_data_point

Histogram data

  • parameter count

    number of values in population (non negative)

  • parameter sum

    sum of values in population (0 if count is 0)

  • parameter bucket_counts

    count value of histogram for each bucket. Sum of the counts must be equal to count. length must be 1+length explicit_bounds

  • parameter explicit_bounds

    strictly increasing list of bounds for the buckets

val histogram : name:string -> ?description:string -> ?unit_:string -> ?aggregation_temporality:Proto.Metrics.aggregation_temporality -> Proto.Metrics.histogram_data_point list -> t
val make_resource_metrics : ?service_name:string -> ?attrs: (string * [< `Bool of bool | `Float of float | `Int of int | `None | `String of string ]) list -> t list -> Proto.Metrics.resource_metrics

Aggregate metrics into a Proto.Metrics.resource_metrics

val emit : ?attrs: (string * [< `Bool of bool | `Float of float | `Int of int | `None | `String of string ]) list -> t list -> unit

Emit some metrics to the collector (sync). This blocks until the backend has pushed the metrics into some internal queue, or discarded them.

NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.