udpate generated proto code

This commit is contained in:
Simon Cruanes 2025-10-30 22:36:50 -04:00
parent 15140e0915
commit 51f783a578
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
10 changed files with 376 additions and 33 deletions

View file

@ -33,6 +33,15 @@ type instrumentation_scope = {
mutable dropped_attributes_count : int32;
}
type entity_ref = {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 2 fields *)
mutable schema_url : string;
mutable type_ : string;
mutable id_keys : string list;
mutable description_keys : string list;
}
let default_any_value (): any_value = String_value ("")
let default_array_value (): array_value =
@ -61,6 +70,15 @@ let default_instrumentation_scope (): instrumentation_scope =
dropped_attributes_count=0l;
}
let default_entity_ref (): entity_ref =
{
_presence=Pbrt.Bitfield.empty;
schema_url="";
type_="";
id_keys=[];
description_keys=[];
}
(** {2 Make functions} *)
@ -151,6 +169,38 @@ let make_instrumentation_scope
| Some v -> set_instrumentation_scope_dropped_attributes_count _res v);
_res
let[@inline] has_entity_ref_schema_url (self:entity_ref) : bool = (Pbrt.Bitfield.get self._presence 0)
let[@inline] has_entity_ref_type_ (self:entity_ref) : bool = (Pbrt.Bitfield.get self._presence 1)
let[@inline] set_entity_ref_schema_url (self:entity_ref) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 0); self.schema_url <- x
let[@inline] set_entity_ref_type_ (self:entity_ref) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 1); self.type_ <- x
let[@inline] set_entity_ref_id_keys (self:entity_ref) (x:string list) : unit =
self.id_keys <- x
let[@inline] set_entity_ref_description_keys (self:entity_ref) (x:string list) : unit =
self.description_keys <- x
let copy_entity_ref (self:entity_ref) : entity_ref =
{ self with schema_url = self.schema_url }
let make_entity_ref
?(schema_url:string option)
?(type_:string option)
~(id_keys:string list)
~(description_keys:string list)
() : entity_ref =
let _res = default_entity_ref () in
(match schema_url with
| None -> ()
| Some v -> set_entity_ref_schema_url _res v);
(match type_ with
| None -> ()
| Some v -> set_entity_ref_type_ _res v);
set_entity_ref_id_keys _res id_keys;
set_entity_ref_description_keys _res description_keys;
_res
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Formatters} *)
@ -197,6 +247,17 @@ let rec pp_instrumentation_scope fmt (v:instrumentation_scope) =
in
Pbrt.Pp.pp_brk pp_i fmt ()
let rec pp_entity_ref fmt (v:entity_ref) =
let pp_i fmt () =
Pbrt.Pp.pp_record_field ~first:true "schema_url" Pbrt.Pp.pp_string fmt v.schema_url;
if not (Pbrt.Bitfield.get v._presence 0) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "type_" Pbrt.Pp.pp_string fmt v.type_;
if not (Pbrt.Bitfield.get v._presence 1) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "id_keys" (Pbrt.Pp.pp_list Pbrt.Pp.pp_string) fmt v.id_keys;
Pbrt.Pp.pp_record_field ~first:false "description_keys" (Pbrt.Pp.pp_list Pbrt.Pp.pp_string) fmt v.description_keys;
in
Pbrt.Pp.pp_brk pp_i fmt ()
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Protobuf Encoding} *)
@ -272,6 +333,25 @@ let rec encode_pb_instrumentation_scope (v:instrumentation_scope) encoder =
);
()
let rec encode_pb_entity_ref (v:entity_ref) encoder =
if (Pbrt.Bitfield.get v._presence 0) then (
Pbrt.Encoder.string v.schema_url encoder;
Pbrt.Encoder.key 1 Pbrt.Bytes encoder;
);
if (Pbrt.Bitfield.get v._presence 1) then (
Pbrt.Encoder.string v.type_ encoder;
Pbrt.Encoder.key 2 Pbrt.Bytes encoder;
);
Pbrt.List_util.rev_iter_with (fun x encoder ->
Pbrt.Encoder.string x encoder;
Pbrt.Encoder.key 3 Pbrt.Bytes encoder;
) v.id_keys encoder;
Pbrt.List_util.rev_iter_with (fun x encoder ->
Pbrt.Encoder.string x encoder;
Pbrt.Encoder.key 4 Pbrt.Bytes encoder;
) v.description_keys encoder;
()
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Protobuf Decoding} *)
@ -385,3 +465,37 @@ let rec decode_pb_instrumentation_scope d =
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : instrumentation_scope)
let rec decode_pb_entity_ref d =
let v = default_entity_ref () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
(* put lists in the correct order *)
set_entity_ref_description_keys v (List.rev v.description_keys);
set_entity_ref_id_keys v (List.rev v.id_keys);
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
set_entity_ref_schema_url v (Pbrt.Decoder.string d);
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(entity_ref), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
set_entity_ref_type_ v (Pbrt.Decoder.string d);
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(entity_ref), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
set_entity_ref_id_keys v ((Pbrt.Decoder.string d) :: v.id_keys);
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(entity_ref), field(3)" pk
| Some (4, Pbrt.Bytes) -> begin
set_entity_ref_description_keys v ((Pbrt.Decoder.string d) :: v.description_keys);
end
| Some (4, pk) ->
Pbrt.Decoder.unexpected_payload "Message(entity_ref), field(4)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : entity_ref)

View file

@ -40,6 +40,15 @@ type instrumentation_scope = private {
mutable dropped_attributes_count : int32;
}
type entity_ref = private {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 2 fields *)
mutable schema_url : string;
mutable type_ : string;
mutable id_keys : string list;
mutable description_keys : string list;
}
(** {2 Basic values} *)
@ -58,6 +67,9 @@ val default_key_value : unit -> key_value
val default_instrumentation_scope : unit -> instrumentation_scope
(** [default_instrumentation_scope ()] is a new empty value for type [instrumentation_scope] *)
val default_entity_ref : unit -> entity_ref
(** [default_entity_ref ()] is a new empty value for type [entity_ref] *)
(** {2 Make functions} *)
@ -134,6 +146,35 @@ val has_instrumentation_scope_dropped_attributes_count : instrumentation_scope -
val set_instrumentation_scope_dropped_attributes_count : instrumentation_scope -> int32 -> unit
(** set field dropped_attributes_count in instrumentation_scope *)
val make_entity_ref :
?schema_url:string ->
?type_:string ->
id_keys:string list ->
description_keys:string list ->
unit ->
entity_ref
(** [make_entity_ref … ()] is a builder for type [entity_ref] *)
val copy_entity_ref : entity_ref -> entity_ref
val has_entity_ref_schema_url : entity_ref -> bool
(** presence of field "schema_url" in [entity_ref] *)
val set_entity_ref_schema_url : entity_ref -> string -> unit
(** set field schema_url in entity_ref *)
val has_entity_ref_type_ : entity_ref -> bool
(** presence of field "type_" in [entity_ref] *)
val set_entity_ref_type_ : entity_ref -> string -> unit
(** set field type_ in entity_ref *)
val set_entity_ref_id_keys : entity_ref -> string list -> unit
(** set field id_keys in entity_ref *)
val set_entity_ref_description_keys : entity_ref -> string list -> unit
(** set field description_keys in entity_ref *)
(** {2 Formatters} *)
@ -152,6 +193,9 @@ val pp_key_value : Format.formatter -> key_value -> unit
val pp_instrumentation_scope : Format.formatter -> instrumentation_scope -> unit
(** [pp_instrumentation_scope v] formats v *)
val pp_entity_ref : Format.formatter -> entity_ref -> unit
(** [pp_entity_ref v] formats v *)
(** {2 Protobuf Encoding} *)
@ -170,6 +214,9 @@ val encode_pb_key_value : key_value -> Pbrt.Encoder.t -> unit
val encode_pb_instrumentation_scope : instrumentation_scope -> Pbrt.Encoder.t -> unit
(** [encode_pb_instrumentation_scope v encoder] encodes [v] with the given [encoder] *)
val encode_pb_entity_ref : entity_ref -> Pbrt.Encoder.t -> unit
(** [encode_pb_entity_ref v encoder] encodes [v] with the given [encoder] *)
(** {2 Protobuf Decoding} *)
@ -187,3 +234,6 @@ val decode_pb_key_value : Pbrt.Decoder.t -> key_value
val decode_pb_instrumentation_scope : Pbrt.Decoder.t -> instrumentation_scope
(** [decode_pb_instrumentation_scope decoder] decodes a [instrumentation_scope] binary value from [decoder] *)
val decode_pb_entity_ref : Pbrt.Decoder.t -> entity_ref
(** [decode_pb_entity_ref decoder] decodes a [entity_ref] binary value from [decoder] *)

View file

@ -29,7 +29,7 @@ type severity_number =
type log_record = {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 8 fields *)
(** tracking presence for 9 fields *)
mutable time_unix_nano : int64;
mutable observed_time_unix_nano : int64;
mutable severity_number : severity_number;
@ -40,6 +40,7 @@ type log_record = {
mutable flags : int32;
mutable trace_id : bytes;
mutable span_id : bytes;
mutable event_name : string;
}
type scope_logs = {
@ -81,6 +82,7 @@ let default_log_record (): log_record =
flags=0l;
trace_id=Bytes.create 0;
span_id=Bytes.create 0;
event_name="";
}
let default_scope_logs (): scope_logs =
@ -118,6 +120,7 @@ let[@inline] has_log_record_dropped_attributes_count (self:log_record) : bool =
let[@inline] has_log_record_flags (self:log_record) : bool = (Pbrt.Bitfield.get self._presence 5)
let[@inline] has_log_record_trace_id (self:log_record) : bool = (Pbrt.Bitfield.get self._presence 6)
let[@inline] has_log_record_span_id (self:log_record) : bool = (Pbrt.Bitfield.get self._presence 7)
let[@inline] has_log_record_event_name (self:log_record) : bool = (Pbrt.Bitfield.get self._presence 8)
let[@inline] set_log_record_time_unix_nano (self:log_record) (x:int64) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 0); self.time_unix_nano <- x
@ -139,6 +142,8 @@ let[@inline] set_log_record_trace_id (self:log_record) (x:bytes) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 6); self.trace_id <- x
let[@inline] set_log_record_span_id (self:log_record) (x:bytes) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 7); self.span_id <- x
let[@inline] set_log_record_event_name (self:log_record) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 8); self.event_name <- x
let copy_log_record (self:log_record) : log_record =
{ self with time_unix_nano = self.time_unix_nano }
@ -154,6 +159,7 @@ let make_log_record
?(flags:int32 option)
?(trace_id:bytes option)
?(span_id:bytes option)
?(event_name:string option)
() : log_record =
let _res = default_log_record () in
(match time_unix_nano with
@ -184,6 +190,9 @@ let make_log_record
(match span_id with
| None -> ()
| Some v -> set_log_record_span_id _res v);
(match event_name with
| None -> ()
| Some v -> set_log_record_event_name _res v);
_res
let[@inline] has_scope_logs_schema_url (self:scope_logs) : bool = (Pbrt.Bitfield.get self._presence 0)
@ -307,6 +316,8 @@ let rec pp_log_record fmt (v:log_record) =
if not (Pbrt.Bitfield.get v._presence 6) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "span_id" Pbrt.Pp.pp_bytes fmt v.span_id;
if not (Pbrt.Bitfield.get v._presence 7) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "event_name" Pbrt.Pp.pp_string fmt v.event_name;
if not (Pbrt.Bitfield.get v._presence 8) then Format.pp_print_string fmt "(* absent *)";
in
Pbrt.Pp.pp_brk pp_i fmt ()
@ -414,6 +425,10 @@ let rec encode_pb_log_record (v:log_record) encoder =
Pbrt.Encoder.bytes v.span_id encoder;
Pbrt.Encoder.key 10 Pbrt.Bytes encoder;
);
if (Pbrt.Bitfield.get v._presence 8) then (
Pbrt.Encoder.string v.event_name encoder;
Pbrt.Encoder.key 12 Pbrt.Bytes encoder;
);
()
let rec encode_pb_scope_logs (v:scope_logs) encoder =
@ -554,6 +569,11 @@ let rec decode_pb_log_record d =
end
| Some (10, pk) ->
Pbrt.Decoder.unexpected_payload "Message(log_record), field(10)" pk
| Some (12, Pbrt.Bytes) -> begin
set_log_record_event_name v (Pbrt.Decoder.string d);
end
| Some (12, pk) ->
Pbrt.Decoder.unexpected_payload "Message(log_record), field(12)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : log_record)

View file

@ -36,7 +36,7 @@ type severity_number =
type log_record = private {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 8 fields *)
(** tracking presence for 9 fields *)
mutable time_unix_nano : int64;
mutable observed_time_unix_nano : int64;
mutable severity_number : severity_number;
@ -47,6 +47,7 @@ type log_record = private {
mutable flags : int32;
mutable trace_id : bytes;
mutable span_id : bytes;
mutable event_name : string;
}
type scope_logs = private {
@ -109,6 +110,7 @@ val make_log_record :
?flags:int32 ->
?trace_id:bytes ->
?span_id:bytes ->
?event_name:string ->
unit ->
log_record
(** [make_log_record … ()] is a builder for type [log_record] *)
@ -169,6 +171,12 @@ val has_log_record_span_id : log_record -> bool
val set_log_record_span_id : log_record -> bytes -> unit
(** set field span_id in log_record *)
val has_log_record_event_name : log_record -> bool
(** presence of field "event_name" in [log_record] *)
val set_log_record_event_name : log_record -> string -> unit
(** set field event_name in log_record *)
val make_scope_logs :
?scope:Common.instrumentation_scope ->
log_records:log_record list ->

View file

@ -139,6 +139,7 @@ and metric = {
mutable description : string;
mutable unit_ : string;
mutable data : metric_data option;
mutable metadata : Common.key_value list;
}
type scope_metrics = {
@ -294,6 +295,7 @@ let default_metric (): metric =
description="";
unit_="";
data=None;
metadata=[];
}
let default_scope_metrics (): scope_metrics =
@ -789,6 +791,8 @@ let[@inline] set_metric_unit_ (self:metric) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 2); self.unit_ <- x
let[@inline] set_metric_data (self:metric) (x:metric_data) : unit =
self.data <- Some x
let[@inline] set_metric_metadata (self:metric) (x:Common.key_value list) : unit =
self.metadata <- x
let copy_metric (self:metric) : metric =
{ self with name = self.name }
@ -798,6 +802,7 @@ let make_metric
?(description:string option)
?(unit_:string option)
?(data:metric_data option)
~(metadata:Common.key_value list)
() : metric =
let _res = default_metric () in
(match name with
@ -812,6 +817,7 @@ let make_metric
(match data with
| None -> ()
| Some v -> set_metric_data _res v);
set_metric_metadata _res metadata;
_res
let[@inline] has_scope_metrics_schema_url (self:scope_metrics) : bool = (Pbrt.Bitfield.get self._presence 0)
@ -1065,6 +1071,7 @@ and pp_metric fmt (v:metric) =
Pbrt.Pp.pp_record_field ~first:false "unit_" Pbrt.Pp.pp_string fmt v.unit_;
if not (Pbrt.Bitfield.get v._presence 2) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "data" (Pbrt.Pp.pp_option pp_metric_data) fmt v.data;
Pbrt.Pp.pp_record_field ~first:false "metadata" (Pbrt.Pp.pp_list Common.pp_key_value) fmt v.metadata;
in
Pbrt.Pp.pp_brk pp_i fmt ()
@ -1469,6 +1476,10 @@ and encode_pb_metric (v:metric) encoder =
Pbrt.Encoder.nested encode_pb_summary x encoder;
Pbrt.Encoder.key 11 Pbrt.Bytes encoder;
end;
Pbrt.List_util.rev_iter_with (fun x encoder ->
Pbrt.Encoder.nested Common.encode_pb_key_value x encoder;
Pbrt.Encoder.key 12 Pbrt.Bytes encoder;
) v.metadata encoder;
()
let rec encode_pb_scope_metrics (v:scope_metrics) encoder =
@ -2032,6 +2043,8 @@ and decode_pb_metric d =
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
(* put lists in the correct order *)
set_metric_metadata v (List.rev v.metadata);
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
set_metric_name v (Pbrt.Decoder.string d);
@ -2073,6 +2086,11 @@ and decode_pb_metric d =
end
| Some (11, pk) ->
Pbrt.Decoder.unexpected_payload "Message(metric), field(11)" pk
| Some (12, Pbrt.Bytes) -> begin
set_metric_metadata v ((Common.decode_pb_key_value (Pbrt.Decoder.nested d)) :: v.metadata);
end
| Some (12, pk) ->
Pbrt.Decoder.unexpected_payload "Message(metric), field(12)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : metric)

View file

@ -146,6 +146,7 @@ and metric = private {
mutable description : string;
mutable unit_ : string;
mutable data : metric_data option;
mutable metadata : Common.key_value list;
}
type scope_metrics = private {
@ -645,6 +646,7 @@ val make_metric :
?description:string ->
?unit_:string ->
?data:metric_data ->
metadata:Common.key_value list ->
unit ->
metric
(** [make_metric … ()] is a builder for type [metric] *)
@ -672,6 +674,9 @@ val set_metric_unit_ : metric -> string -> unit
val set_metric_data : metric -> metric_data -> unit
(** set field data in metric *)
val set_metric_metadata : metric -> Common.key_value list -> unit
(** set field metadata in metric *)
val make_scope_metrics :
?scope:Common.instrumentation_scope ->
metrics:metric list ->

View file

@ -5,6 +5,7 @@ type resource = {
(** tracking presence for 1 fields *)
mutable attributes : Common.key_value list;
mutable dropped_attributes_count : int32;
mutable entity_refs : Common.entity_ref list;
}
let default_resource (): resource =
@ -12,6 +13,7 @@ let default_resource (): resource =
_presence=Pbrt.Bitfield.empty;
attributes=[];
dropped_attributes_count=0l;
entity_refs=[];
}
@ -23,6 +25,8 @@ let[@inline] set_resource_attributes (self:resource) (x:Common.key_value list) :
self.attributes <- x
let[@inline] set_resource_dropped_attributes_count (self:resource) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 0); self.dropped_attributes_count <- x
let[@inline] set_resource_entity_refs (self:resource) (x:Common.entity_ref list) : unit =
self.entity_refs <- x
let copy_resource (self:resource) : resource =
{ self with attributes = self.attributes }
@ -30,12 +34,14 @@ let copy_resource (self:resource) : resource =
let make_resource
~(attributes:Common.key_value list)
?(dropped_attributes_count:int32 option)
~(entity_refs:Common.entity_ref list)
() : resource =
let _res = default_resource () in
set_resource_attributes _res attributes;
(match dropped_attributes_count with
| None -> ()
| Some v -> set_resource_dropped_attributes_count _res v);
set_resource_entity_refs _res entity_refs;
_res
[@@@ocaml.warning "-23-27-30-39"]
@ -47,6 +53,7 @@ let rec pp_resource fmt (v:resource) =
Pbrt.Pp.pp_record_field ~first:true "attributes" (Pbrt.Pp.pp_list Common.pp_key_value) fmt v.attributes;
Pbrt.Pp.pp_record_field ~first:false "dropped_attributes_count" Pbrt.Pp.pp_int32 fmt v.dropped_attributes_count;
if not (Pbrt.Bitfield.get v._presence 0) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "entity_refs" (Pbrt.Pp.pp_list Common.pp_entity_ref) fmt v.entity_refs;
in
Pbrt.Pp.pp_brk pp_i fmt ()
@ -63,6 +70,10 @@ let rec encode_pb_resource (v:resource) encoder =
Pbrt.Encoder.int32_as_varint v.dropped_attributes_count encoder;
Pbrt.Encoder.key 2 Pbrt.Varint encoder;
);
Pbrt.List_util.rev_iter_with (fun x encoder ->
Pbrt.Encoder.nested Common.encode_pb_entity_ref x encoder;
Pbrt.Encoder.key 3 Pbrt.Bytes encoder;
) v.entity_refs encoder;
()
[@@@ocaml.warning "-23-27-30-39"]
@ -76,6 +87,7 @@ let rec decode_pb_resource d =
match Pbrt.Decoder.key d with
| None -> (
(* put lists in the correct order *)
set_resource_entity_refs v (List.rev v.entity_refs);
set_resource_attributes v (List.rev v.attributes);
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
@ -88,6 +100,11 @@ let rec decode_pb_resource d =
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(resource), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
set_resource_entity_refs v ((Common.decode_pb_entity_ref (Pbrt.Decoder.nested d)) :: v.entity_refs);
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(resource), field(3)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : resource)

View file

@ -12,6 +12,7 @@ type resource = private {
(** tracking presence for 1 fields *)
mutable attributes : Common.key_value list;
mutable dropped_attributes_count : int32;
mutable entity_refs : Common.entity_ref list;
}
@ -26,6 +27,7 @@ val default_resource : unit -> resource
val make_resource :
attributes:Common.key_value list ->
?dropped_attributes_count:int32 ->
entity_refs:Common.entity_ref list ->
unit ->
resource
(** [make_resource … ()] is a builder for type [resource] *)
@ -41,6 +43,9 @@ val has_resource_dropped_attributes_count : resource -> bool
val set_resource_dropped_attributes_count : resource -> int32 -> unit
(** set field dropped_attributes_count in resource *)
val set_resource_entity_refs : resource -> Common.entity_ref list -> unit
(** set field entity_refs in resource *)
(** {2 Formatters} *)

View file

@ -19,12 +19,13 @@ type span_event = {
type span_link = {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 4 fields *)
(** tracking presence for 5 fields *)
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable attributes : Common.key_value list;
mutable dropped_attributes_count : int32;
mutable flags : int32;
}
type status_status_code =
@ -41,11 +42,12 @@ type status = {
type span = {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 11 fields *)
(** tracking presence for 12 fields *)
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable parent_span_id : bytes;
mutable flags : int32;
mutable name : string;
mutable kind : span_span_kind;
mutable start_time_unix_nano : int64;
@ -79,6 +81,12 @@ type traces_data = {
mutable resource_spans : resource_spans list;
}
type span_flags =
| Span_flags_do_not_use
| Span_flags_trace_flags_mask
| Span_flags_context_has_is_remote_mask
| Span_flags_context_is_remote_mask
let default_span_span_kind () = (Span_kind_unspecified:span_span_kind)
let default_span_event (): span_event =
@ -98,6 +106,7 @@ let default_span_link (): span_link =
trace_state="";
attributes=[];
dropped_attributes_count=0l;
flags=0l;
}
let default_status_status_code () = (Status_code_unset:status_status_code)
@ -116,6 +125,7 @@ let default_span (): span =
span_id=Bytes.create 0;
trace_state="";
parent_span_id=Bytes.create 0;
flags=0l;
name="";
kind=default_span_span_kind ();
start_time_unix_nano=0L;
@ -150,6 +160,8 @@ let default_traces_data (): traces_data =
resource_spans=[];
}
let default_span_flags () = (Span_flags_do_not_use:span_flags)
(** {2 Make functions} *)
@ -193,6 +205,7 @@ let[@inline] has_span_link_trace_id (self:span_link) : bool = (Pbrt.Bitfield.get
let[@inline] has_span_link_span_id (self:span_link) : bool = (Pbrt.Bitfield.get self._presence 1)
let[@inline] has_span_link_trace_state (self:span_link) : bool = (Pbrt.Bitfield.get self._presence 2)
let[@inline] has_span_link_dropped_attributes_count (self:span_link) : bool = (Pbrt.Bitfield.get self._presence 3)
let[@inline] has_span_link_flags (self:span_link) : bool = (Pbrt.Bitfield.get self._presence 4)
let[@inline] set_span_link_trace_id (self:span_link) (x:bytes) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 0); self.trace_id <- x
@ -204,6 +217,8 @@ let[@inline] set_span_link_attributes (self:span_link) (x:Common.key_value list)
self.attributes <- x
let[@inline] set_span_link_dropped_attributes_count (self:span_link) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 3); self.dropped_attributes_count <- x
let[@inline] set_span_link_flags (self:span_link) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 4); self.flags <- x
let copy_span_link (self:span_link) : span_link =
{ self with trace_id = self.trace_id }
@ -214,6 +229,7 @@ let make_span_link
?(trace_state:string option)
~(attributes:Common.key_value list)
?(dropped_attributes_count:int32 option)
?(flags:int32 option)
() : span_link =
let _res = default_span_link () in
(match trace_id with
@ -229,6 +245,9 @@ let make_span_link
(match dropped_attributes_count with
| None -> ()
| Some v -> set_span_link_dropped_attributes_count _res v);
(match flags with
| None -> ()
| Some v -> set_span_link_flags _res v);
_res
@ -260,13 +279,14 @@ let[@inline] has_span_trace_id (self:span) : bool = (Pbrt.Bitfield.get self._pre
let[@inline] has_span_span_id (self:span) : bool = (Pbrt.Bitfield.get self._presence 1)
let[@inline] has_span_trace_state (self:span) : bool = (Pbrt.Bitfield.get self._presence 2)
let[@inline] has_span_parent_span_id (self:span) : bool = (Pbrt.Bitfield.get self._presence 3)
let[@inline] has_span_name (self:span) : bool = (Pbrt.Bitfield.get self._presence 4)
let[@inline] has_span_kind (self:span) : bool = (Pbrt.Bitfield.get self._presence 5)
let[@inline] has_span_start_time_unix_nano (self:span) : bool = (Pbrt.Bitfield.get self._presence 6)
let[@inline] has_span_end_time_unix_nano (self:span) : bool = (Pbrt.Bitfield.get self._presence 7)
let[@inline] has_span_dropped_attributes_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 8)
let[@inline] has_span_dropped_events_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 9)
let[@inline] has_span_dropped_links_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 10)
let[@inline] has_span_flags (self:span) : bool = (Pbrt.Bitfield.get self._presence 4)
let[@inline] has_span_name (self:span) : bool = (Pbrt.Bitfield.get self._presence 5)
let[@inline] has_span_kind (self:span) : bool = (Pbrt.Bitfield.get self._presence 6)
let[@inline] has_span_start_time_unix_nano (self:span) : bool = (Pbrt.Bitfield.get self._presence 7)
let[@inline] has_span_end_time_unix_nano (self:span) : bool = (Pbrt.Bitfield.get self._presence 8)
let[@inline] has_span_dropped_attributes_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 9)
let[@inline] has_span_dropped_events_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 10)
let[@inline] has_span_dropped_links_count (self:span) : bool = (Pbrt.Bitfield.get self._presence 11)
let[@inline] set_span_trace_id (self:span) (x:bytes) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 0); self.trace_id <- x
@ -276,26 +296,28 @@ let[@inline] set_span_trace_state (self:span) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 2); self.trace_state <- x
let[@inline] set_span_parent_span_id (self:span) (x:bytes) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 3); self.parent_span_id <- x
let[@inline] set_span_flags (self:span) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 4); self.flags <- x
let[@inline] set_span_name (self:span) (x:string) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 4); self.name <- x
self._presence <- (Pbrt.Bitfield.set self._presence 5); self.name <- x
let[@inline] set_span_kind (self:span) (x:span_span_kind) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 5); self.kind <- x
self._presence <- (Pbrt.Bitfield.set self._presence 6); self.kind <- x
let[@inline] set_span_start_time_unix_nano (self:span) (x:int64) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 6); self.start_time_unix_nano <- x
self._presence <- (Pbrt.Bitfield.set self._presence 7); self.start_time_unix_nano <- x
let[@inline] set_span_end_time_unix_nano (self:span) (x:int64) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 7); self.end_time_unix_nano <- x
self._presence <- (Pbrt.Bitfield.set self._presence 8); self.end_time_unix_nano <- x
let[@inline] set_span_attributes (self:span) (x:Common.key_value list) : unit =
self.attributes <- x
let[@inline] set_span_dropped_attributes_count (self:span) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 8); self.dropped_attributes_count <- x
self._presence <- (Pbrt.Bitfield.set self._presence 9); self.dropped_attributes_count <- x
let[@inline] set_span_events (self:span) (x:span_event list) : unit =
self.events <- x
let[@inline] set_span_dropped_events_count (self:span) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 9); self.dropped_events_count <- x
self._presence <- (Pbrt.Bitfield.set self._presence 10); self.dropped_events_count <- x
let[@inline] set_span_links (self:span) (x:span_link list) : unit =
self.links <- x
let[@inline] set_span_dropped_links_count (self:span) (x:int32) : unit =
self._presence <- (Pbrt.Bitfield.set self._presence 10); self.dropped_links_count <- x
self._presence <- (Pbrt.Bitfield.set self._presence 11); self.dropped_links_count <- x
let[@inline] set_span_status (self:span) (x:status) : unit =
self.status <- Some x
@ -307,6 +329,7 @@ let make_span
?(span_id:bytes option)
?(trace_state:string option)
?(parent_span_id:bytes option)
?(flags:int32 option)
?(name:string option)
?(kind:span_span_kind option)
?(start_time_unix_nano:int64 option)
@ -332,6 +355,9 @@ let make_span
(match parent_span_id with
| None -> ()
| Some v -> set_span_parent_span_id _res v);
(match flags with
| None -> ()
| Some v -> set_span_flags _res v);
(match name with
| None -> ()
| Some v -> set_span_name _res v);
@ -429,6 +455,7 @@ let make_traces_data
set_traces_data_resource_spans _res resource_spans;
_res
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Formatters} *)
@ -465,6 +492,8 @@ let rec pp_span_link fmt (v:span_link) =
Pbrt.Pp.pp_record_field ~first:false "attributes" (Pbrt.Pp.pp_list Common.pp_key_value) fmt v.attributes;
Pbrt.Pp.pp_record_field ~first:false "dropped_attributes_count" Pbrt.Pp.pp_int32 fmt v.dropped_attributes_count;
if not (Pbrt.Bitfield.get v._presence 3) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.flags;
if not (Pbrt.Bitfield.get v._presence 4) then Format.pp_print_string fmt "(* absent *)";
in
Pbrt.Pp.pp_brk pp_i fmt ()
@ -493,23 +522,25 @@ let rec pp_span fmt (v:span) =
if not (Pbrt.Bitfield.get v._presence 2) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "parent_span_id" Pbrt.Pp.pp_bytes fmt v.parent_span_id;
if not (Pbrt.Bitfield.get v._presence 3) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "name" Pbrt.Pp.pp_string fmt v.name;
Pbrt.Pp.pp_record_field ~first:false "flags" Pbrt.Pp.pp_int32 fmt v.flags;
if not (Pbrt.Bitfield.get v._presence 4) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "kind" pp_span_span_kind fmt v.kind;
Pbrt.Pp.pp_record_field ~first:false "name" Pbrt.Pp.pp_string fmt v.name;
if not (Pbrt.Bitfield.get v._presence 5) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.start_time_unix_nano;
Pbrt.Pp.pp_record_field ~first:false "kind" pp_span_span_kind fmt v.kind;
if not (Pbrt.Bitfield.get v._presence 6) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "end_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.end_time_unix_nano;
Pbrt.Pp.pp_record_field ~first:false "start_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.start_time_unix_nano;
if not (Pbrt.Bitfield.get v._presence 7) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "end_time_unix_nano" Pbrt.Pp.pp_int64 fmt v.end_time_unix_nano;
if not (Pbrt.Bitfield.get v._presence 8) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "attributes" (Pbrt.Pp.pp_list Common.pp_key_value) fmt v.attributes;
Pbrt.Pp.pp_record_field ~first:false "dropped_attributes_count" Pbrt.Pp.pp_int32 fmt v.dropped_attributes_count;
if not (Pbrt.Bitfield.get v._presence 8) then Format.pp_print_string fmt "(* absent *)";
if not (Pbrt.Bitfield.get v._presence 9) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "events" (Pbrt.Pp.pp_list pp_span_event) fmt v.events;
Pbrt.Pp.pp_record_field ~first:false "dropped_events_count" Pbrt.Pp.pp_int32 fmt v.dropped_events_count;
if not (Pbrt.Bitfield.get v._presence 9) then Format.pp_print_string fmt "(* absent *)";
if not (Pbrt.Bitfield.get v._presence 10) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "links" (Pbrt.Pp.pp_list pp_span_link) fmt v.links;
Pbrt.Pp.pp_record_field ~first:false "dropped_links_count" Pbrt.Pp.pp_int32 fmt v.dropped_links_count;
if not (Pbrt.Bitfield.get v._presence 10) then Format.pp_print_string fmt "(* absent *)";
if not (Pbrt.Bitfield.get v._presence 11) then Format.pp_print_string fmt "(* absent *)";
Pbrt.Pp.pp_record_field ~first:false "status" (Pbrt.Pp.pp_option pp_status) fmt v.status;
in
Pbrt.Pp.pp_brk pp_i fmt ()
@ -538,6 +569,13 @@ let rec pp_traces_data fmt (v:traces_data) =
in
Pbrt.Pp.pp_brk pp_i fmt ()
let rec pp_span_flags fmt (v:span_flags) =
match v with
| Span_flags_do_not_use -> Format.fprintf fmt "Span_flags_do_not_use"
| Span_flags_trace_flags_mask -> Format.fprintf fmt "Span_flags_trace_flags_mask"
| Span_flags_context_has_is_remote_mask -> Format.fprintf fmt "Span_flags_context_has_is_remote_mask"
| Span_flags_context_is_remote_mask -> Format.fprintf fmt "Span_flags_context_is_remote_mask"
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Protobuf Encoding} *)
@ -591,6 +629,10 @@ let rec encode_pb_span_link (v:span_link) encoder =
Pbrt.Encoder.int32_as_varint v.dropped_attributes_count encoder;
Pbrt.Encoder.key 5 Pbrt.Varint encoder;
);
if (Pbrt.Bitfield.get v._presence 4) then (
Pbrt.Encoder.int32_as_bits32 v.flags encoder;
Pbrt.Encoder.key 6 Pbrt.Bits32 encoder;
);
()
let rec encode_pb_status_status_code (v:status_status_code) encoder =
@ -628,18 +670,22 @@ let rec encode_pb_span (v:span) encoder =
Pbrt.Encoder.key 4 Pbrt.Bytes encoder;
);
if (Pbrt.Bitfield.get v._presence 4) then (
Pbrt.Encoder.int32_as_bits32 v.flags encoder;
Pbrt.Encoder.key 16 Pbrt.Bits32 encoder;
);
if (Pbrt.Bitfield.get v._presence 5) then (
Pbrt.Encoder.string v.name encoder;
Pbrt.Encoder.key 5 Pbrt.Bytes encoder;
);
if (Pbrt.Bitfield.get v._presence 5) then (
if (Pbrt.Bitfield.get v._presence 6) then (
encode_pb_span_span_kind v.kind encoder;
Pbrt.Encoder.key 6 Pbrt.Varint encoder;
);
if (Pbrt.Bitfield.get v._presence 6) then (
if (Pbrt.Bitfield.get v._presence 7) then (
Pbrt.Encoder.int64_as_bits64 v.start_time_unix_nano encoder;
Pbrt.Encoder.key 7 Pbrt.Bits64 encoder;
);
if (Pbrt.Bitfield.get v._presence 7) then (
if (Pbrt.Bitfield.get v._presence 8) then (
Pbrt.Encoder.int64_as_bits64 v.end_time_unix_nano encoder;
Pbrt.Encoder.key 8 Pbrt.Bits64 encoder;
);
@ -647,7 +693,7 @@ let rec encode_pb_span (v:span) encoder =
Pbrt.Encoder.nested Common.encode_pb_key_value x encoder;
Pbrt.Encoder.key 9 Pbrt.Bytes encoder;
) v.attributes encoder;
if (Pbrt.Bitfield.get v._presence 8) then (
if (Pbrt.Bitfield.get v._presence 9) then (
Pbrt.Encoder.int32_as_varint v.dropped_attributes_count encoder;
Pbrt.Encoder.key 10 Pbrt.Varint encoder;
);
@ -655,7 +701,7 @@ let rec encode_pb_span (v:span) encoder =
Pbrt.Encoder.nested encode_pb_span_event x encoder;
Pbrt.Encoder.key 11 Pbrt.Bytes encoder;
) v.events encoder;
if (Pbrt.Bitfield.get v._presence 9) then (
if (Pbrt.Bitfield.get v._presence 10) then (
Pbrt.Encoder.int32_as_varint v.dropped_events_count encoder;
Pbrt.Encoder.key 12 Pbrt.Varint encoder;
);
@ -663,7 +709,7 @@ let rec encode_pb_span (v:span) encoder =
Pbrt.Encoder.nested encode_pb_span_link x encoder;
Pbrt.Encoder.key 13 Pbrt.Bytes encoder;
) v.links encoder;
if (Pbrt.Bitfield.get v._presence 10) then (
if (Pbrt.Bitfield.get v._presence 11) then (
Pbrt.Encoder.int32_as_varint v.dropped_links_count encoder;
Pbrt.Encoder.key 14 Pbrt.Varint encoder;
);
@ -716,6 +762,13 @@ let rec encode_pb_traces_data (v:traces_data) encoder =
) v.resource_spans encoder;
()
let rec encode_pb_span_flags (v:span_flags) encoder =
match v with
| Span_flags_do_not_use -> Pbrt.Encoder.int_as_varint (0) encoder
| Span_flags_trace_flags_mask -> Pbrt.Encoder.int_as_varint 255 encoder
| Span_flags_context_has_is_remote_mask -> Pbrt.Encoder.int_as_varint 256 encoder
| Span_flags_context_is_remote_mask -> Pbrt.Encoder.int_as_varint 512 encoder
[@@@ocaml.warning "-23-27-30-39"]
(** {2 Protobuf Decoding} *)
@ -797,6 +850,11 @@ let rec decode_pb_span_link d =
end
| Some (5, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(5)" pk
| Some (6, Pbrt.Bits32) -> begin
set_span_link_flags v (Pbrt.Decoder.int32_as_bits32 d);
end
| Some (6, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(6)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : span_link)
@ -860,6 +918,11 @@ let rec decode_pb_span d =
end
| Some (4, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(4)" pk
| Some (16, Pbrt.Bits32) -> begin
set_span_flags v (Pbrt.Decoder.int32_as_bits32 d);
end
| Some (16, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(16)" pk
| Some (5, Pbrt.Bytes) -> begin
set_span_name v (Pbrt.Decoder.string d);
end
@ -992,3 +1055,11 @@ let rec decode_pb_traces_data d =
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
(v : traces_data)
let rec decode_pb_span_flags d =
match Pbrt.Decoder.int_as_varint d with
| 0 -> (Span_flags_do_not_use:span_flags)
| 255 -> (Span_flags_trace_flags_mask:span_flags)
| 256 -> (Span_flags_context_has_is_remote_mask:span_flags)
| 512 -> (Span_flags_context_is_remote_mask:span_flags)
| _ -> Pbrt.Decoder.malformed_variant "span_flags"

View file

@ -26,12 +26,13 @@ type span_event = private {
type span_link = private {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 4 fields *)
(** tracking presence for 5 fields *)
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable attributes : Common.key_value list;
mutable dropped_attributes_count : int32;
mutable flags : int32;
}
type status_status_code =
@ -48,11 +49,12 @@ type status = private {
type span = private {
mutable _presence: Pbrt.Bitfield.t;
(** tracking presence for 11 fields *)
(** tracking presence for 12 fields *)
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable parent_span_id : bytes;
mutable flags : int32;
mutable name : string;
mutable kind : span_span_kind;
mutable start_time_unix_nano : int64;
@ -86,6 +88,12 @@ type traces_data = private {
mutable resource_spans : resource_spans list;
}
type span_flags =
| Span_flags_do_not_use
| Span_flags_trace_flags_mask
| Span_flags_context_has_is_remote_mask
| Span_flags_context_is_remote_mask
(** {2 Basic values} *)
@ -116,6 +124,9 @@ val default_resource_spans : unit -> resource_spans
val default_traces_data : unit -> traces_data
(** [default_traces_data ()] is a new empty value for type [traces_data] *)
val default_span_flags : unit -> span_flags
(** [default_span_flags ()] is a new empty value for type [span_flags] *)
(** {2 Make functions} *)
@ -158,6 +169,7 @@ val make_span_link :
?trace_state:string ->
attributes:Common.key_value list ->
?dropped_attributes_count:int32 ->
?flags:int32 ->
unit ->
span_link
(** [make_span_link … ()] is a builder for type [span_link] *)
@ -191,6 +203,12 @@ val has_span_link_dropped_attributes_count : span_link -> bool
val set_span_link_dropped_attributes_count : span_link -> int32 -> unit
(** set field dropped_attributes_count in span_link *)
val has_span_link_flags : span_link -> bool
(** presence of field "flags" in [span_link] *)
val set_span_link_flags : span_link -> int32 -> unit
(** set field flags in span_link *)
val make_status :
?message:string ->
@ -218,6 +236,7 @@ val make_span :
?span_id:bytes ->
?trace_state:string ->
?parent_span_id:bytes ->
?flags:int32 ->
?name:string ->
?kind:span_span_kind ->
?start_time_unix_nano:int64 ->
@ -259,6 +278,12 @@ val has_span_parent_span_id : span -> bool
val set_span_parent_span_id : span -> bytes -> unit
(** set field parent_span_id in span *)
val has_span_flags : span -> bool
(** presence of field "flags" in [span] *)
val set_span_flags : span -> int32 -> unit
(** set field flags in span *)
val has_span_name : span -> bool
(** presence of field "name" in [span] *)
@ -369,6 +394,7 @@ val set_traces_data_resource_spans : traces_data -> resource_spans list -> unit
(** set field resource_spans in traces_data *)
(** {2 Formatters} *)
val pp_span_span_kind : Format.formatter -> span_span_kind -> unit
@ -398,6 +424,9 @@ val pp_resource_spans : Format.formatter -> resource_spans -> unit
val pp_traces_data : Format.formatter -> traces_data -> unit
(** [pp_traces_data v] formats v *)
val pp_span_flags : Format.formatter -> span_flags -> unit
(** [pp_span_flags v] formats v *)
(** {2 Protobuf Encoding} *)
@ -428,6 +457,9 @@ val encode_pb_resource_spans : resource_spans -> Pbrt.Encoder.t -> unit
val encode_pb_traces_data : traces_data -> Pbrt.Encoder.t -> unit
(** [encode_pb_traces_data v encoder] encodes [v] with the given [encoder] *)
val encode_pb_span_flags : span_flags -> Pbrt.Encoder.t -> unit
(** [encode_pb_span_flags v encoder] encodes [v] with the given [encoder] *)
(** {2 Protobuf Decoding} *)
@ -457,3 +489,6 @@ val decode_pb_resource_spans : Pbrt.Decoder.t -> resource_spans
val decode_pb_traces_data : Pbrt.Decoder.t -> traces_data
(** [decode_pb_traces_data decoder] decodes a [traces_data] binary value from [decoder] *)
val decode_pb_span_flags : Pbrt.Decoder.t -> span_flags
(** [decode_pb_span_flags decoder] decodes a [span_flags] binary value from [decoder] *)