diff --git a/trace-fuchsia/Trace_fuchsia_write/Argument/index.html b/trace-fuchsia/Trace_fuchsia_write/Argument/index.html new file mode 100644 index 0000000..480eeaf --- /dev/null +++ b/trace-fuchsia/Trace_fuchsia_write/Argument/index.html @@ -0,0 +1,19 @@ + +
Trace_fuchsia_write.Argumenttype 'a t = string * [< user_data | `Kid of int ] as 'aval size_word :
+ [< `Bool of bool & 'a
+ | `Float of float & 'b
+ | `Int of int
+ | `Kid of int & 'c
+ | `None
+ | `String of string ]
+ t ->
+ intTrace_fuchsia_write.Argumentstype 'a t = 'a Argument.t listval len :
+ [< `Bool of bool
+ | `Float of float
+ | `Int of int
+ | `Kid of int
+ | `None
+ | `String of string ]
+ t ->
+ intval check_valid :
+ [< `Bool of bool
+ | `Float of float
+ | `Int of int
+ | `Kid of int
+ | `None
+ | `String of string ]
+ t ->
+ unitval size_word :
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ t ->
+ intTrace_fuchsia_write.Bufval empty : tval create : int -> tval clear : t -> unitval available : t -> intval size : t -> intval add_i64 : t -> int64 -> unitval add_string : t -> string -> unitval to_string : t -> stringBuf_pool.List_with_lenTrace_fuchsia_write.Buf_poolEvent.Async_begintype=5
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ async_id:int ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Async_endtype=7
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ async_id:int ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Countertype=1
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Duration_begintype=2
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Duration_completetype=4
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ end_time_ns:int64 ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Duration_endtype=3
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitEvent.Instanttype=0
val size_word :
+ name:string ->
+ t_ref:Thread_ref.t ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval encode :
+ Output.t ->
+ name:string ->
+ t_ref:Thread_ref.t ->
+ time_ns:int64 ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitTrace_fuchsia_write.Eventrecord type = 4
module Instant : sig ... endtype=0
module Counter : sig ... endtype=1
module Duration_begin : sig ... endtype=2
module Duration_end : sig ... endtype=3
module Duration_complete : sig ... endtype=4
module Async_begin : sig ... endtype=5
module Async_end : sig ... endtype=7
Trace_fuchsia_write.I64include module type of struct include Stdlib.Int64 endTrace_fuchsia_write.Kernel_objectrecord type = 7
val size_word :
+ name:string ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd
+ | `Float of float & 'e & 'f & 'g & 'h
+ | `Int of int
+ | `Kid of int & 'i & 'j & 'k & 'l
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ intval ty_process : tyval ty_thread : tyval encode :
+ Output.t ->
+ name:string ->
+ ty:ty ->
+ kid:int ->
+ args:
+ [< `Bool of bool & 'a & 'b & 'c & 'd & 'e & 'f & 'g
+ | `Float of float & 'h & 'i & 'j & 'k & 'l & 'm & 'n
+ | `Int of int
+ | `Kid of int & 'o & 'p & 'q & 'r & 's & 't & 'u
+ | `None
+ | `String of string ]
+ Arguments.t ->
+ unit ->
+ unitMetadata.Initialization_recordval encode : Output.t -> ticks_per_secs:int64 -> unit -> unitMetadata.Magic_recordFirst record in the trace
Metadata.Provider_infoval encode : Output.t -> id:int -> name:string -> unit -> unitMetadata.Provider_sectionMetadata.Trace_infoTrace_fuchsia_write.Metadatarecord type = 0
module Magic_record : sig ... endFirst record in the trace
module Initialization_record : sig ... endmodule Provider_info : sig ... endmodule Provider_section : sig ... endmodule Trace_info : sig ... endTrace_fuchsia_write.Outputval create : buf_pool:Buf_pool.t -> send_buf:(Buf.t -> unit) -> unit -> tval flush : t -> unitval into_buffer : buf_pool:Buf_pool.t -> Stdlib.Buffer.t -> tval dispose : t -> unitTrace_fuchsia_write.Str_refval inline : int -> tTrace_fuchsia_write.Thread_recordrecord type = 3
val encode : Output.t -> as_ref:int -> pid:int -> tid:int -> unit -> unitRecord that Thread_ref.ref as_ref represents the pair pid, tid
Trace_fuchsia_write.Thread_refval inline : pid:int -> tid:int -> tval ref : int -> tval size_word : t -> intval as_i8 : t -> int8-bit int for the reference
Trace_fuchsia_write.Utilwith_span ~__FILE__ ~__LINE__ name f enters a new span sp, and calls f sp. sp might be a dummy span if no collector is installed. When f sp returns or raises, the span sp is exited.
This is the recommended way to instrument most code.
NOTE an important restriction is that this is only supposed to work for synchronous, direct style code. Monadic concurrency, Effect-based fibers, etc. might not play well with this style of spans on some or all backends. If you use cooperative concurrency, see enter_manual_span.
with_span ~__FILE__ ~__LINE__ name f enters a new span sp, and calls f sp. sp might be a dummy span if no collector is installed. When f sp returns or raises, the span sp is exited.
This is the recommended way to instrument most code.
NOTE an important restriction is that this is only supposed to work for synchronous, direct style code. Monadic concurrency, Effect-based fibers, etc. might not play well with this style of spans on some or all backends.
val exit_span : span -> unitAdd structured data to the given active span (see with_span). Behavior is not specified if the span has been exited.
val enter_manual_sub_span :
- parent:explicit_span ->
- ?flavor:[ `Sync | `Async ] ->
- ?__FUNCTION__:string ->
- __FILE__:string ->
- __LINE__:int ->
- ?data:(unit -> (string * user_data) list) ->
- string ->
- explicit_spanLike with_span but the caller is responsible for obtaining the parent span from their own caller, and carry the resulting explicit_span to the matching exit_manual_span.
val enter_manual_toplevel_span :
- ?flavor:[ `Sync | `Async ] ->
- ?__FUNCTION__:string ->
- __FILE__:string ->
- __LINE__:int ->
- ?data:(unit -> (string * user_data) list) ->
- string ->
- explicit_spanLike with_span but the caller is responsible for carrying this explicit_span around until it's exited with exit_manual_span. The span can be used as a parent in enter_manual_sub_span.
val exit_manual_span : explicit_span -> unitExit an explicit span. This can be on another thread, in a fiber or lightweight thread, etc. and will be supported by backends nonetheless. The span can be obtained via enter_manual_sub_span or enter_manual_toplevel_span.
val add_data_to_manual_span :
- explicit_span ->
- (string * user_data) list ->
- unitadd_data_explicit esp data adds data to the span esp. The behavior is not specified is the span has been exited already.
val message :
+ spanval exit_span : span -> unitAdd structured data to the given active span (see with_span). Behavior is not specified if the span has been exited.
val message :
?span:span ->
?data:(unit -> (string * user_data) list) ->
string ->
diff --git a/trace/Trace_core/Collector/index.html b/trace/Trace_core/Collector/index.html
new file mode 100644
index 0000000..015d582
--- /dev/null
+++ b/trace/Trace_core/Collector/index.html
@@ -0,0 +1,2 @@
+
+Collector (trace.Trace_core.Collector) Module Trace_core.Collector
A global collector.
The collector, if present, is responsible for collecting messages and spans, and storing them, recording them, forward them, or offering them to other services and processes.
module type S = sig ... endSignature for a collector.
\ No newline at end of file
diff --git a/trace/Trace_core/Collector/module-type-S/index.html b/trace/Trace_core/Collector/module-type-S/index.html
new file mode 100644
index 0000000..ec6b838
--- /dev/null
+++ b/trace/Trace_core/Collector/module-type-S/index.html
@@ -0,0 +1,71 @@
+
+S (trace.Trace_core.Collector.S) Module type Collector.S
Signature for a collector.
This is only relevant to implementors of tracing backends; to instrument your code you only need to look at the Trace module.
val with_span :
+ __FUNCTION__:string option ->
+ __FILE__:string ->
+ __LINE__:int ->
+ data:
+ (string
+ * [ `Int of int
+ | `String of string
+ | `Bool of bool
+ | `Float of float
+ | `None ])
+ list ->
+ string ->
+ (int64 -> 'a) ->
+ 'aRun the function in a new span.
This replaces the previous enter_span and exit_span which were too flexible to be efficient to implement in async contexts.
val enter_span :
+ __FUNCTION__:string option ->
+ __FILE__:string ->
+ __LINE__:int ->
+ data:
+ (string
+ * [ `Int of int
+ | `String of string
+ | `Bool of bool
+ | `Float of float
+ | `None ])
+ list ->
+ string ->
+ int64Enter a new implicit span. For many uses cases, with_span will be easier to use.
Exit span. This should be called on the same thread as the corresponding enter_span, and nest properly with other calls to enter/exit_span and with_span.
val add_data_to_span :
+ int64 ->
+ (string
+ * [ `Int of int
+ | `String of string
+ | `Bool of bool
+ | `Float of float
+ | `None ])
+ list ->
+ unit0.4
val message :
+ ?span:int64 ->
+ data:
+ (string
+ * [ `Int of int
+ | `String of string
+ | `Bool of bool
+ | `Float of float
+ | `None ])
+ list ->
+ string ->
+ unitEmit a message with associated metadata.
val counter_int :
+ data:
+ (string
+ * [ `Int of int
+ | `String of string
+ | `Bool of bool
+ | `Float of float
+ | `None ])
+ list ->
+ string ->
+ int ->
+ unitInteger counter.
\ No newline at end of file
diff --git a/trace/Trace_core/Meta_map/Key/index.html b/trace/Trace_core/Meta_map/Key/index.html
new file mode 100644
index 0000000..727dd7f
--- /dev/null
+++ b/trace/Trace_core/Meta_map/Key/index.html
@@ -0,0 +1,2 @@
+
+Key (trace.Trace_core.Meta_map.Key) Module Meta_map.Key
Keys with a type witness.
A key of type 'a t is used to access the portion of the map or table that associates keys of type 'a to values.
val create : unit -> 'a tMake a new key. This is generative, so calling create () twice with the same return type will produce incompatible keys that cannot see each other's bindings.
\ No newline at end of file
diff --git a/trace/Trace_core/Meta_map/index.html b/trace/Trace_core/Meta_map/index.html
new file mode 100644
index 0000000..27abef0
--- /dev/null
+++ b/trace/Trace_core/Meta_map/index.html
@@ -0,0 +1,2 @@
+
+Meta_map (trace.Trace_core.Meta_map) Module Trace_core.Meta_map
Associative containers with Heterogeneous Values
module Key : sig ... endKeys with a type witness.
Immutable map from Key.t to values
val empty : tval length : t -> intval cardinal : t -> int
\ No newline at end of file
diff --git a/trace/Trace_core/index.html b/trace/Trace_core/index.html
index 5b1473a..584f858 100644
--- a/trace/Trace_core/index.html
+++ b/trace/Trace_core/index.html
@@ -6,31 +6,13 @@
?data:(unit -> (string * user_data) list) ->
string ->
(span -> 'a) ->
- 'awith_span ~__FILE__ ~__LINE__ name f enters a new span sp, and calls f sp. sp might be a dummy span if no collector is installed. When f sp returns or raises, the span sp is exited.
This is the recommended way to instrument most code.
NOTE an important restriction is that this is only supposed to work for synchronous, direct style code. Monadic concurrency, Effect-based fibers, etc. might not play well with this style of spans on some or all backends. If you use cooperative concurrency, see enter_manual_span.
with_span ~__FILE__ ~__LINE__ name f enters a new span sp, and calls f sp. sp might be a dummy span if no collector is installed. When f sp returns or raises, the span sp is exited.
This is the recommended way to instrument most code.
NOTE an important restriction is that this is only supposed to work for synchronous, direct style code. Monadic concurrency, Effect-based fibers, etc. might not play well with this style of spans on some or all backends.
val exit_span : span -> unitAdd structured data to the given active span (see with_span). Behavior is not specified if the span has been exited.
val enter_manual_sub_span :
- parent:explicit_span ->
- ?flavor:[ `Sync | `Async ] ->
- ?__FUNCTION__:string ->
- __FILE__:string ->
- __LINE__:int ->
- ?data:(unit -> (string * user_data) list) ->
- string ->
- explicit_spanLike with_span but the caller is responsible for obtaining the parent span from their own caller, and carry the resulting explicit_span to the matching exit_manual_span.
val enter_manual_toplevel_span :
- ?flavor:[ `Sync | `Async ] ->
- ?__FUNCTION__:string ->
- __FILE__:string ->
- __LINE__:int ->
- ?data:(unit -> (string * user_data) list) ->
- string ->
- explicit_spanLike with_span but the caller is responsible for carrying this explicit_span around until it's exited with exit_manual_span. The span can be used as a parent in enter_manual_sub_span.
val exit_manual_span : explicit_span -> unitExit an explicit span. This can be on another thread, in a fiber or lightweight thread, etc. and will be supported by backends nonetheless. The span can be obtained via enter_manual_sub_span or enter_manual_toplevel_span.
val add_data_to_manual_span :
- explicit_span ->
- (string * user_data) list ->
- unitadd_data_explicit esp data adds data to the span esp. The behavior is not specified is the span has been exited already.
val message :
+ spanval exit_span : span -> unitAdd structured data to the given active span (see with_span). Behavior is not specified if the span has been exited.
val message :
?span:span ->
?data:(unit -> (string * user_data) list) ->
string ->
diff --git a/trace/Trace_private_util/B_queue/index.html b/trace/Trace_private_util/B_queue/index.html
new file mode 100644
index 0000000..193dbc8
--- /dev/null
+++ b/trace/Trace_private_util/B_queue/index.html
@@ -0,0 +1,2 @@
+
+B_queue (trace.Trace_private_util.B_queue) Module Trace_private_util.B_queue
Basic Blocking Queue
val create : unit -> _ tval push : 'a t -> 'a -> unitpush q x pushes x into q, and returns ().
val pop_all : 'a t -> 'a listpop_all bq returns all items presently in bq, in the same order, and clears bq. It blocks if no element is in bq.
val close : _ t -> unitClose the queue, meaning there won't be any more push allowed.
\ No newline at end of file
diff --git a/trace/Trace_private_util/Domain_util/index.html b/trace/Trace_private_util/Domain_util/index.html
new file mode 100644
index 0000000..2448442
--- /dev/null
+++ b/trace/Trace_private_util/Domain_util/index.html
@@ -0,0 +1,2 @@
+
+Domain_util (trace.Trace_private_util.Domain_util) Module Trace_private_util.Domain_util
\ No newline at end of file
diff --git a/trace/Trace_private_util/Mpsc_bag/index.html b/trace/Trace_private_util/Mpsc_bag/index.html
new file mode 100644
index 0000000..0d8f1c5
--- /dev/null
+++ b/trace/Trace_private_util/Mpsc_bag/index.html
@@ -0,0 +1,2 @@
+
+Mpsc_bag (trace.Trace_private_util.Mpsc_bag) Module Trace_private_util.Mpsc_bag
A multi-producer, single-consumer bag
\ No newline at end of file