From a683232b5ac8e06b8fc9ead6f8c5648791ae29dd Mon Sep 17 00:00:00 2001 From: Matt Bray Date: Wed, 23 Mar 2022 10:03:53 +0000 Subject: [PATCH] feat: include global_attributes in metric data points --- src/opentelemetry.ml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/opentelemetry.ml b/src/opentelemetry.ml index d0b93d54..359da7ac 100644 --- a/src/opentelemetry.ml +++ b/src/opentelemetry.ml @@ -438,15 +438,30 @@ module Metrics = struct (** Number data point, as a float *) let float ?start_time_unix_nano ?(now=Timestamp_ns.now_unix_ns()) + ?(attrs=[]) (d:float) : number_data_point = - default_number_data_point ?start_time_unix_nano ~time_unix_nano:now + let attributes = + attrs + |> List.map _conv_key_value + |> Globals.merge_global_attributes_ + in + default_number_data_point + ?start_time_unix_nano ~time_unix_nano:now + ~attributes ~value:(As_double d) () (** Number data point, as an int *) let int ?start_time_unix_nano ?(now=Timestamp_ns.now_unix_ns()) + ?(attrs=[]) (i:int) : number_data_point = + let attributes = + attrs + |> List.map _conv_key_value + |> Globals.merge_global_attributes_ + in default_number_data_point ?start_time_unix_nano ~time_unix_nano:now + ~attributes ~value:(As_int (Int64.of_int i)) () (** Aggregation of a scalar metric, always with the current value *)