diff --git a/src/proto/common_pb.ml b/src/proto/common_pb.ml index cc2f7034..07425f0f 100644 --- a/src/proto/common_pb.ml +++ b/src/proto/common_pb.ml @@ -1,5 +1,13 @@ [@@@ocaml.warning "-27-30-39"] +type array_value_mutable = { + mutable values : Common_types.any_value list; +} + +let default_array_value_mutable () : array_value_mutable = { + values = []; +} + type key_value_list_mutable = { mutable values : Common_types.key_value list; } @@ -18,14 +26,6 @@ let default_key_value_mutable () : key_value_mutable = { value = None; } -type array_value_mutable = { - mutable values : Common_types.any_value list; -} - -let default_array_value_mutable () : array_value_mutable = { - values = []; -} - type instrumentation_scope_mutable = { mutable name : string; mutable version : string; @@ -45,13 +45,13 @@ let rec decode_any_value d = let rec loop () = let ret:Common_types.any_value = match Pbrt.Decoder.key d with | None -> Pbrt.Decoder.malformed_variant "any_value" - | Some (7, _) -> (Common_types.Bytes_value (Pbrt.Decoder.bytes d) : Common_types.any_value) - | Some (6, _) -> (Common_types.Kvlist_value (decode_key_value_list (Pbrt.Decoder.nested d)) : Common_types.any_value) - | Some (5, _) -> (Common_types.Array_value (decode_array_value (Pbrt.Decoder.nested d)) : Common_types.any_value) - | Some (4, _) -> (Common_types.Double_value (Pbrt.Decoder.float_as_bits64 d) : Common_types.any_value) - | Some (3, _) -> (Common_types.Int_value (Pbrt.Decoder.int64_as_varint d) : Common_types.any_value) - | Some (2, _) -> (Common_types.Bool_value (Pbrt.Decoder.bool d) : Common_types.any_value) | Some (1, _) -> (Common_types.String_value (Pbrt.Decoder.string d) : Common_types.any_value) + | Some (2, _) -> (Common_types.Bool_value (Pbrt.Decoder.bool d) : Common_types.any_value) + | Some (3, _) -> (Common_types.Int_value (Pbrt.Decoder.int64_as_varint d) : Common_types.any_value) + | Some (4, _) -> (Common_types.Double_value (Pbrt.Decoder.float_as_bits64 d) : Common_types.any_value) + | Some (5, _) -> (Common_types.Array_value (decode_array_value (Pbrt.Decoder.nested d)) : Common_types.any_value) + | Some (6, _) -> (Common_types.Kvlist_value (decode_key_value_list (Pbrt.Decoder.nested d)) : Common_types.any_value) + | Some (7, _) -> (Common_types.Bytes_value (Pbrt.Decoder.bytes d) : Common_types.any_value) | Some (n, payload_kind) -> ( Pbrt.Decoder.skip d payload_kind; loop () @@ -61,6 +61,25 @@ let rec decode_any_value d = in loop () +and decode_array_value d = + let v = default_array_value_mutable () in + let continue__= ref true in + while !continue__ do + match Pbrt.Decoder.key d with + | None -> ( + v.values <- List.rev v.values; + ); continue__ := false + | Some (1, Pbrt.Bytes) -> begin + v.values <- (decode_any_value (Pbrt.Decoder.nested d)) :: v.values; + end + | Some (1, pk) -> + Pbrt.Decoder.unexpected_payload "Message(array_value), field(1)" pk + | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind + done; + ({ + Common_types.values = v.values; + } : Common_types.array_value) + and decode_key_value_list d = let v = default_key_value_list_mutable () in let continue__= ref true in @@ -104,25 +123,6 @@ and decode_key_value d = Common_types.value = v.value; } : Common_types.key_value) -and decode_array_value d = - let v = default_array_value_mutable () in - let continue__= ref true in - while !continue__ do - match Pbrt.Decoder.key d with - | None -> ( - v.values <- List.rev v.values; - ); continue__ := false - | Some (1, Pbrt.Bytes) -> begin - v.values <- (decode_any_value (Pbrt.Decoder.nested d)) :: v.values; - end - | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(array_value), field(1)" pk - | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind - done; - ({ - Common_types.values = v.values; - } : Common_types.array_value) - let rec decode_instrumentation_scope d = let v = default_instrumentation_scope_mutable () in let continue__= ref true in @@ -162,29 +162,36 @@ let rec decode_instrumentation_scope d = let rec encode_any_value (v:Common_types.any_value) encoder = begin match v with - | Common_types.Bytes_value x -> - Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; - Pbrt.Encoder.bytes x encoder; - | Common_types.Kvlist_value x -> - Pbrt.Encoder.key (6, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_key_value_list x) encoder; - | Common_types.Array_value x -> - Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_array_value x) encoder; - | Common_types.Double_value x -> - Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 x encoder; - | Common_types.Int_value x -> - Pbrt.Encoder.key (3, Pbrt.Varint) encoder; - Pbrt.Encoder.int64_as_varint x encoder; - | Common_types.Bool_value x -> - Pbrt.Encoder.key (2, Pbrt.Varint) encoder; - Pbrt.Encoder.bool x encoder; | Common_types.String_value x -> Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; Pbrt.Encoder.string x encoder; + | Common_types.Bool_value x -> + Pbrt.Encoder.key (2, Pbrt.Varint) encoder; + Pbrt.Encoder.bool x encoder; + | Common_types.Int_value x -> + Pbrt.Encoder.key (3, Pbrt.Varint) encoder; + Pbrt.Encoder.int64_as_varint x encoder; + | Common_types.Double_value x -> + Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 x encoder; + | Common_types.Array_value x -> + Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_array_value x) encoder; + | Common_types.Kvlist_value x -> + Pbrt.Encoder.key (6, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_key_value_list x) encoder; + | Common_types.Bytes_value x -> + Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; + Pbrt.Encoder.bytes x encoder; end +and encode_array_value (v:Common_types.array_value) encoder = + List.iter (fun x -> + Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_any_value x) encoder; + ) v.Common_types.values; + () + and encode_key_value_list (v:Common_types.key_value_list) encoder = List.iter (fun x -> Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; @@ -203,13 +210,6 @@ and encode_key_value (v:Common_types.key_value) encoder = end; () -and encode_array_value (v:Common_types.array_value) encoder = - List.iter (fun x -> - Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_any_value x) encoder; - ) v.Common_types.values; - () - let rec encode_instrumentation_scope (v:Common_types.instrumentation_scope) encoder = Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; Pbrt.Encoder.string v.Common_types.name encoder; diff --git a/src/proto/common_pb.mli b/src/proto/common_pb.mli index a415b483..7ece8615 100644 --- a/src/proto/common_pb.mli +++ b/src/proto/common_pb.mli @@ -6,15 +6,15 @@ val encode_any_value : Common_types.any_value -> Pbrt.Encoder.t -> unit (** [encode_any_value v encoder] encodes [v] with the given [encoder] *) +val encode_array_value : Common_types.array_value -> Pbrt.Encoder.t -> unit +(** [encode_array_value v encoder] encodes [v] with the given [encoder] *) + val encode_key_value_list : Common_types.key_value_list -> Pbrt.Encoder.t -> unit (** [encode_key_value_list v encoder] encodes [v] with the given [encoder] *) val encode_key_value : Common_types.key_value -> Pbrt.Encoder.t -> unit (** [encode_key_value v encoder] encodes [v] with the given [encoder] *) -val encode_array_value : Common_types.array_value -> Pbrt.Encoder.t -> unit -(** [encode_array_value v encoder] encodes [v] with the given [encoder] *) - val encode_instrumentation_scope : Common_types.instrumentation_scope -> Pbrt.Encoder.t -> unit (** [encode_instrumentation_scope v encoder] encodes [v] with the given [encoder] *) @@ -24,14 +24,14 @@ val encode_instrumentation_scope : Common_types.instrumentation_scope -> Pbrt.En val decode_any_value : Pbrt.Decoder.t -> Common_types.any_value (** [decode_any_value decoder] decodes a [any_value] value from [decoder] *) +val decode_array_value : Pbrt.Decoder.t -> Common_types.array_value +(** [decode_array_value decoder] decodes a [array_value] value from [decoder] *) + val decode_key_value_list : Pbrt.Decoder.t -> Common_types.key_value_list (** [decode_key_value_list decoder] decodes a [key_value_list] value from [decoder] *) val decode_key_value : Pbrt.Decoder.t -> Common_types.key_value (** [decode_key_value decoder] decodes a [key_value] value from [decoder] *) -val decode_array_value : Pbrt.Decoder.t -> Common_types.array_value -(** [decode_array_value decoder] decodes a [array_value] value from [decoder] *) - val decode_instrumentation_scope : Pbrt.Decoder.t -> Common_types.instrumentation_scope (** [decode_instrumentation_scope decoder] decodes a [instrumentation_scope] value from [decoder] *) diff --git a/src/proto/common_pp.ml b/src/proto/common_pp.ml index 0bbc2906..e809bafc 100644 --- a/src/proto/common_pp.ml +++ b/src/proto/common_pp.ml @@ -2,13 +2,19 @@ let rec pp_any_value fmt (v:Common_types.any_value) = match v with - | Common_types.Bytes_value x -> Format.fprintf fmt "@[Bytes_value(@,%a)@]" Pbrt.Pp.pp_bytes x - | Common_types.Kvlist_value x -> Format.fprintf fmt "@[Kvlist_value(@,%a)@]" pp_key_value_list x - | Common_types.Array_value x -> Format.fprintf fmt "@[Array_value(@,%a)@]" pp_array_value x - | Common_types.Double_value x -> Format.fprintf fmt "@[Double_value(@,%a)@]" Pbrt.Pp.pp_float x - | Common_types.Int_value x -> Format.fprintf fmt "@[Int_value(@,%a)@]" Pbrt.Pp.pp_int64 x - | Common_types.Bool_value x -> Format.fprintf fmt "@[Bool_value(@,%a)@]" Pbrt.Pp.pp_bool x | Common_types.String_value x -> Format.fprintf fmt "@[String_value(@,%a)@]" Pbrt.Pp.pp_string x + | Common_types.Bool_value x -> Format.fprintf fmt "@[Bool_value(@,%a)@]" Pbrt.Pp.pp_bool x + | Common_types.Int_value x -> Format.fprintf fmt "@[Int_value(@,%a)@]" Pbrt.Pp.pp_int64 x + | Common_types.Double_value x -> Format.fprintf fmt "@[Double_value(@,%a)@]" Pbrt.Pp.pp_float x + | Common_types.Array_value x -> Format.fprintf fmt "@[Array_value(@,%a)@]" pp_array_value x + | Common_types.Kvlist_value x -> Format.fprintf fmt "@[Kvlist_value(@,%a)@]" pp_key_value_list x + | Common_types.Bytes_value x -> Format.fprintf fmt "@[Bytes_value(@,%a)@]" Pbrt.Pp.pp_bytes x + +and pp_array_value fmt (v:Common_types.array_value) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "values" (Pbrt.Pp.pp_list pp_any_value) fmt v.Common_types.values; + in + Pbrt.Pp.pp_brk pp_i fmt () and pp_key_value_list fmt (v:Common_types.key_value_list) = let pp_i fmt () = @@ -23,12 +29,6 @@ and pp_key_value fmt (v:Common_types.key_value) = in Pbrt.Pp.pp_brk pp_i fmt () -and pp_array_value fmt (v:Common_types.array_value) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "values" (Pbrt.Pp.pp_list pp_any_value) fmt v.Common_types.values; - in - Pbrt.Pp.pp_brk pp_i fmt () - let rec pp_instrumentation_scope fmt (v:Common_types.instrumentation_scope) = let pp_i fmt () = Pbrt.Pp.pp_record_field ~first:true "name" Pbrt.Pp.pp_string fmt v.Common_types.name; diff --git a/src/proto/common_pp.mli b/src/proto/common_pp.mli index 64c5f919..4c2fc14d 100644 --- a/src/proto/common_pp.mli +++ b/src/proto/common_pp.mli @@ -1,4 +1,3 @@ - (** common.proto Pretty Printing *) @@ -7,14 +6,14 @@ val pp_any_value : Format.formatter -> Common_types.any_value -> unit (** [pp_any_value v] formats v *) +val pp_array_value : Format.formatter -> Common_types.array_value -> unit +(** [pp_array_value v] formats v *) + val pp_key_value_list : Format.formatter -> Common_types.key_value_list -> unit (** [pp_key_value_list v] formats v *) val pp_key_value : Format.formatter -> Common_types.key_value -> unit (** [pp_key_value v] formats v *) -val pp_array_value : Format.formatter -> Common_types.array_value -> unit -(** [pp_array_value v] formats v *) - val pp_instrumentation_scope : Format.formatter -> Common_types.instrumentation_scope -> unit (** [pp_instrumentation_scope v] formats v *) diff --git a/src/proto/common_types.ml b/src/proto/common_types.ml index 3d010172..bddc9354 100644 --- a/src/proto/common_types.ml +++ b/src/proto/common_types.ml @@ -2,13 +2,17 @@ type any_value = - | Bytes_value of bytes - | Kvlist_value of key_value_list - | Array_value of array_value - | Double_value of float - | Int_value of int64 - | Bool_value of bool | String_value of string + | Bool_value of bool + | Int_value of int64 + | Double_value of float + | Array_value of array_value + | Kvlist_value of key_value_list + | Bytes_value of bytes + +and array_value = { + values : any_value list; +} and key_value_list = { values : key_value list; @@ -19,10 +23,6 @@ and key_value = { value : any_value option; } -and array_value = { - values : any_value list; -} - type instrumentation_scope = { name : string; version : string; @@ -30,7 +30,13 @@ type instrumentation_scope = { dropped_attributes_count : int32; } -let rec default_any_value () : any_value = Bytes_value (Bytes.create 0) +let rec default_any_value () : any_value = String_value ("") + +and default_array_value + ?values:((values:any_value list) = []) + () : array_value = { + values; +} and default_key_value_list ?values:((values:key_value list) = []) @@ -46,12 +52,6 @@ and default_key_value value; } -and default_array_value - ?values:((values:any_value list) = []) - () : array_value = { - values; -} - let rec default_instrumentation_scope ?name:((name:string) = "") ?version:((version:string) = "") diff --git a/src/proto/common_types.mli b/src/proto/common_types.mli index 2e72d579..8427638a 100644 --- a/src/proto/common_types.mli +++ b/src/proto/common_types.mli @@ -5,13 +5,17 @@ (** {2 Types} *) type any_value = - | Bytes_value of bytes - | Kvlist_value of key_value_list - | Array_value of array_value - | Double_value of float - | Int_value of int64 - | Bool_value of bool | String_value of string + | Bool_value of bool + | Int_value of int64 + | Double_value of float + | Array_value of array_value + | Kvlist_value of key_value_list + | Bytes_value of bytes + +and array_value = { + values : any_value list; +} and key_value_list = { values : key_value list; @@ -22,10 +26,6 @@ and key_value = { value : any_value option; } -and array_value = { - values : any_value list; -} - type instrumentation_scope = { name : string; version : string; @@ -39,6 +39,12 @@ type instrumentation_scope = { val default_any_value : unit -> any_value (** [default_any_value ()] is the default value for type [any_value] *) +val default_array_value : + ?values:any_value list -> + unit -> + array_value +(** [default_array_value ()] is the default value for type [array_value] *) + val default_key_value_list : ?values:key_value list -> unit -> @@ -52,12 +58,6 @@ val default_key_value : key_value (** [default_key_value ()] is the default value for type [key_value] *) -val default_array_value : - ?values:any_value list -> - unit -> - array_value -(** [default_array_value ()] is the default value for type [array_value] *) - val default_instrumentation_scope : ?name:string -> ?version:string -> diff --git a/src/proto/logs_pp.mli b/src/proto/logs_pp.mli index ecbc28a2..fd952524 100644 --- a/src/proto/logs_pp.mli +++ b/src/proto/logs_pp.mli @@ -1,4 +1,3 @@ - (** logs.proto Pretty Printing *) diff --git a/src/proto/logs_service_pp.mli b/src/proto/logs_service_pp.mli index 31d4613a..6aa6319f 100644 --- a/src/proto/logs_service_pp.mli +++ b/src/proto/logs_service_pp.mli @@ -1,4 +1,3 @@ - (** logs_service.proto Pretty Printing *) diff --git a/src/proto/metrics_pb.ml b/src/proto/metrics_pb.ml index 0c4ed447..d85e1e72 100644 --- a/src/proto/metrics_pb.ml +++ b/src/proto/metrics_pb.ml @@ -1,53 +1,5 @@ [@@@ocaml.warning "-27-30-39"] -type summary_data_point_value_at_quantile_mutable = { - mutable quantile : float; - mutable value : float; -} - -let default_summary_data_point_value_at_quantile_mutable () : summary_data_point_value_at_quantile_mutable = { - quantile = 0.; - value = 0.; -} - -type summary_data_point_mutable = { - mutable attributes : Common_types.key_value list; - mutable start_time_unix_nano : int64; - mutable time_unix_nano : int64; - mutable count : int64; - mutable sum : float; - mutable quantile_values : Metrics_types.summary_data_point_value_at_quantile list; - mutable flags : int32; -} - -let default_summary_data_point_mutable () : summary_data_point_mutable = { - attributes = []; - start_time_unix_nano = 0L; - time_unix_nano = 0L; - count = 0L; - sum = 0.; - quantile_values = []; - flags = 0l; -} - -type summary_mutable = { - mutable data_points : Metrics_types.summary_data_point list; -} - -let default_summary_mutable () : summary_mutable = { - data_points = []; -} - -type exponential_histogram_data_point_buckets_mutable = { - mutable offset : int32; - mutable bucket_counts : int64 list; -} - -let default_exponential_histogram_data_point_buckets_mutable () : exponential_histogram_data_point_buckets_mutable = { - offset = 0l; - bucket_counts = []; -} - type exemplar_mutable = { mutable filtered_attributes : Common_types.key_value list; mutable time_unix_nano : int64; @@ -59,11 +11,97 @@ type exemplar_mutable = { let default_exemplar_mutable () : exemplar_mutable = { filtered_attributes = []; time_unix_nano = 0L; - value = Metrics_types.As_int (0L); + value = Metrics_types.As_double (0.); span_id = Bytes.create 0; trace_id = Bytes.create 0; } +type number_data_point_mutable = { + mutable attributes : Common_types.key_value list; + mutable start_time_unix_nano : int64; + mutable time_unix_nano : int64; + mutable value : Metrics_types.number_data_point_value; + mutable exemplars : Metrics_types.exemplar list; + mutable flags : int32; +} + +let default_number_data_point_mutable () : number_data_point_mutable = { + attributes = []; + start_time_unix_nano = 0L; + time_unix_nano = 0L; + value = Metrics_types.As_double (0.); + exemplars = []; + flags = 0l; +} + +type gauge_mutable = { + mutable data_points : Metrics_types.number_data_point list; +} + +let default_gauge_mutable () : gauge_mutable = { + data_points = []; +} + +type sum_mutable = { + mutable data_points : Metrics_types.number_data_point list; + mutable aggregation_temporality : Metrics_types.aggregation_temporality; + mutable is_monotonic : bool; +} + +let default_sum_mutable () : sum_mutable = { + data_points = []; + aggregation_temporality = Metrics_types.default_aggregation_temporality (); + is_monotonic = false; +} + +type histogram_data_point_mutable = { + mutable attributes : Common_types.key_value list; + mutable start_time_unix_nano : int64; + mutable time_unix_nano : int64; + mutable count : int64; + mutable sum : float option; + mutable bucket_counts : int64 list; + mutable explicit_bounds : float list; + mutable exemplars : Metrics_types.exemplar list; + mutable flags : int32; + mutable min : float option; + mutable max : float option; +} + +let default_histogram_data_point_mutable () : histogram_data_point_mutable = { + attributes = []; + start_time_unix_nano = 0L; + time_unix_nano = 0L; + count = 0L; + sum = None; + bucket_counts = []; + explicit_bounds = []; + exemplars = []; + flags = 0l; + min = None; + max = None; +} + +type histogram_mutable = { + mutable data_points : Metrics_types.histogram_data_point list; + mutable aggregation_temporality : Metrics_types.aggregation_temporality; +} + +let default_histogram_mutable () : histogram_mutable = { + data_points = []; + aggregation_temporality = Metrics_types.default_aggregation_temporality (); +} + +type exponential_histogram_data_point_buckets_mutable = { + mutable offset : int32; + mutable bucket_counts : int64 list; +} + +let default_exponential_histogram_data_point_buckets_mutable () : exponential_histogram_data_point_buckets_mutable = { + offset = 0l; + bucket_counts = []; +} + type exponential_histogram_data_point_mutable = { mutable attributes : Common_types.key_value list; mutable start_time_unix_nano : int64; @@ -108,79 +146,41 @@ let default_exponential_histogram_mutable () : exponential_histogram_mutable = { aggregation_temporality = Metrics_types.default_aggregation_temporality (); } -type histogram_data_point_mutable = { +type summary_data_point_value_at_quantile_mutable = { + mutable quantile : float; + mutable value : float; +} + +let default_summary_data_point_value_at_quantile_mutable () : summary_data_point_value_at_quantile_mutable = { + quantile = 0.; + value = 0.; +} + +type summary_data_point_mutable = { mutable attributes : Common_types.key_value list; mutable start_time_unix_nano : int64; mutable time_unix_nano : int64; mutable count : int64; - mutable sum : float option; - mutable bucket_counts : int64 list; - mutable explicit_bounds : float list; - mutable exemplars : Metrics_types.exemplar list; + mutable sum : float; + mutable quantile_values : Metrics_types.summary_data_point_value_at_quantile list; mutable flags : int32; - mutable min : float option; - mutable max : float option; } -let default_histogram_data_point_mutable () : histogram_data_point_mutable = { +let default_summary_data_point_mutable () : summary_data_point_mutable = { attributes = []; start_time_unix_nano = 0L; time_unix_nano = 0L; count = 0L; - sum = None; - bucket_counts = []; - explicit_bounds = []; - exemplars = []; - flags = 0l; - min = None; - max = None; -} - -type histogram_mutable = { - mutable data_points : Metrics_types.histogram_data_point list; - mutable aggregation_temporality : Metrics_types.aggregation_temporality; -} - -let default_histogram_mutable () : histogram_mutable = { - data_points = []; - aggregation_temporality = Metrics_types.default_aggregation_temporality (); -} - -type number_data_point_mutable = { - mutable attributes : Common_types.key_value list; - mutable start_time_unix_nano : int64; - mutable time_unix_nano : int64; - mutable value : Metrics_types.number_data_point_value; - mutable exemplars : Metrics_types.exemplar list; - mutable flags : int32; -} - -let default_number_data_point_mutable () : number_data_point_mutable = { - attributes = []; - start_time_unix_nano = 0L; - time_unix_nano = 0L; - value = Metrics_types.As_int (0L); - exemplars = []; + sum = 0.; + quantile_values = []; flags = 0l; } -type sum_mutable = { - mutable data_points : Metrics_types.number_data_point list; - mutable aggregation_temporality : Metrics_types.aggregation_temporality; - mutable is_monotonic : bool; +type summary_mutable = { + mutable data_points : Metrics_types.summary_data_point list; } -let default_sum_mutable () : sum_mutable = { - data_points = []; - aggregation_temporality = Metrics_types.default_aggregation_temporality (); - is_monotonic = false; -} - -type gauge_mutable = { - mutable data_points : Metrics_types.number_data_point list; -} - -let default_gauge_mutable () : gauge_mutable = { +let default_summary_mutable () : summary_mutable = { data_points = []; } @@ -195,7 +195,7 @@ let default_metric_mutable () : metric_mutable = { name = ""; description = ""; unit_ = ""; - data = Metrics_types.Summary (Metrics_types.default_summary ()); + data = Metrics_types.Gauge (Metrics_types.default_gauge ()); } type scope_metrics_mutable = { @@ -231,136 +231,12 @@ let default_metrics_data_mutable () : metrics_data_mutable = { } -let rec decode_summary_data_point_value_at_quantile d = - let v = default_summary_data_point_value_at_quantile_mutable () in - let continue__= ref true in - while !continue__ do - match Pbrt.Decoder.key d with - | None -> ( - ); continue__ := false - | Some (1, Pbrt.Bits64) -> begin - v.quantile <- Pbrt.Decoder.float_as_bits64 d; - end - | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point_value_at_quantile), field(1)" pk - | Some (2, Pbrt.Bits64) -> begin - v.value <- Pbrt.Decoder.float_as_bits64 d; - end - | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point_value_at_quantile), field(2)" pk - | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind - done; - ({ - Metrics_types.quantile = v.quantile; - Metrics_types.value = v.value; - } : Metrics_types.summary_data_point_value_at_quantile) - -let rec decode_summary_data_point d = - let v = default_summary_data_point_mutable () in - let continue__= ref true in - while !continue__ do - match Pbrt.Decoder.key d with - | None -> ( - v.quantile_values <- List.rev v.quantile_values; - v.attributes <- List.rev v.attributes; - ); continue__ := false - | Some (7, Pbrt.Bytes) -> begin - v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes; - end - | Some (7, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(7)" pk - | Some (2, Pbrt.Bits64) -> begin - v.start_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; - end - | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(2)" pk - | Some (3, Pbrt.Bits64) -> begin - v.time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; - end - | Some (3, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(3)" pk - | Some (4, Pbrt.Bits64) -> begin - v.count <- Pbrt.Decoder.int64_as_bits64 d; - end - | Some (4, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(4)" pk - | Some (5, Pbrt.Bits64) -> begin - v.sum <- Pbrt.Decoder.float_as_bits64 d; - end - | Some (5, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(5)" pk - | Some (6, Pbrt.Bytes) -> begin - v.quantile_values <- (decode_summary_data_point_value_at_quantile (Pbrt.Decoder.nested d)) :: v.quantile_values; - end - | Some (6, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(6)" pk - | Some (8, Pbrt.Varint) -> begin - v.flags <- Pbrt.Decoder.int32_as_varint d; - end - | Some (8, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(8)" pk - | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind - done; - ({ - Metrics_types.attributes = v.attributes; - Metrics_types.start_time_unix_nano = v.start_time_unix_nano; - Metrics_types.time_unix_nano = v.time_unix_nano; - Metrics_types.count = v.count; - Metrics_types.sum = v.sum; - Metrics_types.quantile_values = v.quantile_values; - Metrics_types.flags = v.flags; - } : Metrics_types.summary_data_point) - -let rec decode_summary d = - let v = default_summary_mutable () in - let continue__= ref true in - while !continue__ do - match Pbrt.Decoder.key d with - | None -> ( - v.data_points <- List.rev v.data_points; - ); continue__ := false - | Some (1, Pbrt.Bytes) -> begin - v.data_points <- (decode_summary_data_point (Pbrt.Decoder.nested d)) :: v.data_points; - end - | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(summary), field(1)" pk - | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind - done; - ({ - Metrics_types.data_points = v.data_points; - } : Metrics_types.summary) - -let rec decode_exponential_histogram_data_point_buckets d = - let v = default_exponential_histogram_data_point_buckets_mutable () in - let continue__= ref true in - while !continue__ do - match Pbrt.Decoder.key d with - | None -> ( - v.bucket_counts <- List.rev v.bucket_counts; - ); continue__ := false - | Some (1, Pbrt.Varint) -> begin - v.offset <- Pbrt.Decoder.int32_as_zigzag d; - end - | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point_buckets), field(1)" pk - | Some (2, Pbrt.Bytes) -> begin - v.bucket_counts <- Pbrt.Decoder.packed_fold (fun l d -> (Pbrt.Decoder.int64_as_varint d)::l) [] d; - end - | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point_buckets), field(2)" pk - | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind - done; - ({ - Metrics_types.offset = v.offset; - Metrics_types.bucket_counts = v.bucket_counts; - } : Metrics_types.exponential_histogram_data_point_buckets) - let rec decode_exemplar_value d = let rec loop () = let ret:Metrics_types.exemplar_value = match Pbrt.Decoder.key d with | None -> Pbrt.Decoder.malformed_variant "exemplar_value" - | Some (6, _) -> (Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d) : Metrics_types.exemplar_value) | Some (3, _) -> (Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d) : Metrics_types.exemplar_value) + | Some (6, _) -> (Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d) : Metrics_types.exemplar_value) | Some (n, payload_kind) -> ( Pbrt.Decoder.skip d payload_kind; loop () @@ -388,16 +264,16 @@ and decode_exemplar d = end | Some (2, pk) -> Pbrt.Decoder.unexpected_payload "Message(exemplar), field(2)" pk - | Some (6, Pbrt.Bits64) -> begin - v.value <- Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d); - end - | Some (6, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exemplar), field(6)" pk | Some (3, Pbrt.Bits64) -> begin v.value <- Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d); end | Some (3, pk) -> Pbrt.Decoder.unexpected_payload "Message(exemplar), field(3)" pk + | Some (6, Pbrt.Bits64) -> begin + v.value <- Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d); + end + | Some (6, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exemplar), field(6)" pk | Some (4, Pbrt.Bytes) -> begin v.span_id <- Pbrt.Decoder.bytes d; end @@ -418,8 +294,23 @@ and decode_exemplar d = Metrics_types.trace_id = v.trace_id; } : Metrics_types.exemplar) -let rec decode_exponential_histogram_data_point d = - let v = default_exponential_histogram_data_point_mutable () in +let rec decode_number_data_point_value d = + let rec loop () = + let ret:Metrics_types.number_data_point_value = match Pbrt.Decoder.key d with + | None -> Pbrt.Decoder.malformed_variant "number_data_point_value" + | Some (4, _) -> (Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d) : Metrics_types.number_data_point_value) + | Some (6, _) -> (Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d) : Metrics_types.number_data_point_value) + | Some (n, payload_kind) -> ( + Pbrt.Decoder.skip d payload_kind; + loop () + ) + in + ret + in + loop () + +and decode_number_data_point d = + let v = default_number_data_point_mutable () in let continue__= ref true in while !continue__ do match Pbrt.Decoder.key d with @@ -427,94 +318,70 @@ let rec decode_exponential_histogram_data_point d = v.exemplars <- List.rev v.exemplars; v.attributes <- List.rev v.attributes; ); continue__ := false - | Some (1, Pbrt.Bytes) -> begin + | Some (7, Pbrt.Bytes) -> begin v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes; end - | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(1)" pk + | Some (7, pk) -> + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(7)" pk | Some (2, Pbrt.Bits64) -> begin v.start_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; end | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(2)" pk + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(2)" pk | Some (3, Pbrt.Bits64) -> begin v.time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; end | Some (3, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(3)" pk + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(3)" pk | Some (4, Pbrt.Bits64) -> begin - v.count <- Pbrt.Decoder.int64_as_bits64 d; + v.value <- Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d); end | Some (4, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(4)" pk - | Some (5, Pbrt.Bits64) -> begin - v.sum <- Some (Pbrt.Decoder.float_as_bits64 d); - end - | Some (5, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(5)" pk - | Some (6, Pbrt.Varint) -> begin - v.scale <- Pbrt.Decoder.int32_as_zigzag d; + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(4)" pk + | Some (6, Pbrt.Bits64) -> begin + v.value <- Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d); end | Some (6, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(6)" pk - | Some (7, Pbrt.Bits64) -> begin - v.zero_count <- Pbrt.Decoder.int64_as_bits64 d; - end - | Some (7, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(7)" pk - | Some (8, Pbrt.Bytes) -> begin - v.positive <- Some (decode_exponential_histogram_data_point_buckets (Pbrt.Decoder.nested d)); - end - | Some (8, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(8)" pk - | Some (9, Pbrt.Bytes) -> begin - v.negative <- Some (decode_exponential_histogram_data_point_buckets (Pbrt.Decoder.nested d)); - end - | Some (9, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(9)" pk - | Some (10, Pbrt.Varint) -> begin - v.flags <- Pbrt.Decoder.int32_as_varint d; - end - | Some (10, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(10)" pk - | Some (11, Pbrt.Bytes) -> begin + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(6)" pk + | Some (5, Pbrt.Bytes) -> begin v.exemplars <- (decode_exemplar (Pbrt.Decoder.nested d)) :: v.exemplars; end - | Some (11, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(11)" pk - | Some (12, Pbrt.Bits64) -> begin - v.min <- Some (Pbrt.Decoder.float_as_bits64 d); + | Some (5, pk) -> + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(5)" pk + | Some (8, Pbrt.Varint) -> begin + v.flags <- Pbrt.Decoder.int32_as_varint d; end - | Some (12, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(12)" pk - | Some (13, Pbrt.Bits64) -> begin - v.max <- Some (Pbrt.Decoder.float_as_bits64 d); - end - | Some (13, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(13)" pk - | Some (14, Pbrt.Bits64) -> begin - v.zero_threshold <- Pbrt.Decoder.float_as_bits64 d; - end - | Some (14, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(14)" pk + | Some (8, pk) -> + Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(8)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ Metrics_types.attributes = v.attributes; Metrics_types.start_time_unix_nano = v.start_time_unix_nano; Metrics_types.time_unix_nano = v.time_unix_nano; - Metrics_types.count = v.count; - Metrics_types.sum = v.sum; - Metrics_types.scale = v.scale; - Metrics_types.zero_count = v.zero_count; - Metrics_types.positive = v.positive; - Metrics_types.negative = v.negative; - Metrics_types.flags = v.flags; + Metrics_types.value = v.value; Metrics_types.exemplars = v.exemplars; - Metrics_types.min = v.min; - Metrics_types.max = v.max; - Metrics_types.zero_threshold = v.zero_threshold; - } : Metrics_types.exponential_histogram_data_point) + Metrics_types.flags = v.flags; + } : Metrics_types.number_data_point) + +let rec decode_gauge d = + let v = default_gauge_mutable () in + let continue__= ref true in + while !continue__ do + match Pbrt.Decoder.key d with + | None -> ( + v.data_points <- List.rev v.data_points; + ); continue__ := false + | Some (1, Pbrt.Bytes) -> begin + v.data_points <- (decode_number_data_point (Pbrt.Decoder.nested d)) :: v.data_points; + end + | Some (1, pk) -> + Pbrt.Decoder.unexpected_payload "Message(gauge), field(1)" pk + | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind + done; + ({ + Metrics_types.data_points = v.data_points; + } : Metrics_types.gauge) let rec decode_aggregation_temporality d = match Pbrt.Decoder.int_as_varint d with @@ -523,8 +390,8 @@ let rec decode_aggregation_temporality d = | 2 -> (Metrics_types.Aggregation_temporality_cumulative:Metrics_types.aggregation_temporality) | _ -> Pbrt.Decoder.malformed_variant "aggregation_temporality" -let rec decode_exponential_histogram d = - let v = default_exponential_histogram_mutable () in +let rec decode_sum d = + let v = default_sum_mutable () in let continue__= ref true in while !continue__ do match Pbrt.Decoder.key d with @@ -532,21 +399,27 @@ let rec decode_exponential_histogram d = v.data_points <- List.rev v.data_points; ); continue__ := false | Some (1, Pbrt.Bytes) -> begin - v.data_points <- (decode_exponential_histogram_data_point (Pbrt.Decoder.nested d)) :: v.data_points; + v.data_points <- (decode_number_data_point (Pbrt.Decoder.nested d)) :: v.data_points; end | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram), field(1)" pk + Pbrt.Decoder.unexpected_payload "Message(sum), field(1)" pk | Some (2, Pbrt.Varint) -> begin v.aggregation_temporality <- decode_aggregation_temporality d; end | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(exponential_histogram), field(2)" pk + Pbrt.Decoder.unexpected_payload "Message(sum), field(2)" pk + | Some (3, Pbrt.Varint) -> begin + v.is_monotonic <- Pbrt.Decoder.bool d; + end + | Some (3, pk) -> + Pbrt.Decoder.unexpected_payload "Message(sum), field(3)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ Metrics_types.data_points = v.data_points; Metrics_types.aggregation_temporality = v.aggregation_temporality; - } : Metrics_types.exponential_histogram) + Metrics_types.is_monotonic = v.is_monotonic; + } : Metrics_types.sum) let rec decode_histogram_data_point d = let v = default_histogram_data_point_mutable () in @@ -655,23 +528,33 @@ let rec decode_histogram d = Metrics_types.aggregation_temporality = v.aggregation_temporality; } : Metrics_types.histogram) -let rec decode_number_data_point_value d = - let rec loop () = - let ret:Metrics_types.number_data_point_value = match Pbrt.Decoder.key d with - | None -> Pbrt.Decoder.malformed_variant "number_data_point_value" - | Some (6, _) -> (Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d) : Metrics_types.number_data_point_value) - | Some (4, _) -> (Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d) : Metrics_types.number_data_point_value) - | Some (n, payload_kind) -> ( - Pbrt.Decoder.skip d payload_kind; - loop () - ) - in - ret - in - loop () +let rec decode_exponential_histogram_data_point_buckets d = + let v = default_exponential_histogram_data_point_buckets_mutable () in + let continue__= ref true in + while !continue__ do + match Pbrt.Decoder.key d with + | None -> ( + v.bucket_counts <- List.rev v.bucket_counts; + ); continue__ := false + | Some (1, Pbrt.Varint) -> begin + v.offset <- Pbrt.Decoder.int32_as_zigzag d; + end + | Some (1, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point_buckets), field(1)" pk + | Some (2, Pbrt.Bytes) -> begin + v.bucket_counts <- Pbrt.Decoder.packed_fold (fun l d -> (Pbrt.Decoder.int64_as_varint d)::l) [] d; + end + | Some (2, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point_buckets), field(2)" pk + | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind + done; + ({ + Metrics_types.offset = v.offset; + Metrics_types.bucket_counts = v.bucket_counts; + } : Metrics_types.exponential_histogram_data_point_buckets) -and decode_number_data_point d = - let v = default_number_data_point_mutable () in +let rec decode_exponential_histogram_data_point d = + let v = default_exponential_histogram_data_point_mutable () in let continue__= ref true in while !continue__ do match Pbrt.Decoder.key d with @@ -679,54 +562,97 @@ and decode_number_data_point d = v.exemplars <- List.rev v.exemplars; v.attributes <- List.rev v.attributes; ); continue__ := false - | Some (7, Pbrt.Bytes) -> begin + | Some (1, Pbrt.Bytes) -> begin v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes; end - | Some (7, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(7)" pk + | Some (1, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(1)" pk | Some (2, Pbrt.Bits64) -> begin v.start_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; end | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(2)" pk + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(2)" pk | Some (3, Pbrt.Bits64) -> begin v.time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; end | Some (3, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(3)" pk - | Some (6, Pbrt.Bits64) -> begin - v.value <- Metrics_types.As_int (Pbrt.Decoder.int64_as_bits64 d); - end - | Some (6, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(6)" pk + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(3)" pk | Some (4, Pbrt.Bits64) -> begin - v.value <- Metrics_types.As_double (Pbrt.Decoder.float_as_bits64 d); + v.count <- Pbrt.Decoder.int64_as_bits64 d; end | Some (4, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(4)" pk - | Some (5, Pbrt.Bytes) -> begin - v.exemplars <- (decode_exemplar (Pbrt.Decoder.nested d)) :: v.exemplars; + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(4)" pk + | Some (5, Pbrt.Bits64) -> begin + v.sum <- Some (Pbrt.Decoder.float_as_bits64 d); end | Some (5, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(5)" pk - | Some (8, Pbrt.Varint) -> begin - v.flags <- Pbrt.Decoder.int32_as_varint d; + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(5)" pk + | Some (6, Pbrt.Varint) -> begin + v.scale <- Pbrt.Decoder.int32_as_zigzag d; + end + | Some (6, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(6)" pk + | Some (7, Pbrt.Bits64) -> begin + v.zero_count <- Pbrt.Decoder.int64_as_bits64 d; + end + | Some (7, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(7)" pk + | Some (8, Pbrt.Bytes) -> begin + v.positive <- Some (decode_exponential_histogram_data_point_buckets (Pbrt.Decoder.nested d)); end | Some (8, pk) -> - Pbrt.Decoder.unexpected_payload "Message(number_data_point), field(8)" pk + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(8)" pk + | Some (9, Pbrt.Bytes) -> begin + v.negative <- Some (decode_exponential_histogram_data_point_buckets (Pbrt.Decoder.nested d)); + end + | Some (9, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(9)" pk + | Some (10, Pbrt.Varint) -> begin + v.flags <- Pbrt.Decoder.int32_as_varint d; + end + | Some (10, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(10)" pk + | Some (11, Pbrt.Bytes) -> begin + v.exemplars <- (decode_exemplar (Pbrt.Decoder.nested d)) :: v.exemplars; + end + | Some (11, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(11)" pk + | Some (12, Pbrt.Bits64) -> begin + v.min <- Some (Pbrt.Decoder.float_as_bits64 d); + end + | Some (12, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(12)" pk + | Some (13, Pbrt.Bits64) -> begin + v.max <- Some (Pbrt.Decoder.float_as_bits64 d); + end + | Some (13, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(13)" pk + | Some (14, Pbrt.Bits64) -> begin + v.zero_threshold <- Pbrt.Decoder.float_as_bits64 d; + end + | Some (14, pk) -> + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram_data_point), field(14)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ Metrics_types.attributes = v.attributes; Metrics_types.start_time_unix_nano = v.start_time_unix_nano; Metrics_types.time_unix_nano = v.time_unix_nano; - Metrics_types.value = v.value; - Metrics_types.exemplars = v.exemplars; + Metrics_types.count = v.count; + Metrics_types.sum = v.sum; + Metrics_types.scale = v.scale; + Metrics_types.zero_count = v.zero_count; + Metrics_types.positive = v.positive; + Metrics_types.negative = v.negative; Metrics_types.flags = v.flags; - } : Metrics_types.number_data_point) + Metrics_types.exemplars = v.exemplars; + Metrics_types.min = v.min; + Metrics_types.max = v.max; + Metrics_types.zero_threshold = v.zero_threshold; + } : Metrics_types.exponential_histogram_data_point) -let rec decode_sum d = - let v = default_sum_mutable () in +let rec decode_exponential_histogram d = + let v = default_exponential_histogram_mutable () in let continue__= ref true in while !continue__ do match Pbrt.Decoder.key d with @@ -734,30 +660,104 @@ let rec decode_sum d = v.data_points <- List.rev v.data_points; ); continue__ := false | Some (1, Pbrt.Bytes) -> begin - v.data_points <- (decode_number_data_point (Pbrt.Decoder.nested d)) :: v.data_points; + v.data_points <- (decode_exponential_histogram_data_point (Pbrt.Decoder.nested d)) :: v.data_points; end | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(sum), field(1)" pk + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram), field(1)" pk | Some (2, Pbrt.Varint) -> begin v.aggregation_temporality <- decode_aggregation_temporality d; end | Some (2, pk) -> - Pbrt.Decoder.unexpected_payload "Message(sum), field(2)" pk - | Some (3, Pbrt.Varint) -> begin - v.is_monotonic <- Pbrt.Decoder.bool d; - end - | Some (3, pk) -> - Pbrt.Decoder.unexpected_payload "Message(sum), field(3)" pk + Pbrt.Decoder.unexpected_payload "Message(exponential_histogram), field(2)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ Metrics_types.data_points = v.data_points; Metrics_types.aggregation_temporality = v.aggregation_temporality; - Metrics_types.is_monotonic = v.is_monotonic; - } : Metrics_types.sum) + } : Metrics_types.exponential_histogram) -let rec decode_gauge d = - let v = default_gauge_mutable () in +let rec decode_summary_data_point_value_at_quantile d = + let v = default_summary_data_point_value_at_quantile_mutable () in + let continue__= ref true in + while !continue__ do + match Pbrt.Decoder.key d with + | None -> ( + ); continue__ := false + | Some (1, Pbrt.Bits64) -> begin + v.quantile <- Pbrt.Decoder.float_as_bits64 d; + end + | Some (1, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point_value_at_quantile), field(1)" pk + | Some (2, Pbrt.Bits64) -> begin + v.value <- Pbrt.Decoder.float_as_bits64 d; + end + | Some (2, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point_value_at_quantile), field(2)" pk + | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind + done; + ({ + Metrics_types.quantile = v.quantile; + Metrics_types.value = v.value; + } : Metrics_types.summary_data_point_value_at_quantile) + +let rec decode_summary_data_point d = + let v = default_summary_data_point_mutable () in + let continue__= ref true in + while !continue__ do + match Pbrt.Decoder.key d with + | None -> ( + v.quantile_values <- List.rev v.quantile_values; + v.attributes <- List.rev v.attributes; + ); continue__ := false + | Some (7, Pbrt.Bytes) -> begin + v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes; + end + | Some (7, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(7)" pk + | Some (2, Pbrt.Bits64) -> begin + v.start_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; + end + | Some (2, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(2)" pk + | Some (3, Pbrt.Bits64) -> begin + v.time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d; + end + | Some (3, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(3)" pk + | Some (4, Pbrt.Bits64) -> begin + v.count <- Pbrt.Decoder.int64_as_bits64 d; + end + | Some (4, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(4)" pk + | Some (5, Pbrt.Bits64) -> begin + v.sum <- Pbrt.Decoder.float_as_bits64 d; + end + | Some (5, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(5)" pk + | Some (6, Pbrt.Bytes) -> begin + v.quantile_values <- (decode_summary_data_point_value_at_quantile (Pbrt.Decoder.nested d)) :: v.quantile_values; + end + | Some (6, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(6)" pk + | Some (8, Pbrt.Varint) -> begin + v.flags <- Pbrt.Decoder.int32_as_varint d; + end + | Some (8, pk) -> + Pbrt.Decoder.unexpected_payload "Message(summary_data_point), field(8)" pk + | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind + done; + ({ + Metrics_types.attributes = v.attributes; + Metrics_types.start_time_unix_nano = v.start_time_unix_nano; + Metrics_types.time_unix_nano = v.time_unix_nano; + Metrics_types.count = v.count; + Metrics_types.sum = v.sum; + Metrics_types.quantile_values = v.quantile_values; + Metrics_types.flags = v.flags; + } : Metrics_types.summary_data_point) + +let rec decode_summary d = + let v = default_summary_mutable () in let continue__= ref true in while !continue__ do match Pbrt.Decoder.key d with @@ -765,25 +765,25 @@ let rec decode_gauge d = v.data_points <- List.rev v.data_points; ); continue__ := false | Some (1, Pbrt.Bytes) -> begin - v.data_points <- (decode_number_data_point (Pbrt.Decoder.nested d)) :: v.data_points; + v.data_points <- (decode_summary_data_point (Pbrt.Decoder.nested d)) :: v.data_points; end | Some (1, pk) -> - Pbrt.Decoder.unexpected_payload "Message(gauge), field(1)" pk + Pbrt.Decoder.unexpected_payload "Message(summary), field(1)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ Metrics_types.data_points = v.data_points; - } : Metrics_types.gauge) + } : Metrics_types.summary) let rec decode_metric_data d = let rec loop () = let ret:Metrics_types.metric_data = match Pbrt.Decoder.key d with | None -> Pbrt.Decoder.malformed_variant "metric_data" - | Some (11, _) -> (Metrics_types.Summary (decode_summary (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) - | Some (10, _) -> (Metrics_types.Exponential_histogram (decode_exponential_histogram (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) - | Some (9, _) -> (Metrics_types.Histogram (decode_histogram (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) - | Some (7, _) -> (Metrics_types.Sum (decode_sum (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) | Some (5, _) -> (Metrics_types.Gauge (decode_gauge (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) + | Some (7, _) -> (Metrics_types.Sum (decode_sum (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) + | Some (9, _) -> (Metrics_types.Histogram (decode_histogram (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) + | Some (10, _) -> (Metrics_types.Exponential_histogram (decode_exponential_histogram (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) + | Some (11, _) -> (Metrics_types.Summary (decode_summary (Pbrt.Decoder.nested d)) : Metrics_types.metric_data) | Some (n, payload_kind) -> ( Pbrt.Decoder.skip d payload_kind; loop () @@ -815,31 +815,31 @@ and decode_metric d = end | Some (3, pk) -> Pbrt.Decoder.unexpected_payload "Message(metric), field(3)" pk - | Some (11, Pbrt.Bytes) -> begin - v.data <- Metrics_types.Summary (decode_summary (Pbrt.Decoder.nested d)); - end - | Some (11, pk) -> - Pbrt.Decoder.unexpected_payload "Message(metric), field(11)" pk - | Some (10, Pbrt.Bytes) -> begin - v.data <- Metrics_types.Exponential_histogram (decode_exponential_histogram (Pbrt.Decoder.nested d)); - end - | Some (10, pk) -> - Pbrt.Decoder.unexpected_payload "Message(metric), field(10)" pk - | Some (9, Pbrt.Bytes) -> begin - v.data <- Metrics_types.Histogram (decode_histogram (Pbrt.Decoder.nested d)); - end - | Some (9, pk) -> - Pbrt.Decoder.unexpected_payload "Message(metric), field(9)" pk - | Some (7, Pbrt.Bytes) -> begin - v.data <- Metrics_types.Sum (decode_sum (Pbrt.Decoder.nested d)); - end - | Some (7, pk) -> - Pbrt.Decoder.unexpected_payload "Message(metric), field(7)" pk | Some (5, Pbrt.Bytes) -> begin v.data <- Metrics_types.Gauge (decode_gauge (Pbrt.Decoder.nested d)); end | Some (5, pk) -> Pbrt.Decoder.unexpected_payload "Message(metric), field(5)" pk + | Some (7, Pbrt.Bytes) -> begin + v.data <- Metrics_types.Sum (decode_sum (Pbrt.Decoder.nested d)); + end + | Some (7, pk) -> + Pbrt.Decoder.unexpected_payload "Message(metric), field(7)" pk + | Some (9, Pbrt.Bytes) -> begin + v.data <- Metrics_types.Histogram (decode_histogram (Pbrt.Decoder.nested d)); + end + | Some (9, pk) -> + Pbrt.Decoder.unexpected_payload "Message(metric), field(9)" pk + | Some (10, Pbrt.Bytes) -> begin + v.data <- Metrics_types.Exponential_histogram (decode_exponential_histogram (Pbrt.Decoder.nested d)); + end + | Some (10, pk) -> + Pbrt.Decoder.unexpected_payload "Message(metric), field(10)" pk + | Some (11, Pbrt.Bytes) -> begin + v.data <- Metrics_types.Summary (decode_summary (Pbrt.Decoder.nested d)); + end + | Some (11, pk) -> + Pbrt.Decoder.unexpected_payload "Message(metric), field(11)" pk | Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind done; ({ @@ -936,60 +936,14 @@ let rec decode_data_point_flags d = | 1 -> (Metrics_types.Data_point_flags_no_recorded_value_mask:Metrics_types.data_point_flags) | _ -> Pbrt.Decoder.malformed_variant "data_point_flags" -let rec encode_summary_data_point_value_at_quantile (v:Metrics_types.summary_data_point_value_at_quantile) encoder = - Pbrt.Encoder.key (1, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 v.Metrics_types.quantile encoder; - Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 v.Metrics_types.value encoder; - () - -let rec encode_summary_data_point (v:Metrics_types.summary_data_point) encoder = - List.iter (fun x -> - Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder; - ) v.Metrics_types.attributes; - Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 v.Metrics_types.start_time_unix_nano encoder; - Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 v.Metrics_types.time_unix_nano encoder; - Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 v.Metrics_types.count encoder; - Pbrt.Encoder.key (5, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 v.Metrics_types.sum encoder; - List.iter (fun x -> - Pbrt.Encoder.key (6, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_summary_data_point_value_at_quantile x) encoder; - ) v.Metrics_types.quantile_values; - Pbrt.Encoder.key (8, Pbrt.Varint) encoder; - Pbrt.Encoder.int32_as_varint v.Metrics_types.flags encoder; - () - -let rec encode_summary (v:Metrics_types.summary) encoder = - List.iter (fun x -> - Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_summary_data_point x) encoder; - ) v.Metrics_types.data_points; - () - -let rec encode_exponential_histogram_data_point_buckets (v:Metrics_types.exponential_histogram_data_point_buckets) encoder = - Pbrt.Encoder.key (1, Pbrt.Varint) encoder; - Pbrt.Encoder.int32_as_zigzag v.Metrics_types.offset encoder; - Pbrt.Encoder.key (2, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (fun encoder -> - List.iter (fun x -> - Pbrt.Encoder.int64_as_varint x encoder; - ) v.Metrics_types.bucket_counts; - ) encoder; - () - let rec encode_exemplar_value (v:Metrics_types.exemplar_value) encoder = begin match v with - | Metrics_types.As_int x -> - Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 x encoder; | Metrics_types.As_double x -> Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; Pbrt.Encoder.float_as_bits64 x encoder; + | Metrics_types.As_int x -> + Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 x encoder; end and encode_exemplar (v:Metrics_types.exemplar) encoder = @@ -1000,12 +954,12 @@ and encode_exemplar (v:Metrics_types.exemplar) encoder = Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; Pbrt.Encoder.int64_as_bits64 v.Metrics_types.time_unix_nano encoder; begin match v.Metrics_types.value with - | Metrics_types.As_int x -> - Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 x encoder; | Metrics_types.As_double x -> Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; Pbrt.Encoder.float_as_bits64 x encoder; + | Metrics_types.As_int x -> + Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 x encoder; end; Pbrt.Encoder.key (4, Pbrt.Bytes) encoder; Pbrt.Encoder.bytes v.Metrics_types.span_id encoder; @@ -1013,59 +967,46 @@ and encode_exemplar (v:Metrics_types.exemplar) encoder = Pbrt.Encoder.bytes v.Metrics_types.trace_id encoder; () -let rec encode_exponential_histogram_data_point (v:Metrics_types.exponential_histogram_data_point) encoder = +let rec encode_number_data_point_value (v:Metrics_types.number_data_point_value) encoder = + begin match v with + | Metrics_types.As_double x -> + Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 x encoder; + | Metrics_types.As_int x -> + Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 x encoder; + end + +and encode_number_data_point (v:Metrics_types.number_data_point) encoder = List.iter (fun x -> - Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; + Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder; ) v.Metrics_types.attributes; Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; Pbrt.Encoder.int64_as_bits64 v.Metrics_types.start_time_unix_nano encoder; Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; Pbrt.Encoder.int64_as_bits64 v.Metrics_types.time_unix_nano encoder; - Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 v.Metrics_types.count encoder; - begin match v.Metrics_types.sum with - | Some x -> - Pbrt.Encoder.key (5, Pbrt.Bits64) encoder; + begin match v.Metrics_types.value with + | Metrics_types.As_double x -> + Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; Pbrt.Encoder.float_as_bits64 x encoder; - | None -> (); + | Metrics_types.As_int x -> + Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 x encoder; end; - Pbrt.Encoder.key (6, Pbrt.Varint) encoder; - Pbrt.Encoder.int32_as_zigzag v.Metrics_types.scale encoder; - Pbrt.Encoder.key (7, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 v.Metrics_types.zero_count encoder; - begin match v.Metrics_types.positive with - | Some x -> - Pbrt.Encoder.key (8, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exponential_histogram_data_point_buckets x) encoder; - | None -> (); - end; - begin match v.Metrics_types.negative with - | Some x -> - Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exponential_histogram_data_point_buckets x) encoder; - | None -> (); - end; - Pbrt.Encoder.key (10, Pbrt.Varint) encoder; - Pbrt.Encoder.int32_as_varint v.Metrics_types.flags encoder; List.iter (fun x -> - Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; + Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; Pbrt.Encoder.nested (encode_exemplar x) encoder; ) v.Metrics_types.exemplars; - begin match v.Metrics_types.min with - | Some x -> - Pbrt.Encoder.key (12, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 x encoder; - | None -> (); - end; - begin match v.Metrics_types.max with - | Some x -> - Pbrt.Encoder.key (13, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 x encoder; - | None -> (); - end; - Pbrt.Encoder.key (14, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 v.Metrics_types.zero_threshold encoder; + Pbrt.Encoder.key (8, Pbrt.Varint) encoder; + Pbrt.Encoder.int32_as_varint v.Metrics_types.flags encoder; + () + +let rec encode_gauge (v:Metrics_types.gauge) encoder = + List.iter (fun x -> + Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_number_data_point x) encoder; + ) v.Metrics_types.data_points; () let rec encode_aggregation_temporality (v:Metrics_types.aggregation_temporality) encoder = @@ -1074,13 +1015,15 @@ let rec encode_aggregation_temporality (v:Metrics_types.aggregation_temporality) | Metrics_types.Aggregation_temporality_delta -> Pbrt.Encoder.int_as_varint 1 encoder | Metrics_types.Aggregation_temporality_cumulative -> Pbrt.Encoder.int_as_varint 2 encoder -let rec encode_exponential_histogram (v:Metrics_types.exponential_histogram) encoder = +let rec encode_sum (v:Metrics_types.sum) encoder = List.iter (fun x -> Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exponential_histogram_data_point x) encoder; + Pbrt.Encoder.nested (encode_number_data_point x) encoder; ) v.Metrics_types.data_points; Pbrt.Encoder.key (2, Pbrt.Varint) encoder; encode_aggregation_temporality v.Metrics_types.aggregation_temporality encoder; + Pbrt.Encoder.key (3, Pbrt.Varint) encoder; + Pbrt.Encoder.bool v.Metrics_types.is_monotonic encoder; () let rec encode_histogram_data_point (v:Metrics_types.histogram_data_point) encoder = @@ -1141,17 +1084,89 @@ let rec encode_histogram (v:Metrics_types.histogram) encoder = encode_aggregation_temporality v.Metrics_types.aggregation_temporality encoder; () -let rec encode_number_data_point_value (v:Metrics_types.number_data_point_value) encoder = - begin match v with - | Metrics_types.As_int x -> - Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 x encoder; - | Metrics_types.As_double x -> - Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 x encoder; - end +let rec encode_exponential_histogram_data_point_buckets (v:Metrics_types.exponential_histogram_data_point_buckets) encoder = + Pbrt.Encoder.key (1, Pbrt.Varint) encoder; + Pbrt.Encoder.int32_as_zigzag v.Metrics_types.offset encoder; + Pbrt.Encoder.key (2, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (fun encoder -> + List.iter (fun x -> + Pbrt.Encoder.int64_as_varint x encoder; + ) v.Metrics_types.bucket_counts; + ) encoder; + () -and encode_number_data_point (v:Metrics_types.number_data_point) encoder = +let rec encode_exponential_histogram_data_point (v:Metrics_types.exponential_histogram_data_point) encoder = + List.iter (fun x -> + Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder; + ) v.Metrics_types.attributes; + Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 v.Metrics_types.start_time_unix_nano encoder; + Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 v.Metrics_types.time_unix_nano encoder; + Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 v.Metrics_types.count encoder; + begin match v.Metrics_types.sum with + | Some x -> + Pbrt.Encoder.key (5, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 x encoder; + | None -> (); + end; + Pbrt.Encoder.key (6, Pbrt.Varint) encoder; + Pbrt.Encoder.int32_as_zigzag v.Metrics_types.scale encoder; + Pbrt.Encoder.key (7, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 v.Metrics_types.zero_count encoder; + begin match v.Metrics_types.positive with + | Some x -> + Pbrt.Encoder.key (8, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exponential_histogram_data_point_buckets x) encoder; + | None -> (); + end; + begin match v.Metrics_types.negative with + | Some x -> + Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exponential_histogram_data_point_buckets x) encoder; + | None -> (); + end; + Pbrt.Encoder.key (10, Pbrt.Varint) encoder; + Pbrt.Encoder.int32_as_varint v.Metrics_types.flags encoder; + List.iter (fun x -> + Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exemplar x) encoder; + ) v.Metrics_types.exemplars; + begin match v.Metrics_types.min with + | Some x -> + Pbrt.Encoder.key (12, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 x encoder; + | None -> (); + end; + begin match v.Metrics_types.max with + | Some x -> + Pbrt.Encoder.key (13, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 x encoder; + | None -> (); + end; + Pbrt.Encoder.key (14, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 v.Metrics_types.zero_threshold encoder; + () + +let rec encode_exponential_histogram (v:Metrics_types.exponential_histogram) encoder = + List.iter (fun x -> + Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exponential_histogram_data_point x) encoder; + ) v.Metrics_types.data_points; + Pbrt.Encoder.key (2, Pbrt.Varint) encoder; + encode_aggregation_temporality v.Metrics_types.aggregation_temporality encoder; + () + +let rec encode_summary_data_point_value_at_quantile (v:Metrics_types.summary_data_point_value_at_quantile) encoder = + Pbrt.Encoder.key (1, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 v.Metrics_types.quantile encoder; + Pbrt.Encoder.key (2, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 v.Metrics_types.value encoder; + () + +let rec encode_summary_data_point (v:Metrics_types.summary_data_point) encoder = List.iter (fun x -> Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder; @@ -1160,57 +1175,42 @@ and encode_number_data_point (v:Metrics_types.number_data_point) encoder = Pbrt.Encoder.int64_as_bits64 v.Metrics_types.start_time_unix_nano encoder; Pbrt.Encoder.key (3, Pbrt.Bits64) encoder; Pbrt.Encoder.int64_as_bits64 v.Metrics_types.time_unix_nano encoder; - begin match v.Metrics_types.value with - | Metrics_types.As_int x -> - Pbrt.Encoder.key (6, Pbrt.Bits64) encoder; - Pbrt.Encoder.int64_as_bits64 x encoder; - | Metrics_types.As_double x -> - Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; - Pbrt.Encoder.float_as_bits64 x encoder; - end; + Pbrt.Encoder.key (4, Pbrt.Bits64) encoder; + Pbrt.Encoder.int64_as_bits64 v.Metrics_types.count encoder; + Pbrt.Encoder.key (5, Pbrt.Bits64) encoder; + Pbrt.Encoder.float_as_bits64 v.Metrics_types.sum encoder; List.iter (fun x -> - Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exemplar x) encoder; - ) v.Metrics_types.exemplars; + Pbrt.Encoder.key (6, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_summary_data_point_value_at_quantile x) encoder; + ) v.Metrics_types.quantile_values; Pbrt.Encoder.key (8, Pbrt.Varint) encoder; Pbrt.Encoder.int32_as_varint v.Metrics_types.flags encoder; () -let rec encode_sum (v:Metrics_types.sum) encoder = +let rec encode_summary (v:Metrics_types.summary) encoder = List.iter (fun x -> Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_number_data_point x) encoder; - ) v.Metrics_types.data_points; - Pbrt.Encoder.key (2, Pbrt.Varint) encoder; - encode_aggregation_temporality v.Metrics_types.aggregation_temporality encoder; - Pbrt.Encoder.key (3, Pbrt.Varint) encoder; - Pbrt.Encoder.bool v.Metrics_types.is_monotonic encoder; - () - -let rec encode_gauge (v:Metrics_types.gauge) encoder = - List.iter (fun x -> - Pbrt.Encoder.key (1, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_number_data_point x) encoder; + Pbrt.Encoder.nested (encode_summary_data_point x) encoder; ) v.Metrics_types.data_points; () let rec encode_metric_data (v:Metrics_types.metric_data) encoder = begin match v with - | Metrics_types.Summary x -> - Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_summary x) encoder; - | Metrics_types.Exponential_histogram x -> - Pbrt.Encoder.key (10, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exponential_histogram x) encoder; - | Metrics_types.Histogram x -> - Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_histogram x) encoder; - | Metrics_types.Sum x -> - Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_sum x) encoder; | Metrics_types.Gauge x -> Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; Pbrt.Encoder.nested (encode_gauge x) encoder; + | Metrics_types.Sum x -> + Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_sum x) encoder; + | Metrics_types.Histogram x -> + Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_histogram x) encoder; + | Metrics_types.Exponential_histogram x -> + Pbrt.Encoder.key (10, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exponential_histogram x) encoder; + | Metrics_types.Summary x -> + Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_summary x) encoder; end and encode_metric (v:Metrics_types.metric) encoder = @@ -1221,21 +1221,21 @@ and encode_metric (v:Metrics_types.metric) encoder = Pbrt.Encoder.key (3, Pbrt.Bytes) encoder; Pbrt.Encoder.string v.Metrics_types.unit_ encoder; begin match v.Metrics_types.data with - | Metrics_types.Summary x -> - Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_summary x) encoder; - | Metrics_types.Exponential_histogram x -> - Pbrt.Encoder.key (10, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_exponential_histogram x) encoder; - | Metrics_types.Histogram x -> - Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_histogram x) encoder; - | Metrics_types.Sum x -> - Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; - Pbrt.Encoder.nested (encode_sum x) encoder; | Metrics_types.Gauge x -> Pbrt.Encoder.key (5, Pbrt.Bytes) encoder; Pbrt.Encoder.nested (encode_gauge x) encoder; + | Metrics_types.Sum x -> + Pbrt.Encoder.key (7, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_sum x) encoder; + | Metrics_types.Histogram x -> + Pbrt.Encoder.key (9, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_histogram x) encoder; + | Metrics_types.Exponential_histogram x -> + Pbrt.Encoder.key (10, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_exponential_histogram x) encoder; + | Metrics_types.Summary x -> + Pbrt.Encoder.key (11, Pbrt.Bytes) encoder; + Pbrt.Encoder.nested (encode_summary x) encoder; end; () diff --git a/src/proto/metrics_pb.mli b/src/proto/metrics_pb.mli index 8184e069..6393cedd 100644 --- a/src/proto/metrics_pb.mli +++ b/src/proto/metrics_pb.mli @@ -3,6 +3,42 @@ (** {2 Protobuf Encoding} *) +val encode_exemplar_value : Metrics_types.exemplar_value -> Pbrt.Encoder.t -> unit +(** [encode_exemplar_value v encoder] encodes [v] with the given [encoder] *) + +val encode_exemplar : Metrics_types.exemplar -> Pbrt.Encoder.t -> unit +(** [encode_exemplar v encoder] encodes [v] with the given [encoder] *) + +val encode_number_data_point_value : Metrics_types.number_data_point_value -> Pbrt.Encoder.t -> unit +(** [encode_number_data_point_value v encoder] encodes [v] with the given [encoder] *) + +val encode_number_data_point : Metrics_types.number_data_point -> Pbrt.Encoder.t -> unit +(** [encode_number_data_point v encoder] encodes [v] with the given [encoder] *) + +val encode_gauge : Metrics_types.gauge -> Pbrt.Encoder.t -> unit +(** [encode_gauge v encoder] encodes [v] with the given [encoder] *) + +val encode_aggregation_temporality : Metrics_types.aggregation_temporality -> Pbrt.Encoder.t -> unit +(** [encode_aggregation_temporality v encoder] encodes [v] with the given [encoder] *) + +val encode_sum : Metrics_types.sum -> Pbrt.Encoder.t -> unit +(** [encode_sum v encoder] encodes [v] with the given [encoder] *) + +val encode_histogram_data_point : Metrics_types.histogram_data_point -> Pbrt.Encoder.t -> unit +(** [encode_histogram_data_point v encoder] encodes [v] with the given [encoder] *) + +val encode_histogram : Metrics_types.histogram -> Pbrt.Encoder.t -> unit +(** [encode_histogram v encoder] encodes [v] with the given [encoder] *) + +val encode_exponential_histogram_data_point_buckets : Metrics_types.exponential_histogram_data_point_buckets -> Pbrt.Encoder.t -> unit +(** [encode_exponential_histogram_data_point_buckets v encoder] encodes [v] with the given [encoder] *) + +val encode_exponential_histogram_data_point : Metrics_types.exponential_histogram_data_point -> Pbrt.Encoder.t -> unit +(** [encode_exponential_histogram_data_point v encoder] encodes [v] with the given [encoder] *) + +val encode_exponential_histogram : Metrics_types.exponential_histogram -> Pbrt.Encoder.t -> unit +(** [encode_exponential_histogram v encoder] encodes [v] with the given [encoder] *) + val encode_summary_data_point_value_at_quantile : Metrics_types.summary_data_point_value_at_quantile -> Pbrt.Encoder.t -> unit (** [encode_summary_data_point_value_at_quantile v encoder] encodes [v] with the given [encoder] *) @@ -12,42 +48,6 @@ val encode_summary_data_point : Metrics_types.summary_data_point -> Pbrt.Encoder val encode_summary : Metrics_types.summary -> Pbrt.Encoder.t -> unit (** [encode_summary v encoder] encodes [v] with the given [encoder] *) -val encode_exponential_histogram_data_point_buckets : Metrics_types.exponential_histogram_data_point_buckets -> Pbrt.Encoder.t -> unit -(** [encode_exponential_histogram_data_point_buckets v encoder] encodes [v] with the given [encoder] *) - -val encode_exemplar_value : Metrics_types.exemplar_value -> Pbrt.Encoder.t -> unit -(** [encode_exemplar_value v encoder] encodes [v] with the given [encoder] *) - -val encode_exemplar : Metrics_types.exemplar -> Pbrt.Encoder.t -> unit -(** [encode_exemplar v encoder] encodes [v] with the given [encoder] *) - -val encode_exponential_histogram_data_point : Metrics_types.exponential_histogram_data_point -> Pbrt.Encoder.t -> unit -(** [encode_exponential_histogram_data_point v encoder] encodes [v] with the given [encoder] *) - -val encode_aggregation_temporality : Metrics_types.aggregation_temporality -> Pbrt.Encoder.t -> unit -(** [encode_aggregation_temporality v encoder] encodes [v] with the given [encoder] *) - -val encode_exponential_histogram : Metrics_types.exponential_histogram -> Pbrt.Encoder.t -> unit -(** [encode_exponential_histogram v encoder] encodes [v] with the given [encoder] *) - -val encode_histogram_data_point : Metrics_types.histogram_data_point -> Pbrt.Encoder.t -> unit -(** [encode_histogram_data_point v encoder] encodes [v] with the given [encoder] *) - -val encode_histogram : Metrics_types.histogram -> Pbrt.Encoder.t -> unit -(** [encode_histogram v encoder] encodes [v] with the given [encoder] *) - -val encode_number_data_point_value : Metrics_types.number_data_point_value -> Pbrt.Encoder.t -> unit -(** [encode_number_data_point_value v encoder] encodes [v] with the given [encoder] *) - -val encode_number_data_point : Metrics_types.number_data_point -> Pbrt.Encoder.t -> unit -(** [encode_number_data_point v encoder] encodes [v] with the given [encoder] *) - -val encode_sum : Metrics_types.sum -> Pbrt.Encoder.t -> unit -(** [encode_sum v encoder] encodes [v] with the given [encoder] *) - -val encode_gauge : Metrics_types.gauge -> Pbrt.Encoder.t -> unit -(** [encode_gauge v encoder] encodes [v] with the given [encoder] *) - val encode_metric_data : Metrics_types.metric_data -> Pbrt.Encoder.t -> unit (** [encode_metric_data v encoder] encodes [v] with the given [encoder] *) @@ -69,6 +69,42 @@ val encode_data_point_flags : Metrics_types.data_point_flags -> Pbrt.Encoder.t - (** {2 Protobuf Decoding} *) +val decode_exemplar_value : Pbrt.Decoder.t -> Metrics_types.exemplar_value +(** [decode_exemplar_value decoder] decodes a [exemplar_value] value from [decoder] *) + +val decode_exemplar : Pbrt.Decoder.t -> Metrics_types.exemplar +(** [decode_exemplar decoder] decodes a [exemplar] value from [decoder] *) + +val decode_number_data_point_value : Pbrt.Decoder.t -> Metrics_types.number_data_point_value +(** [decode_number_data_point_value decoder] decodes a [number_data_point_value] value from [decoder] *) + +val decode_number_data_point : Pbrt.Decoder.t -> Metrics_types.number_data_point +(** [decode_number_data_point decoder] decodes a [number_data_point] value from [decoder] *) + +val decode_gauge : Pbrt.Decoder.t -> Metrics_types.gauge +(** [decode_gauge decoder] decodes a [gauge] value from [decoder] *) + +val decode_aggregation_temporality : Pbrt.Decoder.t -> Metrics_types.aggregation_temporality +(** [decode_aggregation_temporality decoder] decodes a [aggregation_temporality] value from [decoder] *) + +val decode_sum : Pbrt.Decoder.t -> Metrics_types.sum +(** [decode_sum decoder] decodes a [sum] value from [decoder] *) + +val decode_histogram_data_point : Pbrt.Decoder.t -> Metrics_types.histogram_data_point +(** [decode_histogram_data_point decoder] decodes a [histogram_data_point] value from [decoder] *) + +val decode_histogram : Pbrt.Decoder.t -> Metrics_types.histogram +(** [decode_histogram decoder] decodes a [histogram] value from [decoder] *) + +val decode_exponential_histogram_data_point_buckets : Pbrt.Decoder.t -> Metrics_types.exponential_histogram_data_point_buckets +(** [decode_exponential_histogram_data_point_buckets decoder] decodes a [exponential_histogram_data_point_buckets] value from [decoder] *) + +val decode_exponential_histogram_data_point : Pbrt.Decoder.t -> Metrics_types.exponential_histogram_data_point +(** [decode_exponential_histogram_data_point decoder] decodes a [exponential_histogram_data_point] value from [decoder] *) + +val decode_exponential_histogram : Pbrt.Decoder.t -> Metrics_types.exponential_histogram +(** [decode_exponential_histogram decoder] decodes a [exponential_histogram] value from [decoder] *) + val decode_summary_data_point_value_at_quantile : Pbrt.Decoder.t -> Metrics_types.summary_data_point_value_at_quantile (** [decode_summary_data_point_value_at_quantile decoder] decodes a [summary_data_point_value_at_quantile] value from [decoder] *) @@ -78,42 +114,6 @@ val decode_summary_data_point : Pbrt.Decoder.t -> Metrics_types.summary_data_poi val decode_summary : Pbrt.Decoder.t -> Metrics_types.summary (** [decode_summary decoder] decodes a [summary] value from [decoder] *) -val decode_exponential_histogram_data_point_buckets : Pbrt.Decoder.t -> Metrics_types.exponential_histogram_data_point_buckets -(** [decode_exponential_histogram_data_point_buckets decoder] decodes a [exponential_histogram_data_point_buckets] value from [decoder] *) - -val decode_exemplar_value : Pbrt.Decoder.t -> Metrics_types.exemplar_value -(** [decode_exemplar_value decoder] decodes a [exemplar_value] value from [decoder] *) - -val decode_exemplar : Pbrt.Decoder.t -> Metrics_types.exemplar -(** [decode_exemplar decoder] decodes a [exemplar] value from [decoder] *) - -val decode_exponential_histogram_data_point : Pbrt.Decoder.t -> Metrics_types.exponential_histogram_data_point -(** [decode_exponential_histogram_data_point decoder] decodes a [exponential_histogram_data_point] value from [decoder] *) - -val decode_aggregation_temporality : Pbrt.Decoder.t -> Metrics_types.aggregation_temporality -(** [decode_aggregation_temporality decoder] decodes a [aggregation_temporality] value from [decoder] *) - -val decode_exponential_histogram : Pbrt.Decoder.t -> Metrics_types.exponential_histogram -(** [decode_exponential_histogram decoder] decodes a [exponential_histogram] value from [decoder] *) - -val decode_histogram_data_point : Pbrt.Decoder.t -> Metrics_types.histogram_data_point -(** [decode_histogram_data_point decoder] decodes a [histogram_data_point] value from [decoder] *) - -val decode_histogram : Pbrt.Decoder.t -> Metrics_types.histogram -(** [decode_histogram decoder] decodes a [histogram] value from [decoder] *) - -val decode_number_data_point_value : Pbrt.Decoder.t -> Metrics_types.number_data_point_value -(** [decode_number_data_point_value decoder] decodes a [number_data_point_value] value from [decoder] *) - -val decode_number_data_point : Pbrt.Decoder.t -> Metrics_types.number_data_point -(** [decode_number_data_point decoder] decodes a [number_data_point] value from [decoder] *) - -val decode_sum : Pbrt.Decoder.t -> Metrics_types.sum -(** [decode_sum decoder] decodes a [sum] value from [decoder] *) - -val decode_gauge : Pbrt.Decoder.t -> Metrics_types.gauge -(** [decode_gauge decoder] decodes a [gauge] value from [decoder] *) - val decode_metric_data : Pbrt.Decoder.t -> Metrics_types.metric_data (** [decode_metric_data decoder] decodes a [metric_data] value from [decoder] *) diff --git a/src/proto/metrics_pp.ml b/src/proto/metrics_pp.ml index 974c2f7e..838343ff 100644 --- a/src/proto/metrics_pp.ml +++ b/src/proto/metrics_pp.ml @@ -1,41 +1,9 @@ [@@@ocaml.warning "-27-30-39"] -let rec pp_summary_data_point_value_at_quantile fmt (v:Metrics_types.summary_data_point_value_at_quantile) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "quantile" Pbrt.Pp.pp_float fmt v.Metrics_types.quantile; - Pbrt.Pp.pp_record_field ~first:false "value" Pbrt.Pp.pp_float fmt v.Metrics_types.value; - in - Pbrt.Pp.pp_brk pp_i fmt () - -let rec pp_summary_data_point fmt (v:Metrics_types.summary_data_point) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "attributes" (Pbrt.Pp.pp_list Common_pp.pp_key_value) fmt v.Metrics_types.attributes; - Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.start_time_unix_nano; - Pbrt.Pp.pp_record_field ~first:false "time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.time_unix_nano; - Pbrt.Pp.pp_record_field ~first:false "count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.count; - Pbrt.Pp.pp_record_field ~first:false "sum" Pbrt.Pp.pp_float fmt v.Metrics_types.sum; - Pbrt.Pp.pp_record_field ~first:false "quantile_values" (Pbrt.Pp.pp_list pp_summary_data_point_value_at_quantile) fmt v.Metrics_types.quantile_values; - Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.Metrics_types.flags; - in - Pbrt.Pp.pp_brk pp_i fmt () - -let rec pp_summary fmt (v:Metrics_types.summary) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_summary_data_point) fmt v.Metrics_types.data_points; - in - Pbrt.Pp.pp_brk pp_i fmt () - -let rec pp_exponential_histogram_data_point_buckets fmt (v:Metrics_types.exponential_histogram_data_point_buckets) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "offset" Pbrt.Pp.pp_int32 fmt v.Metrics_types.offset; - Pbrt.Pp.pp_record_field ~first:false "bucket_counts" (Pbrt.Pp.pp_list Pbrt.Pp.pp_int64) fmt v.Metrics_types.bucket_counts; - in - Pbrt.Pp.pp_brk pp_i fmt () - let rec pp_exemplar_value fmt (v:Metrics_types.exemplar_value) = match v with - | Metrics_types.As_int x -> Format.fprintf fmt "@[As_int(@,%a)@]" Pbrt.Pp.pp_int64 x | Metrics_types.As_double x -> Format.fprintf fmt "@[As_double(@,%a)@]" Pbrt.Pp.pp_float x + | Metrics_types.As_int x -> Format.fprintf fmt "@[As_int(@,%a)@]" Pbrt.Pp.pp_int64 x and pp_exemplar fmt (v:Metrics_types.exemplar) = let pp_i fmt () = @@ -47,22 +15,25 @@ and pp_exemplar fmt (v:Metrics_types.exemplar) = in Pbrt.Pp.pp_brk pp_i fmt () -let rec pp_exponential_histogram_data_point fmt (v:Metrics_types.exponential_histogram_data_point) = +let rec pp_number_data_point_value fmt (v:Metrics_types.number_data_point_value) = + match v with + | Metrics_types.As_double x -> Format.fprintf fmt "@[As_double(@,%a)@]" Pbrt.Pp.pp_float x + | Metrics_types.As_int x -> Format.fprintf fmt "@[As_int(@,%a)@]" Pbrt.Pp.pp_int64 x + +and pp_number_data_point fmt (v:Metrics_types.number_data_point) = let pp_i fmt () = Pbrt.Pp.pp_record_field ~first:true "attributes" (Pbrt.Pp.pp_list Common_pp.pp_key_value) fmt v.Metrics_types.attributes; Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.start_time_unix_nano; Pbrt.Pp.pp_record_field ~first:false "time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.time_unix_nano; - Pbrt.Pp.pp_record_field ~first:false "count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.count; - Pbrt.Pp.pp_record_field ~first:false "sum" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.sum; - Pbrt.Pp.pp_record_field ~first:false "scale" Pbrt.Pp.pp_int32 fmt v.Metrics_types.scale; - Pbrt.Pp.pp_record_field ~first:false "zero_count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.zero_count; - Pbrt.Pp.pp_record_field ~first:false "positive" (Pbrt.Pp.pp_option pp_exponential_histogram_data_point_buckets) fmt v.Metrics_types.positive; - Pbrt.Pp.pp_record_field ~first:false "negative" (Pbrt.Pp.pp_option pp_exponential_histogram_data_point_buckets) fmt v.Metrics_types.negative; - Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.Metrics_types.flags; + Pbrt.Pp.pp_record_field ~first:false "value" pp_number_data_point_value fmt v.Metrics_types.value; Pbrt.Pp.pp_record_field ~first:false "exemplars" (Pbrt.Pp.pp_list pp_exemplar) fmt v.Metrics_types.exemplars; - Pbrt.Pp.pp_record_field ~first:false "min" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.min; - Pbrt.Pp.pp_record_field ~first:false "max" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.max; - Pbrt.Pp.pp_record_field ~first:false "zero_threshold" Pbrt.Pp.pp_float fmt v.Metrics_types.zero_threshold; + Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.Metrics_types.flags; + in + Pbrt.Pp.pp_brk pp_i fmt () + +let rec pp_gauge fmt (v:Metrics_types.gauge) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_number_data_point) fmt v.Metrics_types.data_points; in Pbrt.Pp.pp_brk pp_i fmt () @@ -72,10 +43,11 @@ let rec pp_aggregation_temporality fmt (v:Metrics_types.aggregation_temporality) | Metrics_types.Aggregation_temporality_delta -> Format.fprintf fmt "Aggregation_temporality_delta" | Metrics_types.Aggregation_temporality_cumulative -> Format.fprintf fmt "Aggregation_temporality_cumulative" -let rec pp_exponential_histogram fmt (v:Metrics_types.exponential_histogram) = +let rec pp_sum fmt (v:Metrics_types.sum) = let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_exponential_histogram_data_point) fmt v.Metrics_types.data_points; + Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_number_data_point) fmt v.Metrics_types.data_points; Pbrt.Pp.pp_record_field ~first:false "aggregation_temporality" pp_aggregation_temporality fmt v.Metrics_types.aggregation_temporality; + Pbrt.Pp.pp_record_field ~first:false "is_monotonic" Pbrt.Pp.pp_bool fmt v.Metrics_types.is_monotonic; in Pbrt.Pp.pp_brk pp_i fmt () @@ -102,43 +74,71 @@ let rec pp_histogram fmt (v:Metrics_types.histogram) = in Pbrt.Pp.pp_brk pp_i fmt () -let rec pp_number_data_point_value fmt (v:Metrics_types.number_data_point_value) = - match v with - | Metrics_types.As_int x -> Format.fprintf fmt "@[As_int(@,%a)@]" Pbrt.Pp.pp_int64 x - | Metrics_types.As_double x -> Format.fprintf fmt "@[As_double(@,%a)@]" Pbrt.Pp.pp_float x +let rec pp_exponential_histogram_data_point_buckets fmt (v:Metrics_types.exponential_histogram_data_point_buckets) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "offset" Pbrt.Pp.pp_int32 fmt v.Metrics_types.offset; + Pbrt.Pp.pp_record_field ~first:false "bucket_counts" (Pbrt.Pp.pp_list Pbrt.Pp.pp_int64) fmt v.Metrics_types.bucket_counts; + in + Pbrt.Pp.pp_brk pp_i fmt () -and pp_number_data_point fmt (v:Metrics_types.number_data_point) = +let rec pp_exponential_histogram_data_point fmt (v:Metrics_types.exponential_histogram_data_point) = let pp_i fmt () = Pbrt.Pp.pp_record_field ~first:true "attributes" (Pbrt.Pp.pp_list Common_pp.pp_key_value) fmt v.Metrics_types.attributes; Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.start_time_unix_nano; Pbrt.Pp.pp_record_field ~first:false "time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.time_unix_nano; - Pbrt.Pp.pp_record_field ~first:false "value" pp_number_data_point_value fmt v.Metrics_types.value; + Pbrt.Pp.pp_record_field ~first:false "count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.count; + Pbrt.Pp.pp_record_field ~first:false "sum" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.sum; + Pbrt.Pp.pp_record_field ~first:false "scale" Pbrt.Pp.pp_int32 fmt v.Metrics_types.scale; + Pbrt.Pp.pp_record_field ~first:false "zero_count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.zero_count; + Pbrt.Pp.pp_record_field ~first:false "positive" (Pbrt.Pp.pp_option pp_exponential_histogram_data_point_buckets) fmt v.Metrics_types.positive; + Pbrt.Pp.pp_record_field ~first:false "negative" (Pbrt.Pp.pp_option pp_exponential_histogram_data_point_buckets) fmt v.Metrics_types.negative; + Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.Metrics_types.flags; Pbrt.Pp.pp_record_field ~first:false "exemplars" (Pbrt.Pp.pp_list pp_exemplar) fmt v.Metrics_types.exemplars; + Pbrt.Pp.pp_record_field ~first:false "min" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.min; + Pbrt.Pp.pp_record_field ~first:false "max" (Pbrt.Pp.pp_option Pbrt.Pp.pp_float) fmt v.Metrics_types.max; + Pbrt.Pp.pp_record_field ~first:false "zero_threshold" Pbrt.Pp.pp_float fmt v.Metrics_types.zero_threshold; + in + Pbrt.Pp.pp_brk pp_i fmt () + +let rec pp_exponential_histogram fmt (v:Metrics_types.exponential_histogram) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_exponential_histogram_data_point) fmt v.Metrics_types.data_points; + Pbrt.Pp.pp_record_field ~first:false "aggregation_temporality" pp_aggregation_temporality fmt v.Metrics_types.aggregation_temporality; + in + Pbrt.Pp.pp_brk pp_i fmt () + +let rec pp_summary_data_point_value_at_quantile fmt (v:Metrics_types.summary_data_point_value_at_quantile) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "quantile" Pbrt.Pp.pp_float fmt v.Metrics_types.quantile; + Pbrt.Pp.pp_record_field ~first:false "value" Pbrt.Pp.pp_float fmt v.Metrics_types.value; + in + Pbrt.Pp.pp_brk pp_i fmt () + +let rec pp_summary_data_point fmt (v:Metrics_types.summary_data_point) = + let pp_i fmt () = + Pbrt.Pp.pp_record_field ~first:true "attributes" (Pbrt.Pp.pp_list Common_pp.pp_key_value) fmt v.Metrics_types.attributes; + Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.start_time_unix_nano; + Pbrt.Pp.pp_record_field ~first:false "time_unix_nano" Pbrt.Pp.pp_int64 fmt v.Metrics_types.time_unix_nano; + Pbrt.Pp.pp_record_field ~first:false "count" Pbrt.Pp.pp_int64 fmt v.Metrics_types.count; + Pbrt.Pp.pp_record_field ~first:false "sum" Pbrt.Pp.pp_float fmt v.Metrics_types.sum; + Pbrt.Pp.pp_record_field ~first:false "quantile_values" (Pbrt.Pp.pp_list pp_summary_data_point_value_at_quantile) fmt v.Metrics_types.quantile_values; Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.Metrics_types.flags; in Pbrt.Pp.pp_brk pp_i fmt () -let rec pp_sum fmt (v:Metrics_types.sum) = +let rec pp_summary fmt (v:Metrics_types.summary) = let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_number_data_point) fmt v.Metrics_types.data_points; - Pbrt.Pp.pp_record_field ~first:false "aggregation_temporality" pp_aggregation_temporality fmt v.Metrics_types.aggregation_temporality; - Pbrt.Pp.pp_record_field ~first:false "is_monotonic" Pbrt.Pp.pp_bool fmt v.Metrics_types.is_monotonic; - in - Pbrt.Pp.pp_brk pp_i fmt () - -let rec pp_gauge fmt (v:Metrics_types.gauge) = - let pp_i fmt () = - Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_number_data_point) fmt v.Metrics_types.data_points; + Pbrt.Pp.pp_record_field ~first:true "data_points" (Pbrt.Pp.pp_list pp_summary_data_point) fmt v.Metrics_types.data_points; in Pbrt.Pp.pp_brk pp_i fmt () let rec pp_metric_data fmt (v:Metrics_types.metric_data) = match v with - | Metrics_types.Summary x -> Format.fprintf fmt "@[Summary(@,%a)@]" pp_summary x - | Metrics_types.Exponential_histogram x -> Format.fprintf fmt "@[Exponential_histogram(@,%a)@]" pp_exponential_histogram x - | Metrics_types.Histogram x -> Format.fprintf fmt "@[Histogram(@,%a)@]" pp_histogram x - | Metrics_types.Sum x -> Format.fprintf fmt "@[Sum(@,%a)@]" pp_sum x | Metrics_types.Gauge x -> Format.fprintf fmt "@[Gauge(@,%a)@]" pp_gauge x + | Metrics_types.Sum x -> Format.fprintf fmt "@[Sum(@,%a)@]" pp_sum x + | Metrics_types.Histogram x -> Format.fprintf fmt "@[Histogram(@,%a)@]" pp_histogram x + | Metrics_types.Exponential_histogram x -> Format.fprintf fmt "@[Exponential_histogram(@,%a)@]" pp_exponential_histogram x + | Metrics_types.Summary x -> Format.fprintf fmt "@[Summary(@,%a)@]" pp_summary x and pp_metric fmt (v:Metrics_types.metric) = let pp_i fmt () = diff --git a/src/proto/metrics_pp.mli b/src/proto/metrics_pp.mli index 7ee4b6fc..c506e897 100644 --- a/src/proto/metrics_pp.mli +++ b/src/proto/metrics_pp.mli @@ -1,9 +1,44 @@ - (** metrics.proto Pretty Printing *) (** {2 Formatters} *) +val pp_exemplar_value : Format.formatter -> Metrics_types.exemplar_value -> unit +(** [pp_exemplar_value v] formats v *) + +val pp_exemplar : Format.formatter -> Metrics_types.exemplar -> unit +(** [pp_exemplar v] formats v *) + +val pp_number_data_point_value : Format.formatter -> Metrics_types.number_data_point_value -> unit +(** [pp_number_data_point_value v] formats v *) + +val pp_number_data_point : Format.formatter -> Metrics_types.number_data_point -> unit +(** [pp_number_data_point v] formats v *) + +val pp_gauge : Format.formatter -> Metrics_types.gauge -> unit +(** [pp_gauge v] formats v *) + +val pp_aggregation_temporality : Format.formatter -> Metrics_types.aggregation_temporality -> unit +(** [pp_aggregation_temporality v] formats v *) + +val pp_sum : Format.formatter -> Metrics_types.sum -> unit +(** [pp_sum v] formats v *) + +val pp_histogram_data_point : Format.formatter -> Metrics_types.histogram_data_point -> unit +(** [pp_histogram_data_point v] formats v *) + +val pp_histogram : Format.formatter -> Metrics_types.histogram -> unit +(** [pp_histogram v] formats v *) + +val pp_exponential_histogram_data_point_buckets : Format.formatter -> Metrics_types.exponential_histogram_data_point_buckets -> unit +(** [pp_exponential_histogram_data_point_buckets v] formats v *) + +val pp_exponential_histogram_data_point : Format.formatter -> Metrics_types.exponential_histogram_data_point -> unit +(** [pp_exponential_histogram_data_point v] formats v *) + +val pp_exponential_histogram : Format.formatter -> Metrics_types.exponential_histogram -> unit +(** [pp_exponential_histogram v] formats v *) + val pp_summary_data_point_value_at_quantile : Format.formatter -> Metrics_types.summary_data_point_value_at_quantile -> unit (** [pp_summary_data_point_value_at_quantile v] formats v *) @@ -13,42 +48,6 @@ val pp_summary_data_point : Format.formatter -> Metrics_types.summary_data_point val pp_summary : Format.formatter -> Metrics_types.summary -> unit (** [pp_summary v] formats v *) -val pp_exponential_histogram_data_point_buckets : Format.formatter -> Metrics_types.exponential_histogram_data_point_buckets -> unit -(** [pp_exponential_histogram_data_point_buckets v] formats v *) - -val pp_exemplar_value : Format.formatter -> Metrics_types.exemplar_value -> unit -(** [pp_exemplar_value v] formats v *) - -val pp_exemplar : Format.formatter -> Metrics_types.exemplar -> unit -(** [pp_exemplar v] formats v *) - -val pp_exponential_histogram_data_point : Format.formatter -> Metrics_types.exponential_histogram_data_point -> unit -(** [pp_exponential_histogram_data_point v] formats v *) - -val pp_aggregation_temporality : Format.formatter -> Metrics_types.aggregation_temporality -> unit -(** [pp_aggregation_temporality v] formats v *) - -val pp_exponential_histogram : Format.formatter -> Metrics_types.exponential_histogram -> unit -(** [pp_exponential_histogram v] formats v *) - -val pp_histogram_data_point : Format.formatter -> Metrics_types.histogram_data_point -> unit -(** [pp_histogram_data_point v] formats v *) - -val pp_histogram : Format.formatter -> Metrics_types.histogram -> unit -(** [pp_histogram v] formats v *) - -val pp_number_data_point_value : Format.formatter -> Metrics_types.number_data_point_value -> unit -(** [pp_number_data_point_value v] formats v *) - -val pp_number_data_point : Format.formatter -> Metrics_types.number_data_point -> unit -(** [pp_number_data_point v] formats v *) - -val pp_sum : Format.formatter -> Metrics_types.sum -> unit -(** [pp_sum v] formats v *) - -val pp_gauge : Format.formatter -> Metrics_types.gauge -> unit -(** [pp_gauge v] formats v *) - val pp_metric_data : Format.formatter -> Metrics_types.metric_data -> unit (** [pp_metric_data v] formats v *) diff --git a/src/proto/metrics_service_pp.mli b/src/proto/metrics_service_pp.mli index c9b5ed6f..90301da8 100644 --- a/src/proto/metrics_service_pp.mli +++ b/src/proto/metrics_service_pp.mli @@ -1,4 +1,3 @@ - (** metrics_service.proto Pretty Printing *) diff --git a/src/proto/metrics_types.ml b/src/proto/metrics_types.ml index d238843c..4cd9c09e 100644 --- a/src/proto/metrics_types.ml +++ b/src/proto/metrics_types.ml @@ -1,33 +1,9 @@ [@@@ocaml.warning "-27-30-39"] -type summary_data_point_value_at_quantile = { - quantile : float; - value : float; -} - -type summary_data_point = { - attributes : Common_types.key_value list; - start_time_unix_nano : int64; - time_unix_nano : int64; - count : int64; - sum : float; - quantile_values : summary_data_point_value_at_quantile list; - flags : int32; -} - -type summary = { - data_points : summary_data_point list; -} - -type exponential_histogram_data_point_buckets = { - offset : int32; - bucket_counts : int64 list; -} - type exemplar_value = - | As_int of int64 | As_double of float + | As_int of int64 and exemplar = { filtered_attributes : Common_types.key_value list; @@ -37,21 +13,21 @@ and exemplar = { trace_id : bytes; } -type exponential_histogram_data_point = { +type number_data_point_value = + | As_double of float + | As_int of int64 + +and number_data_point = { attributes : Common_types.key_value list; start_time_unix_nano : int64; time_unix_nano : int64; - count : int64; - sum : float option; - scale : int32; - zero_count : int64; - positive : exponential_histogram_data_point_buckets option; - negative : exponential_histogram_data_point_buckets option; - flags : int32; + value : number_data_point_value; exemplars : exemplar list; - min : float option; - max : float option; - zero_threshold : float; + flags : int32; +} + +type gauge = { + data_points : number_data_point list; } type aggregation_temporality = @@ -59,9 +35,10 @@ type aggregation_temporality = | Aggregation_temporality_delta | Aggregation_temporality_cumulative -type exponential_histogram = { - data_points : exponential_histogram_data_point list; +type sum = { + data_points : number_data_point list; aggregation_temporality : aggregation_temporality; + is_monotonic : bool; } type histogram_data_point = { @@ -83,35 +60,58 @@ type histogram = { aggregation_temporality : aggregation_temporality; } -type number_data_point_value = - | As_int of int64 - | As_double of float +type exponential_histogram_data_point_buckets = { + offset : int32; + bucket_counts : int64 list; +} -and number_data_point = { +type exponential_histogram_data_point = { attributes : Common_types.key_value list; start_time_unix_nano : int64; time_unix_nano : int64; - value : number_data_point_value; + count : int64; + sum : float option; + scale : int32; + zero_count : int64; + positive : exponential_histogram_data_point_buckets option; + negative : exponential_histogram_data_point_buckets option; + flags : int32; exemplars : exemplar list; + min : float option; + max : float option; + zero_threshold : float; +} + +type exponential_histogram = { + data_points : exponential_histogram_data_point list; + aggregation_temporality : aggregation_temporality; +} + +type summary_data_point_value_at_quantile = { + quantile : float; + value : float; +} + +type summary_data_point = { + attributes : Common_types.key_value list; + start_time_unix_nano : int64; + time_unix_nano : int64; + count : int64; + sum : float; + quantile_values : summary_data_point_value_at_quantile list; flags : int32; } -type sum = { - data_points : number_data_point list; - aggregation_temporality : aggregation_temporality; - is_monotonic : bool; -} - -type gauge = { - data_points : number_data_point list; +type summary = { + data_points : summary_data_point list; } type metric_data = - | Summary of summary - | Exponential_histogram of exponential_histogram - | Histogram of histogram - | Sum of sum | Gauge of gauge + | Sum of sum + | Histogram of histogram + | Exponential_histogram of exponential_histogram + | Summary of summary and metric = { name : string; @@ -140,52 +140,12 @@ type data_point_flags = | Data_point_flags_do_not_use | Data_point_flags_no_recorded_value_mask -let rec default_summary_data_point_value_at_quantile - ?quantile:((quantile:float) = 0.) - ?value:((value:float) = 0.) - () : summary_data_point_value_at_quantile = { - quantile; - value; -} - -let rec default_summary_data_point - ?attributes:((attributes:Common_types.key_value list) = []) - ?start_time_unix_nano:((start_time_unix_nano:int64) = 0L) - ?time_unix_nano:((time_unix_nano:int64) = 0L) - ?count:((count:int64) = 0L) - ?sum:((sum:float) = 0.) - ?quantile_values:((quantile_values:summary_data_point_value_at_quantile list) = []) - ?flags:((flags:int32) = 0l) - () : summary_data_point = { - attributes; - start_time_unix_nano; - time_unix_nano; - count; - sum; - quantile_values; - flags; -} - -let rec default_summary - ?data_points:((data_points:summary_data_point list) = []) - () : summary = { - data_points; -} - -let rec default_exponential_histogram_data_point_buckets - ?offset:((offset:int32) = 0l) - ?bucket_counts:((bucket_counts:int64 list) = []) - () : exponential_histogram_data_point_buckets = { - offset; - bucket_counts; -} - -let rec default_exemplar_value () : exemplar_value = As_int (0L) +let rec default_exemplar_value () : exemplar_value = As_double (0.) and default_exemplar ?filtered_attributes:((filtered_attributes:Common_types.key_value list) = []) ?time_unix_nano:((time_unix_nano:int64) = 0L) - ?value:((value:exemplar_value) = As_int (0L)) + ?value:((value:exemplar_value) = As_double (0.)) ?span_id:((span_id:bytes) = Bytes.create 0) ?trace_id:((trace_id:bytes) = Bytes.create 0) () : exemplar = { @@ -196,46 +156,40 @@ and default_exemplar trace_id; } -let rec default_exponential_histogram_data_point +let rec default_number_data_point_value () : number_data_point_value = As_double (0.) + +and default_number_data_point ?attributes:((attributes:Common_types.key_value list) = []) ?start_time_unix_nano:((start_time_unix_nano:int64) = 0L) ?time_unix_nano:((time_unix_nano:int64) = 0L) - ?count:((count:int64) = 0L) - ?sum:((sum:float option) = None) - ?scale:((scale:int32) = 0l) - ?zero_count:((zero_count:int64) = 0L) - ?positive:((positive:exponential_histogram_data_point_buckets option) = None) - ?negative:((negative:exponential_histogram_data_point_buckets option) = None) - ?flags:((flags:int32) = 0l) + ?value:((value:number_data_point_value) = As_double (0.)) ?exemplars:((exemplars:exemplar list) = []) - ?min:((min:float option) = None) - ?max:((max:float option) = None) - ?zero_threshold:((zero_threshold:float) = 0.) - () : exponential_histogram_data_point = { + ?flags:((flags:int32) = 0l) + () : number_data_point = { attributes; start_time_unix_nano; time_unix_nano; - count; - sum; - scale; - zero_count; - positive; - negative; - flags; + value; exemplars; - min; - max; - zero_threshold; + flags; +} + +let rec default_gauge + ?data_points:((data_points:number_data_point list) = []) + () : gauge = { + data_points; } let rec default_aggregation_temporality () = (Aggregation_temporality_unspecified:aggregation_temporality) -let rec default_exponential_histogram - ?data_points:((data_points:exponential_histogram_data_point list) = []) +let rec default_sum + ?data_points:((data_points:number_data_point list) = []) ?aggregation_temporality:((aggregation_temporality:aggregation_temporality) = default_aggregation_temporality ()) - () : exponential_histogram = { + ?is_monotonic:((is_monotonic:bool) = false) + () : sum = { data_points; aggregation_temporality; + is_monotonic; } let rec default_histogram_data_point @@ -272,47 +226,93 @@ let rec default_histogram aggregation_temporality; } -let rec default_number_data_point_value () : number_data_point_value = As_int (0L) +let rec default_exponential_histogram_data_point_buckets + ?offset:((offset:int32) = 0l) + ?bucket_counts:((bucket_counts:int64 list) = []) + () : exponential_histogram_data_point_buckets = { + offset; + bucket_counts; +} -and default_number_data_point +let rec default_exponential_histogram_data_point ?attributes:((attributes:Common_types.key_value list) = []) ?start_time_unix_nano:((start_time_unix_nano:int64) = 0L) ?time_unix_nano:((time_unix_nano:int64) = 0L) - ?value:((value:number_data_point_value) = As_int (0L)) - ?exemplars:((exemplars:exemplar list) = []) + ?count:((count:int64) = 0L) + ?sum:((sum:float option) = None) + ?scale:((scale:int32) = 0l) + ?zero_count:((zero_count:int64) = 0L) + ?positive:((positive:exponential_histogram_data_point_buckets option) = None) + ?negative:((negative:exponential_histogram_data_point_buckets option) = None) ?flags:((flags:int32) = 0l) - () : number_data_point = { + ?exemplars:((exemplars:exemplar list) = []) + ?min:((min:float option) = None) + ?max:((max:float option) = None) + ?zero_threshold:((zero_threshold:float) = 0.) + () : exponential_histogram_data_point = { attributes; start_time_unix_nano; time_unix_nano; - value; + count; + sum; + scale; + zero_count; + positive; + negative; + flags; exemplars; + min; + max; + zero_threshold; +} + +let rec default_exponential_histogram + ?data_points:((data_points:exponential_histogram_data_point list) = []) + ?aggregation_temporality:((aggregation_temporality:aggregation_temporality) = default_aggregation_temporality ()) + () : exponential_histogram = { + data_points; + aggregation_temporality; +} + +let rec default_summary_data_point_value_at_quantile + ?quantile:((quantile:float) = 0.) + ?value:((value:float) = 0.) + () : summary_data_point_value_at_quantile = { + quantile; + value; +} + +let rec default_summary_data_point + ?attributes:((attributes:Common_types.key_value list) = []) + ?start_time_unix_nano:((start_time_unix_nano:int64) = 0L) + ?time_unix_nano:((time_unix_nano:int64) = 0L) + ?count:((count:int64) = 0L) + ?sum:((sum:float) = 0.) + ?quantile_values:((quantile_values:summary_data_point_value_at_quantile list) = []) + ?flags:((flags:int32) = 0l) + () : summary_data_point = { + attributes; + start_time_unix_nano; + time_unix_nano; + count; + sum; + quantile_values; flags; } -let rec default_sum - ?data_points:((data_points:number_data_point list) = []) - ?aggregation_temporality:((aggregation_temporality:aggregation_temporality) = default_aggregation_temporality ()) - ?is_monotonic:((is_monotonic:bool) = false) - () : sum = { - data_points; - aggregation_temporality; - is_monotonic; -} - -let rec default_gauge - ?data_points:((data_points:number_data_point list) = []) - () : gauge = { +let rec default_summary + ?data_points:((data_points:summary_data_point list) = []) + () : summary = { data_points; } -let rec default_metric_data () : metric_data = Summary (default_summary ()) +let rec default_metric_data () : metric_data = Gauge (default_gauge ()) and default_metric ?name:((name:string) = "") ?description:((description:string) = "") ?unit_:((unit_:string) = "") - ?data:((data:metric_data) = Summary (default_summary ())) + ?data:((data:metric_data) = Gauge (default_gauge ())) () : metric = { name; description; diff --git a/src/proto/metrics_types.mli b/src/proto/metrics_types.mli index 17471582..8cf43dbf 100644 --- a/src/proto/metrics_types.mli +++ b/src/proto/metrics_types.mli @@ -4,33 +4,9 @@ (** {2 Types} *) -type summary_data_point_value_at_quantile = { - quantile : float; - value : float; -} - -type summary_data_point = { - attributes : Common_types.key_value list; - start_time_unix_nano : int64; - time_unix_nano : int64; - count : int64; - sum : float; - quantile_values : summary_data_point_value_at_quantile list; - flags : int32; -} - -type summary = { - data_points : summary_data_point list; -} - -type exponential_histogram_data_point_buckets = { - offset : int32; - bucket_counts : int64 list; -} - type exemplar_value = - | As_int of int64 | As_double of float + | As_int of int64 and exemplar = { filtered_attributes : Common_types.key_value list; @@ -40,21 +16,21 @@ and exemplar = { trace_id : bytes; } -type exponential_histogram_data_point = { +type number_data_point_value = + | As_double of float + | As_int of int64 + +and number_data_point = { attributes : Common_types.key_value list; start_time_unix_nano : int64; time_unix_nano : int64; - count : int64; - sum : float option; - scale : int32; - zero_count : int64; - positive : exponential_histogram_data_point_buckets option; - negative : exponential_histogram_data_point_buckets option; - flags : int32; + value : number_data_point_value; exemplars : exemplar list; - min : float option; - max : float option; - zero_threshold : float; + flags : int32; +} + +type gauge = { + data_points : number_data_point list; } type aggregation_temporality = @@ -62,9 +38,10 @@ type aggregation_temporality = | Aggregation_temporality_delta | Aggregation_temporality_cumulative -type exponential_histogram = { - data_points : exponential_histogram_data_point list; +type sum = { + data_points : number_data_point list; aggregation_temporality : aggregation_temporality; + is_monotonic : bool; } type histogram_data_point = { @@ -86,35 +63,58 @@ type histogram = { aggregation_temporality : aggregation_temporality; } -type number_data_point_value = - | As_int of int64 - | As_double of float +type exponential_histogram_data_point_buckets = { + offset : int32; + bucket_counts : int64 list; +} -and number_data_point = { +type exponential_histogram_data_point = { attributes : Common_types.key_value list; start_time_unix_nano : int64; time_unix_nano : int64; - value : number_data_point_value; + count : int64; + sum : float option; + scale : int32; + zero_count : int64; + positive : exponential_histogram_data_point_buckets option; + negative : exponential_histogram_data_point_buckets option; + flags : int32; exemplars : exemplar list; + min : float option; + max : float option; + zero_threshold : float; +} + +type exponential_histogram = { + data_points : exponential_histogram_data_point list; + aggregation_temporality : aggregation_temporality; +} + +type summary_data_point_value_at_quantile = { + quantile : float; + value : float; +} + +type summary_data_point = { + attributes : Common_types.key_value list; + start_time_unix_nano : int64; + time_unix_nano : int64; + count : int64; + sum : float; + quantile_values : summary_data_point_value_at_quantile list; flags : int32; } -type sum = { - data_points : number_data_point list; - aggregation_temporality : aggregation_temporality; - is_monotonic : bool; -} - -type gauge = { - data_points : number_data_point list; +type summary = { + data_points : summary_data_point list; } type metric_data = - | Summary of summary - | Exponential_histogram of exponential_histogram - | Histogram of histogram - | Sum of sum | Gauge of gauge + | Sum of sum + | Histogram of histogram + | Exponential_histogram of exponential_histogram + | Summary of summary and metric = { name : string; @@ -146,38 +146,6 @@ type data_point_flags = (** {2 Default values} *) -val default_summary_data_point_value_at_quantile : - ?quantile:float -> - ?value:float -> - unit -> - summary_data_point_value_at_quantile -(** [default_summary_data_point_value_at_quantile ()] is the default value for type [summary_data_point_value_at_quantile] *) - -val default_summary_data_point : - ?attributes:Common_types.key_value list -> - ?start_time_unix_nano:int64 -> - ?time_unix_nano:int64 -> - ?count:int64 -> - ?sum:float -> - ?quantile_values:summary_data_point_value_at_quantile list -> - ?flags:int32 -> - unit -> - summary_data_point -(** [default_summary_data_point ()] is the default value for type [summary_data_point] *) - -val default_summary : - ?data_points:summary_data_point list -> - unit -> - summary -(** [default_summary ()] is the default value for type [summary] *) - -val default_exponential_histogram_data_point_buckets : - ?offset:int32 -> - ?bucket_counts:int64 list -> - unit -> - exponential_histogram_data_point_buckets -(** [default_exponential_histogram_data_point_buckets ()] is the default value for type [exponential_histogram_data_point_buckets] *) - val default_exemplar_value : unit -> exemplar_value (** [default_exemplar_value ()] is the default value for type [exemplar_value] *) @@ -191,34 +159,36 @@ val default_exemplar : exemplar (** [default_exemplar ()] is the default value for type [exemplar] *) -val default_exponential_histogram_data_point : +val default_number_data_point_value : unit -> number_data_point_value +(** [default_number_data_point_value ()] is the default value for type [number_data_point_value] *) + +val default_number_data_point : ?attributes:Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> - ?count:int64 -> - ?sum:float option -> - ?scale:int32 -> - ?zero_count:int64 -> - ?positive:exponential_histogram_data_point_buckets option -> - ?negative:exponential_histogram_data_point_buckets option -> - ?flags:int32 -> + ?value:number_data_point_value -> ?exemplars:exemplar list -> - ?min:float option -> - ?max:float option -> - ?zero_threshold:float -> + ?flags:int32 -> unit -> - exponential_histogram_data_point -(** [default_exponential_histogram_data_point ()] is the default value for type [exponential_histogram_data_point] *) + number_data_point +(** [default_number_data_point ()] is the default value for type [number_data_point] *) + +val default_gauge : + ?data_points:number_data_point list -> + unit -> + gauge +(** [default_gauge ()] is the default value for type [gauge] *) val default_aggregation_temporality : unit -> aggregation_temporality (** [default_aggregation_temporality ()] is the default value for type [aggregation_temporality] *) -val default_exponential_histogram : - ?data_points:exponential_histogram_data_point list -> +val default_sum : + ?data_points:number_data_point list -> ?aggregation_temporality:aggregation_temporality -> + ?is_monotonic:bool -> unit -> - exponential_histogram -(** [default_exponential_histogram ()] is the default value for type [exponential_histogram] *) + sum +(** [default_sum ()] is the default value for type [sum] *) val default_histogram_data_point : ?attributes:Common_types.key_value list -> @@ -243,33 +213,63 @@ val default_histogram : histogram (** [default_histogram ()] is the default value for type [histogram] *) -val default_number_data_point_value : unit -> number_data_point_value -(** [default_number_data_point_value ()] is the default value for type [number_data_point_value] *) +val default_exponential_histogram_data_point_buckets : + ?offset:int32 -> + ?bucket_counts:int64 list -> + unit -> + exponential_histogram_data_point_buckets +(** [default_exponential_histogram_data_point_buckets ()] is the default value for type [exponential_histogram_data_point_buckets] *) -val default_number_data_point : +val default_exponential_histogram_data_point : ?attributes:Common_types.key_value list -> ?start_time_unix_nano:int64 -> ?time_unix_nano:int64 -> - ?value:number_data_point_value -> + ?count:int64 -> + ?sum:float option -> + ?scale:int32 -> + ?zero_count:int64 -> + ?positive:exponential_histogram_data_point_buckets option -> + ?negative:exponential_histogram_data_point_buckets option -> + ?flags:int32 -> ?exemplars:exemplar list -> + ?min:float option -> + ?max:float option -> + ?zero_threshold:float -> + unit -> + exponential_histogram_data_point +(** [default_exponential_histogram_data_point ()] is the default value for type [exponential_histogram_data_point] *) + +val default_exponential_histogram : + ?data_points:exponential_histogram_data_point list -> + ?aggregation_temporality:aggregation_temporality -> + unit -> + exponential_histogram +(** [default_exponential_histogram ()] is the default value for type [exponential_histogram] *) + +val default_summary_data_point_value_at_quantile : + ?quantile:float -> + ?value:float -> + unit -> + summary_data_point_value_at_quantile +(** [default_summary_data_point_value_at_quantile ()] is the default value for type [summary_data_point_value_at_quantile] *) + +val default_summary_data_point : + ?attributes:Common_types.key_value list -> + ?start_time_unix_nano:int64 -> + ?time_unix_nano:int64 -> + ?count:int64 -> + ?sum:float -> + ?quantile_values:summary_data_point_value_at_quantile list -> ?flags:int32 -> unit -> - number_data_point -(** [default_number_data_point ()] is the default value for type [number_data_point] *) + summary_data_point +(** [default_summary_data_point ()] is the default value for type [summary_data_point] *) -val default_sum : - ?data_points:number_data_point list -> - ?aggregation_temporality:aggregation_temporality -> - ?is_monotonic:bool -> +val default_summary : + ?data_points:summary_data_point list -> unit -> - sum -(** [default_sum ()] is the default value for type [sum] *) - -val default_gauge : - ?data_points:number_data_point list -> - unit -> - gauge -(** [default_gauge ()] is the default value for type [gauge] *) + summary +(** [default_summary ()] is the default value for type [summary] *) val default_metric_data : unit -> metric_data (** [default_metric_data ()] is the default value for type [metric_data] *) diff --git a/src/proto/resource_pp.mli b/src/proto/resource_pp.mli index f18aa338..60d1f43a 100644 --- a/src/proto/resource_pp.mli +++ b/src/proto/resource_pp.mli @@ -1,4 +1,3 @@ - (** resource.proto Pretty Printing *) diff --git a/src/proto/status_pp.mli b/src/proto/status_pp.mli index 3333057d..cb19e3bd 100644 --- a/src/proto/status_pp.mli +++ b/src/proto/status_pp.mli @@ -1,4 +1,3 @@ - (** status.proto Pretty Printing *) diff --git a/src/proto/trace_pp.mli b/src/proto/trace_pp.mli index ea7ffdc9..047f5207 100644 --- a/src/proto/trace_pp.mli +++ b/src/proto/trace_pp.mli @@ -1,4 +1,3 @@ - (** trace.proto Pretty Printing *) diff --git a/src/proto/trace_service_pp.mli b/src/proto/trace_service_pp.mli index 63b19223..d7d52f99 100644 --- a/src/proto/trace_service_pp.mli +++ b/src/proto/trace_service_pp.mli @@ -1,4 +1,3 @@ - (** trace_service.proto Pretty Printing *)