mirror of
https://github.com/ocaml-tracing/ocaml-trace.git
synced 2026-03-08 03:47:57 -04:00
remove event for now
This commit is contained in:
parent
5018a9ead7
commit
8e2bb5bc83
3 changed files with 0 additions and 141 deletions
|
|
@ -1,7 +0,0 @@
|
||||||
(library
|
|
||||||
(name trace_event)
|
|
||||||
(public_name trace.event)
|
|
||||||
(synopsis "Turns subscriber callbacks into an event type")
|
|
||||||
(libraries
|
|
||||||
(re_export trace.core)
|
|
||||||
(re_export trace.subscriber)))
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
(** Events.
|
|
||||||
|
|
||||||
Each callback in a subscriber corresponds to an event, which can be for
|
|
||||||
example queued somewhere or batched for further processing. *)
|
|
||||||
|
|
||||||
open Trace_core
|
|
||||||
module Sub = Trace_subscriber
|
|
||||||
|
|
||||||
(** An event with TEF/fuchsia semantics *)
|
|
||||||
type t =
|
|
||||||
| E_tick
|
|
||||||
| E_init of { time_ns: int64 }
|
|
||||||
| E_shutdown of { time_ns: int64 }
|
|
||||||
| E_message of {
|
|
||||||
tid: int;
|
|
||||||
msg: string;
|
|
||||||
time_ns: int64;
|
|
||||||
data: (string * user_data) list;
|
|
||||||
}
|
|
||||||
| E_define_span of {
|
|
||||||
tid: int;
|
|
||||||
name: string;
|
|
||||||
time_ns: int64;
|
|
||||||
id: span;
|
|
||||||
fun_name: string option;
|
|
||||||
data: (string * user_data) list;
|
|
||||||
}
|
|
||||||
| E_exit_span of {
|
|
||||||
id: span;
|
|
||||||
time_ns: int64;
|
|
||||||
}
|
|
||||||
| E_add_data of {
|
|
||||||
id: span;
|
|
||||||
data: (string * user_data) list;
|
|
||||||
}
|
|
||||||
| E_enter_manual_span of {
|
|
||||||
tid: int;
|
|
||||||
name: string;
|
|
||||||
time_ns: int64;
|
|
||||||
id: trace_id;
|
|
||||||
flavor: span_flavor option;
|
|
||||||
fun_name: string option;
|
|
||||||
data: (string * user_data) list;
|
|
||||||
}
|
|
||||||
| E_exit_manual_span of {
|
|
||||||
tid: int;
|
|
||||||
name: string;
|
|
||||||
time_ns: int64;
|
|
||||||
flavor: span_flavor option;
|
|
||||||
data: (string * user_data) list;
|
|
||||||
id: trace_id;
|
|
||||||
}
|
|
||||||
| E_counter of {
|
|
||||||
name: string;
|
|
||||||
tid: int;
|
|
||||||
time_ns: int64;
|
|
||||||
n: float;
|
|
||||||
}
|
|
||||||
| E_name_process of { name: string }
|
|
||||||
| E_name_thread of {
|
|
||||||
tid: int;
|
|
||||||
name: string;
|
|
||||||
}
|
|
||||||
| E_extension_event of {
|
|
||||||
tid: int;
|
|
||||||
time_ns: int64;
|
|
||||||
ext: Trace_core.extension_event;
|
|
||||||
}
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
(** Subscriber that emits events *)
|
|
||||||
|
|
||||||
open Trace_core
|
|
||||||
open Event
|
|
||||||
|
|
||||||
type event_consumer = { on_event: Event.t -> unit } [@@unboxed]
|
|
||||||
(** Callback for events. *)
|
|
||||||
|
|
||||||
open struct
|
|
||||||
(* just use the same ones for everyone *)
|
|
||||||
|
|
||||||
let span_gen = Sub.Span_generator.create ()
|
|
||||||
let trace_id_gen = Sub.Trace_id_8B_generator.create ()
|
|
||||||
end
|
|
||||||
|
|
||||||
module Callbacks : Sub.Callbacks.S with type st = event_consumer = struct
|
|
||||||
type st = event_consumer
|
|
||||||
|
|
||||||
let new_span (_self : st) = Sub.Span_generator.mk_span span_gen
|
|
||||||
let new_trace_id _self = Sub.Trace_id_8B_generator.mk_trace_id trace_id_gen
|
|
||||||
let on_init (self : st) ~time_ns = self.on_event (E_init { time_ns })
|
|
||||||
let on_shutdown (self : st) ~time_ns = self.on_event (E_shutdown { time_ns })
|
|
||||||
|
|
||||||
let on_name_process (self : st) ~time_ns:_ ~tid:_ ~name : unit =
|
|
||||||
self.on_event @@ E_name_process { name }
|
|
||||||
|
|
||||||
let on_name_thread (self : st) ~time_ns:_ ~tid ~name : unit =
|
|
||||||
self.on_event @@ E_name_thread { tid; name }
|
|
||||||
|
|
||||||
let[@inline] on_enter_span (self : st) ~__FUNCTION__:fun_name ~__FILE__:_
|
|
||||||
~__LINE__:_ ~time_ns ~tid ~data ~name span : unit =
|
|
||||||
self.on_event
|
|
||||||
@@ E_define_span { tid; name; time_ns; id = span; fun_name; data }
|
|
||||||
|
|
||||||
let on_exit_span (self : st) ~time_ns ~tid:_ span : unit =
|
|
||||||
self.on_event @@ E_exit_span { id = span; time_ns }
|
|
||||||
|
|
||||||
let on_add_data (self : st) ~data span =
|
|
||||||
if data <> [] then self.on_event @@ E_add_data { id = span; data }
|
|
||||||
|
|
||||||
let on_message (self : st) ~time_ns ~tid ~span:_ ~data msg : unit =
|
|
||||||
self.on_event @@ E_message { tid; time_ns; msg; data }
|
|
||||||
|
|
||||||
let on_counter (self : st) ~time_ns ~tid ~data:_ ~name f : unit =
|
|
||||||
self.on_event @@ E_counter { name; n = f; time_ns; tid }
|
|
||||||
|
|
||||||
let on_enter_manual_span (self : st) ~__FUNCTION__:fun_name ~__FILE__:_
|
|
||||||
~__LINE__:_ ~time_ns ~tid ~parent:_ ~data ~name ~flavor ~trace_id _span :
|
|
||||||
unit =
|
|
||||||
self.on_event
|
|
||||||
@@ E_enter_manual_span
|
|
||||||
{ id = trace_id; time_ns; tid; data; name; fun_name; flavor }
|
|
||||||
|
|
||||||
let on_exit_manual_span (self : st) ~time_ns ~tid ~name ~data ~flavor
|
|
||||||
~trace_id (_ : span) : unit =
|
|
||||||
self.on_event
|
|
||||||
@@ E_exit_manual_span { tid; id = trace_id; name; time_ns; data; flavor }
|
|
||||||
|
|
||||||
let on_extension_event (self : st) ~time_ns ~tid ext : unit =
|
|
||||||
self.on_event @@ E_extension_event { tid; time_ns; ext }
|
|
||||||
end
|
|
||||||
|
|
||||||
(** A subscriber that turns calls into events that are passed to the
|
|
||||||
{! event_consumer} *)
|
|
||||||
let subscriber (consumer : event_consumer) : Sub.t =
|
|
||||||
Sub.Subscriber.Sub { st = consumer; callbacks = (module Callbacks) }
|
|
||||||
Loading…
Add table
Reference in a new issue