ocaml-opentelemetry/src/trace_pb.ml
Simon Cruanes 8b1b6aecf2
update codegenerated protos
this requires ocaml-protoc with support for optionals in proto3,
which is [wip](https://github.com/mransan/ocaml-protoc/pull/184).
However we only extract the protobufs explicitly, not during a regular
build
2022-09-30 13:59:28 -04:00

547 lines
19 KiB
OCaml

[@@@ocaml.warning "-27-30-39"]
type span_event_mutable = {
mutable time_unix_nano : int64;
mutable name : string;
mutable attributes : Common_types.key_value list;
mutable dropped_attributes_count : int32;
}
let default_span_event_mutable () : span_event_mutable = {
time_unix_nano = 0L;
name = "";
attributes = [];
dropped_attributes_count = 0l;
}
type span_link_mutable = {
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable attributes : Common_types.key_value list;
mutable dropped_attributes_count : int32;
}
let default_span_link_mutable () : span_link_mutable = {
trace_id = Bytes.create 0;
span_id = Bytes.create 0;
trace_state = "";
attributes = [];
dropped_attributes_count = 0l;
}
type status_mutable = {
mutable message : string;
mutable code : Trace_types.status_status_code;
}
let default_status_mutable () : status_mutable = {
message = "";
code = Trace_types.default_status_status_code ();
}
type span_mutable = {
mutable trace_id : bytes;
mutable span_id : bytes;
mutable trace_state : string;
mutable parent_span_id : bytes;
mutable name : string;
mutable kind : Trace_types.span_span_kind;
mutable start_time_unix_nano : int64;
mutable end_time_unix_nano : int64;
mutable attributes : Common_types.key_value list;
mutable dropped_attributes_count : int32;
mutable events : Trace_types.span_event list;
mutable dropped_events_count : int32;
mutable links : Trace_types.span_link list;
mutable dropped_links_count : int32;
mutable status : Trace_types.status option;
}
let default_span_mutable () : span_mutable = {
trace_id = Bytes.create 0;
span_id = Bytes.create 0;
trace_state = "";
parent_span_id = Bytes.create 0;
name = "";
kind = Trace_types.default_span_span_kind ();
start_time_unix_nano = 0L;
end_time_unix_nano = 0L;
attributes = [];
dropped_attributes_count = 0l;
events = [];
dropped_events_count = 0l;
links = [];
dropped_links_count = 0l;
status = None;
}
type scope_spans_mutable = {
mutable scope : Common_types.instrumentation_scope option;
mutable spans : Trace_types.span list;
mutable schema_url : string;
}
let default_scope_spans_mutable () : scope_spans_mutable = {
scope = None;
spans = [];
schema_url = "";
}
type resource_spans_mutable = {
mutable resource : Resource_types.resource option;
mutable scope_spans : Trace_types.scope_spans list;
mutable schema_url : string;
}
let default_resource_spans_mutable () : resource_spans_mutable = {
resource = None;
scope_spans = [];
schema_url = "";
}
type traces_data_mutable = {
mutable resource_spans : Trace_types.resource_spans list;
}
let default_traces_data_mutable () : traces_data_mutable = {
resource_spans = [];
}
let rec decode_span_span_kind d =
match Pbrt.Decoder.int_as_varint d with
| 0 -> (Trace_types.Span_kind_unspecified:Trace_types.span_span_kind)
| 1 -> (Trace_types.Span_kind_internal:Trace_types.span_span_kind)
| 2 -> (Trace_types.Span_kind_server:Trace_types.span_span_kind)
| 3 -> (Trace_types.Span_kind_client:Trace_types.span_span_kind)
| 4 -> (Trace_types.Span_kind_producer:Trace_types.span_span_kind)
| 5 -> (Trace_types.Span_kind_consumer:Trace_types.span_span_kind)
| _ -> Pbrt.Decoder.malformed_variant "span_span_kind"
let rec decode_span_event d =
let v = default_span_event_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.attributes <- List.rev v.attributes;
); continue__ := false
| Some (1, Pbrt.Bits64) -> begin
v.time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d;
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_event), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
v.name <- Pbrt.Decoder.string d;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_event), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_event), field(3)" pk
| Some (4, Pbrt.Varint) -> begin
v.dropped_attributes_count <- Pbrt.Decoder.int32_as_varint d;
end
| Some (4, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_event), field(4)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.time_unix_nano = v.time_unix_nano;
Trace_types.name = v.name;
Trace_types.attributes = v.attributes;
Trace_types.dropped_attributes_count = v.dropped_attributes_count;
} : Trace_types.span_event)
let rec decode_span_link d =
let v = default_span_link_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.attributes <- List.rev v.attributes;
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
v.trace_id <- Pbrt.Decoder.bytes d;
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
v.span_id <- Pbrt.Decoder.bytes d;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
v.trace_state <- Pbrt.Decoder.string d;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(3)" pk
| Some (4, Pbrt.Bytes) -> begin
v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes;
end
| Some (4, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(4)" pk
| Some (5, Pbrt.Varint) -> begin
v.dropped_attributes_count <- Pbrt.Decoder.int32_as_varint d;
end
| Some (5, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span_link), field(5)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.trace_id = v.trace_id;
Trace_types.span_id = v.span_id;
Trace_types.trace_state = v.trace_state;
Trace_types.attributes = v.attributes;
Trace_types.dropped_attributes_count = v.dropped_attributes_count;
} : Trace_types.span_link)
let rec decode_status_status_code d =
match Pbrt.Decoder.int_as_varint d with
| 0 -> (Trace_types.Status_code_unset:Trace_types.status_status_code)
| 1 -> (Trace_types.Status_code_ok:Trace_types.status_status_code)
| 2 -> (Trace_types.Status_code_error:Trace_types.status_status_code)
| _ -> Pbrt.Decoder.malformed_variant "status_status_code"
let rec decode_status d =
let v = default_status_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
); continue__ := false
| Some (2, Pbrt.Bytes) -> begin
v.message <- Pbrt.Decoder.string d;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(status), field(2)" pk
| Some (3, Pbrt.Varint) -> begin
v.code <- decode_status_status_code d;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(status), field(3)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.message = v.message;
Trace_types.code = v.code;
} : Trace_types.status)
let rec decode_span d =
let v = default_span_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.links <- List.rev v.links;
v.events <- List.rev v.events;
v.attributes <- List.rev v.attributes;
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
v.trace_id <- Pbrt.Decoder.bytes d;
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
v.span_id <- Pbrt.Decoder.bytes d;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
v.trace_state <- Pbrt.Decoder.string d;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(3)" pk
| Some (4, Pbrt.Bytes) -> begin
v.parent_span_id <- Pbrt.Decoder.bytes d;
end
| Some (4, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(4)" pk
| Some (5, Pbrt.Bytes) -> begin
v.name <- Pbrt.Decoder.string d;
end
| Some (5, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(5)" pk
| Some (6, Pbrt.Varint) -> begin
v.kind <- decode_span_span_kind d;
end
| Some (6, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(6)" pk
| Some (7, Pbrt.Bits64) -> begin
v.start_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d;
end
| Some (7, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(7)" pk
| Some (8, Pbrt.Bits64) -> begin
v.end_time_unix_nano <- Pbrt.Decoder.int64_as_bits64 d;
end
| Some (8, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(8)" pk
| Some (9, Pbrt.Bytes) -> begin
v.attributes <- (Common_pb.decode_key_value (Pbrt.Decoder.nested d)) :: v.attributes;
end
| Some (9, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(9)" pk
| Some (10, Pbrt.Varint) -> begin
v.dropped_attributes_count <- Pbrt.Decoder.int32_as_varint d;
end
| Some (10, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(10)" pk
| Some (11, Pbrt.Bytes) -> begin
v.events <- (decode_span_event (Pbrt.Decoder.nested d)) :: v.events;
end
| Some (11, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(11)" pk
| Some (12, Pbrt.Varint) -> begin
v.dropped_events_count <- Pbrt.Decoder.int32_as_varint d;
end
| Some (12, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(12)" pk
| Some (13, Pbrt.Bytes) -> begin
v.links <- (decode_span_link (Pbrt.Decoder.nested d)) :: v.links;
end
| Some (13, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(13)" pk
| Some (14, Pbrt.Varint) -> begin
v.dropped_links_count <- Pbrt.Decoder.int32_as_varint d;
end
| Some (14, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(14)" pk
| Some (15, Pbrt.Bytes) -> begin
v.status <- Some (decode_status (Pbrt.Decoder.nested d));
end
| Some (15, pk) ->
Pbrt.Decoder.unexpected_payload "Message(span), field(15)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.trace_id = v.trace_id;
Trace_types.span_id = v.span_id;
Trace_types.trace_state = v.trace_state;
Trace_types.parent_span_id = v.parent_span_id;
Trace_types.name = v.name;
Trace_types.kind = v.kind;
Trace_types.start_time_unix_nano = v.start_time_unix_nano;
Trace_types.end_time_unix_nano = v.end_time_unix_nano;
Trace_types.attributes = v.attributes;
Trace_types.dropped_attributes_count = v.dropped_attributes_count;
Trace_types.events = v.events;
Trace_types.dropped_events_count = v.dropped_events_count;
Trace_types.links = v.links;
Trace_types.dropped_links_count = v.dropped_links_count;
Trace_types.status = v.status;
} : Trace_types.span)
let rec decode_scope_spans d =
let v = default_scope_spans_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.spans <- List.rev v.spans;
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
v.scope <- Some (Common_pb.decode_instrumentation_scope (Pbrt.Decoder.nested d));
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(scope_spans), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
v.spans <- (decode_span (Pbrt.Decoder.nested d)) :: v.spans;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(scope_spans), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
v.schema_url <- Pbrt.Decoder.string d;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(scope_spans), field(3)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.scope = v.scope;
Trace_types.spans = v.spans;
Trace_types.schema_url = v.schema_url;
} : Trace_types.scope_spans)
let rec decode_resource_spans d =
let v = default_resource_spans_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.scope_spans <- List.rev v.scope_spans;
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
v.resource <- Some (Resource_pb.decode_resource (Pbrt.Decoder.nested d));
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(resource_spans), field(1)" pk
| Some (2, Pbrt.Bytes) -> begin
v.scope_spans <- (decode_scope_spans (Pbrt.Decoder.nested d)) :: v.scope_spans;
end
| Some (2, pk) ->
Pbrt.Decoder.unexpected_payload "Message(resource_spans), field(2)" pk
| Some (3, Pbrt.Bytes) -> begin
v.schema_url <- Pbrt.Decoder.string d;
end
| Some (3, pk) ->
Pbrt.Decoder.unexpected_payload "Message(resource_spans), field(3)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.resource = v.resource;
Trace_types.scope_spans = v.scope_spans;
Trace_types.schema_url = v.schema_url;
} : Trace_types.resource_spans)
let rec decode_traces_data d =
let v = default_traces_data_mutable () in
let continue__= ref true in
while !continue__ do
match Pbrt.Decoder.key d with
| None -> (
v.resource_spans <- List.rev v.resource_spans;
); continue__ := false
| Some (1, Pbrt.Bytes) -> begin
v.resource_spans <- (decode_resource_spans (Pbrt.Decoder.nested d)) :: v.resource_spans;
end
| Some (1, pk) ->
Pbrt.Decoder.unexpected_payload "Message(traces_data), field(1)" pk
| Some (_, payload_kind) -> Pbrt.Decoder.skip d payload_kind
done;
({
Trace_types.resource_spans = v.resource_spans;
} : Trace_types.traces_data)
let rec encode_span_span_kind (v:Trace_types.span_span_kind) encoder =
match v with
| Trace_types.Span_kind_unspecified -> Pbrt.Encoder.int_as_varint (0) encoder
| Trace_types.Span_kind_internal -> Pbrt.Encoder.int_as_varint 1 encoder
| Trace_types.Span_kind_server -> Pbrt.Encoder.int_as_varint 2 encoder
| Trace_types.Span_kind_client -> Pbrt.Encoder.int_as_varint 3 encoder
| Trace_types.Span_kind_producer -> Pbrt.Encoder.int_as_varint 4 encoder
| Trace_types.Span_kind_consumer -> Pbrt.Encoder.int_as_varint 5 encoder
let rec encode_span_event (v:Trace_types.span_event) encoder =
Pbrt.Encoder.key (1, Pbrt.Bits64) encoder;
Pbrt.Encoder.int64_as_bits64 v.Trace_types.time_unix_nano encoder;
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.name encoder;
List.iter (fun x ->
Pbrt.Encoder.key (3, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder;
) v.Trace_types.attributes;
Pbrt.Encoder.key (4, Pbrt.Varint) encoder;
Pbrt.Encoder.int32_as_varint v.Trace_types.dropped_attributes_count encoder;
()
let rec encode_span_link (v:Trace_types.span_link) encoder =
Pbrt.Encoder.key (1, Pbrt.Bytes) encoder;
Pbrt.Encoder.bytes v.Trace_types.trace_id encoder;
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.bytes v.Trace_types.span_id encoder;
Pbrt.Encoder.key (3, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.trace_state encoder;
List.iter (fun x ->
Pbrt.Encoder.key (4, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder;
) v.Trace_types.attributes;
Pbrt.Encoder.key (5, Pbrt.Varint) encoder;
Pbrt.Encoder.int32_as_varint v.Trace_types.dropped_attributes_count encoder;
()
let rec encode_status_status_code (v:Trace_types.status_status_code) encoder =
match v with
| Trace_types.Status_code_unset -> Pbrt.Encoder.int_as_varint (0) encoder
| Trace_types.Status_code_ok -> Pbrt.Encoder.int_as_varint 1 encoder
| Trace_types.Status_code_error -> Pbrt.Encoder.int_as_varint 2 encoder
let rec encode_status (v:Trace_types.status) encoder =
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.message encoder;
Pbrt.Encoder.key (3, Pbrt.Varint) encoder;
encode_status_status_code v.Trace_types.code encoder;
()
let rec encode_span (v:Trace_types.span) encoder =
Pbrt.Encoder.key (1, Pbrt.Bytes) encoder;
Pbrt.Encoder.bytes v.Trace_types.trace_id encoder;
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.bytes v.Trace_types.span_id encoder;
Pbrt.Encoder.key (3, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.trace_state encoder;
Pbrt.Encoder.key (4, Pbrt.Bytes) encoder;
Pbrt.Encoder.bytes v.Trace_types.parent_span_id encoder;
Pbrt.Encoder.key (5, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.name encoder;
Pbrt.Encoder.key (6, Pbrt.Varint) encoder;
encode_span_span_kind v.Trace_types.kind encoder;
Pbrt.Encoder.key (7, Pbrt.Bits64) encoder;
Pbrt.Encoder.int64_as_bits64 v.Trace_types.start_time_unix_nano encoder;
Pbrt.Encoder.key (8, Pbrt.Bits64) encoder;
Pbrt.Encoder.int64_as_bits64 v.Trace_types.end_time_unix_nano encoder;
List.iter (fun x ->
Pbrt.Encoder.key (9, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (Common_pb.encode_key_value x) encoder;
) v.Trace_types.attributes;
Pbrt.Encoder.key (10, Pbrt.Varint) encoder;
Pbrt.Encoder.int32_as_varint v.Trace_types.dropped_attributes_count encoder;
List.iter (fun x ->
Pbrt.Encoder.key (11, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_span_event x) encoder;
) v.Trace_types.events;
Pbrt.Encoder.key (12, Pbrt.Varint) encoder;
Pbrt.Encoder.int32_as_varint v.Trace_types.dropped_events_count encoder;
List.iter (fun x ->
Pbrt.Encoder.key (13, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_span_link x) encoder;
) v.Trace_types.links;
Pbrt.Encoder.key (14, Pbrt.Varint) encoder;
Pbrt.Encoder.int32_as_varint v.Trace_types.dropped_links_count encoder;
begin match v.Trace_types.status with
| Some x ->
Pbrt.Encoder.key (15, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_status x) encoder;
| None -> ();
end;
()
let rec encode_scope_spans (v:Trace_types.scope_spans) encoder =
begin match v.Trace_types.scope with
| Some x ->
Pbrt.Encoder.key (1, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (Common_pb.encode_instrumentation_scope x) encoder;
| None -> ();
end;
List.iter (fun x ->
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_span x) encoder;
) v.Trace_types.spans;
Pbrt.Encoder.key (3, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.schema_url encoder;
()
let rec encode_resource_spans (v:Trace_types.resource_spans) encoder =
begin match v.Trace_types.resource with
| Some x ->
Pbrt.Encoder.key (1, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (Resource_pb.encode_resource x) encoder;
| None -> ();
end;
List.iter (fun x ->
Pbrt.Encoder.key (2, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_scope_spans x) encoder;
) v.Trace_types.scope_spans;
Pbrt.Encoder.key (3, Pbrt.Bytes) encoder;
Pbrt.Encoder.string v.Trace_types.schema_url encoder;
()
let rec encode_traces_data (v:Trace_types.traces_data) encoder =
List.iter (fun x ->
Pbrt.Encoder.key (1, Pbrt.Bytes) encoder;
Pbrt.Encoder.nested (encode_resource_spans x) encoder;
) v.Trace_types.resource_spans;
()