mirror of
https://github.com/ocaml-tracing/ocaml-trace.git
synced 2026-03-08 03:47:57 -04:00
fix fuchsia and tef backends to use trace_id
This commit is contained in:
parent
5b83834af5
commit
2a866e60f8
2 changed files with 22 additions and 16 deletions
|
|
@ -8,7 +8,8 @@ type t = {
|
|||
pid: int;
|
||||
buf_chain: Buf_chain.t;
|
||||
exporter: Exporter.t;
|
||||
span_gen: Sub.Span_generator.t;
|
||||
span_id_gen: Sub.Span_id_generator.t;
|
||||
trace_id_gen: Sub.Trace_id_generator.t;
|
||||
}
|
||||
(** Subscriber state *)
|
||||
|
||||
|
|
@ -60,11 +61,13 @@ let create ?(buf_pool = Buf_pool.create ()) ~pid ~exporter () : t =
|
|||
buf_chain;
|
||||
exporter;
|
||||
pid;
|
||||
span_gen = Sub.Span_generator.create ();
|
||||
span_id_gen = Sub.Span_id_generator.create ();
|
||||
trace_id_gen = Sub.Trace_id_generator.create ();
|
||||
}
|
||||
|
||||
open struct
|
||||
let new_span_id (self : t) = Sub.Span_generator.mk_span self.span_gen
|
||||
let new_span_id (self : t) = Sub.Span_id_generator.gen self.span_id_gen
|
||||
let new_trace_id self = Sub.Trace_id_generator.gen self.trace_id_gen
|
||||
|
||||
let on_init (self : t) ~time_ns:_ =
|
||||
Writer.Metadata.Magic_record.encode self.buf_chain;
|
||||
|
|
@ -107,7 +110,7 @@ open struct
|
|||
Event.Async_begin.encode self.buf_chain ~name
|
||||
~args:(args_of_user_data data)
|
||||
~t_ref:(Thread_ref.inline ~pid:self.pid ~tid)
|
||||
~time_ns ~async_id:0L ());
|
||||
~time_ns ~async_id:span.trace_id ());
|
||||
write_ready_ self
|
||||
|
||||
let on_exit_span (self : t) ~time_ns:end_time_ns ~tid:_
|
||||
|
|
@ -129,7 +132,7 @@ open struct
|
|||
Event.Async_end.encode self.buf_chain ~name
|
||||
~args:(args_of_user_data data)
|
||||
~t_ref:(Thread_ref.inline ~pid:self.pid ~tid)
|
||||
~time_ns:end_time_ns ~async_id:0L ());
|
||||
~time_ns:end_time_ns ~async_id:span.trace_id ());
|
||||
write_ready_ self
|
||||
|
||||
let on_message (self : t) ~time_ns ~tid ~span:_ ~params:_ ~data msg : unit =
|
||||
|
|
@ -156,8 +159,8 @@ open struct
|
|||
end
|
||||
|
||||
let sub_callbacks : _ Sub.Callbacks.t =
|
||||
Sub.Callbacks.make ~new_span_id ~on_init ~on_shutdown ~on_enter_span
|
||||
~on_exit_span ~on_message ~on_counter ~on_extension_event ()
|
||||
Sub.Callbacks.make ~new_span_id ~new_trace_id ~on_init ~on_shutdown
|
||||
~on_enter_span ~on_exit_span ~on_message ~on_counter ~on_extension_event ()
|
||||
|
||||
let subscriber (self : t) : Sub.t =
|
||||
Sub.Subscriber.Sub { st = self; callbacks = sub_callbacks }
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ type t = {
|
|||
pid: int;
|
||||
buf_pool: Buf_pool.t;
|
||||
exporter: Exporter.t;
|
||||
span_gen: Sub.Span_generator.t;
|
||||
span_id_gen: Sub.Span_id_generator.t;
|
||||
trace_id_gen: Sub.Trace_id_generator.t;
|
||||
}
|
||||
(** Subscriber state *)
|
||||
|
||||
|
|
@ -78,13 +79,15 @@ let create ?(buf_pool = Buf_pool.create ()) ~pid ~exporter () : t =
|
|||
exporter;
|
||||
buf_pool;
|
||||
pid;
|
||||
span_gen = Sub.Span_generator.create ();
|
||||
span_id_gen = Sub.Span_id_generator.create ();
|
||||
trace_id_gen = Sub.Trace_id_generator.create ();
|
||||
}
|
||||
|
||||
open struct
|
||||
type st = t
|
||||
|
||||
let new_span_id (self : st) = Sub.Span_generator.mk_span self.span_gen
|
||||
let new_span_id (self : st) = Sub.Span_id_generator.gen self.span_id_gen
|
||||
let new_trace_id (self : st) = Sub.Trace_id_generator.gen self.trace_id_gen
|
||||
let on_init _ ~time_ns:_ = ()
|
||||
let on_shutdown (self : st) ~time_ns:_ = close self
|
||||
|
||||
|
|
@ -101,8 +104,8 @@ open struct
|
|||
let time_us = time_us_of_time_ns time_ns in
|
||||
let data = add_fun_name_ span.__FUNCTION__ data in
|
||||
let@ buf = Rpool.with_ self.buf_pool in
|
||||
Writer.emit_begin buf ~pid:self.pid ~tid ~name ~id:42L ~ts:time_us
|
||||
~args:data ~flavor:span.flavor;
|
||||
Writer.emit_begin buf ~pid:self.pid ~tid ~name ~id:span.trace_id
|
||||
~ts:time_us ~args:data ~flavor:span.flavor;
|
||||
self.exporter.on_json buf
|
||||
| `Sync -> () (* done at exit *)
|
||||
|
||||
|
|
@ -118,8 +121,8 @@ open struct
|
|||
Writer.emit_duration_event buf ~pid:self.pid ~tid ~name
|
||||
~start:start_time_us ~end_:exit_time_us ~args:data
|
||||
| `Async ->
|
||||
Writer.emit_end buf ~pid:self.pid ~tid ~name ~id:42L ~ts:exit_time_us
|
||||
~flavor ~args:data);
|
||||
Writer.emit_end buf ~pid:self.pid ~tid ~name ~id:span.trace_id
|
||||
~ts:exit_time_us ~flavor ~args:data);
|
||||
|
||||
self.exporter.on_json buf
|
||||
|
||||
|
|
@ -154,8 +157,8 @@ open struct
|
|||
end
|
||||
|
||||
let sub_callbacks : _ Sub.Callbacks.t =
|
||||
Sub.Callbacks.make ~new_span_id ~on_init ~on_shutdown ~on_enter_span
|
||||
~on_exit_span ~on_message ~on_counter ~on_extension_event ()
|
||||
Sub.Callbacks.make ~new_span_id ~new_trace_id ~on_init ~on_shutdown
|
||||
~on_enter_span ~on_exit_span ~on_message ~on_counter ~on_extension_event ()
|
||||
|
||||
let subscriber (self : t) : Sub.t =
|
||||
Sub.Subscriber.Sub { st = self; callbacks = sub_callbacks }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue