diff --git a/ppx_trace/_doc-dir/CHANGES.md b/ppx_trace/_doc-dir/CHANGES.md index 1e39398..ae8e411 100644 --- a/ppx_trace/_doc-dir/CHANGES.md +++ b/ppx_trace/_doc-dir/CHANGES.md @@ -1,4 +1,11 @@ +# 0.7 + +- feat: add levels to `Trace_core`. Levels are similar to `logs` levels, to help control verbosity. +- add hmap as a depopt (#28) + +- fix: truncate large strings in fuchsia + # 0.6 - add `ppx_trace` for easier instrumentation. diff --git a/trace-fuchsia/_doc-dir/CHANGES.md b/trace-fuchsia/_doc-dir/CHANGES.md index 1e39398..ae8e411 100644 --- a/trace-fuchsia/_doc-dir/CHANGES.md +++ b/trace-fuchsia/_doc-dir/CHANGES.md @@ -1,4 +1,11 @@ +# 0.7 + +- feat: add levels to `Trace_core`. Levels are similar to `logs` levels, to help control verbosity. +- add hmap as a depopt (#28) + +- fix: truncate large strings in fuchsia + # 0.6 - add `ppx_trace` for easier instrumentation. diff --git a/trace-tef/_doc-dir/CHANGES.md b/trace-tef/_doc-dir/CHANGES.md index 1e39398..ae8e411 100644 --- a/trace-tef/_doc-dir/CHANGES.md +++ b/trace-tef/_doc-dir/CHANGES.md @@ -1,4 +1,11 @@ +# 0.7 + +- feat: add levels to `Trace_core`. Levels are similar to `logs` levels, to help control verbosity. +- add hmap as a depopt (#28) + +- fix: truncate large strings in fuchsia + # 0.6 - add `ppx_trace` for easier instrumentation. diff --git a/trace/Trace/index.html b/trace/Trace/index.html index e011339..1a32c80 100644 --- a/trace/Trace/index.html +++ b/trace/Trace/index.html @@ -1,5 +1,5 @@ -
Traceinclude module type of struct include Trace_core endUser defined data, generally passed as key/value pairs to whatever collector is installed (if any).
type explicit_span = Trace_core.explicit_span = {span : span;Identifier for this span. Several explicit spans might share the same identifier since we can differentiate between them via meta.
mutable meta : Trace_core.Meta_map.t;Metadata for this span (and its context). This can be used by collectors to carry collector-specific information from the beginning of the span, to the end of the span.
*)}Explicit span, with collector-specific metadata
module Collector = Trace_core.Collectormodule Meta_map = Trace_core.Meta_mapmodule Level = Trace_core.LevelIs there a collector?
This is fast, so that the traced program can check it before creating any span or message.
val get_default_level : unit -> Level.tCurrent default level for spans.
val set_default_level : Level.t -> unitSet level used for spans that do not specify it. The default default value is Level.Trace.
val with_span :
+Trace (trace.Trace) Module Trace
include module type of struct include Trace_core end
User defined data, generally passed as key/value pairs to whatever collector is installed (if any).
type explicit_span = Trace_core.explicit_span = {span : span;(*Identifier for this span. Several explicit spans might share the same identifier since we can differentiate between them via meta.
*)mutable meta : Trace_core.Meta_map.t;(*Metadata for this span (and its context). This can be used by collectors to carry collector-specific information from the beginning of the span, to the end of the span.
*)
}Explicit span, with collector-specific metadata
module Collector = Trace_core.Collectormodule Meta_map = Trace_core.Meta_mapmodule Level = Trace_core.LevelTracing
Is there a collector?
This is fast, so that the traced program can check it before creating any span or message.
val get_default_level : unit -> Level.tCurrent default level for spans.
val set_default_level : Level.t -> unitSet level used for spans that do not specify it. The default default value is Level.Trace.
val with_span :
?level:Level.t ->
?__FUNCTION__:string ->
__FILE__:string ->
@@ -7,14 +7,14 @@
?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.
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.
val enter_span :
?level:Level.t ->
?__FUNCTION__:string ->
__FILE__:string ->
__LINE__:int ->
?data:(unit -> (string * user_data) list) ->
string ->
- spanEnter a span manually.
val exit_span : span -> unitExit a span manually. This must run on the same thread as the corresponding enter_span, and spans must nest correctly.
Add 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 :
+ spanEnter a span manually.
val exit_span : span -> unitExit a span manually. This must run on the same thread as the corresponding enter_span, and spans must nest correctly.
Add 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 ] ->
?level:Level.t ->
@@ -23,7 +23,7 @@
__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 :
+ 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 ] ->
?level:Level.t ->
?__FUNCTION__:string ->
@@ -31,7 +31,7 @@
__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_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 :
@@ -39,19 +39,19 @@
?span:span ->
?data:(unit -> (string * user_data) list) ->
string ->
- unitmessage msg logs a message msg (if a collector is installed). Additional metadata can be provided.
message msg logs a message msg (if a collector is installed). Additional metadata can be provided.
val messagef :
?level:Level.t ->
?span:span ->
?data:(unit -> (string * user_data) list) ->
((('a, Stdlib.Format.formatter, unit, unit) format4 -> 'a) -> unit) ->
- unitmessagef (fun k->k"hello %s %d!" "world" 42) is like message "hello world 42!" but only computes the string formatting if a collector is installed.
Give a name to the current thread. This might be used by the collector to display traces in a more informative way.
Give a name to the current process. This might be used by the collector to display traces in a more informative way.
messagef (fun k->k"hello %s %d!" "world" 42) is like message "hello world 42!" but only computes the string formatting if a collector is installed.
Give a name to the current thread. This might be used by the collector to display traces in a more informative way.
Give a name to the current process. This might be used by the collector to display traces in a more informative way.
val counter_int :
?level:Level.t ->
?data:(unit -> (string * user_data) list) ->
string ->
int ->
- unitEmit a counter of type int. Counters represent the evolution of some quantity over time.
Emit a counter of type int. Counters represent the evolution of some quantity over time.
val counter_float :
?level:Level.t ->
?data:(unit -> (string * user_data) list) ->
string ->
float ->
- unitEmit a counter of type float. See counter_int for more details.
Collector
type collector = (module Collector.S)An event collector.
See Collector for more details.
val setup_collector : collector -> unitsetup_collector c installs c as the current collector.
val get_current_level : unit -> Level.tGet current level. This is only meaningful if a collector was set up with setup_collector.
val set_current_level : Level.t -> unitSet the current level of tracing. This only has a visible effect if a collector was installed with setup_collector.
\ No newline at end of file
+ unitEmit a counter of type float. See counter_int for more details.
type collector = (module Collector.S)An event collector.
See Collector for more details.
val setup_collector : collector -> unitsetup_collector c installs c as the current collector.
val get_current_level : unit -> Level.tGet current level. This is only meaningful if a collector was set up with setup_collector.
val set_current_level : Level.t -> unitSet the current level of tracing. This only has a visible effect if a collector was installed with setup_collector.
Trace_core.LevelTracing levels.
This is similar to log levels in, say, Logs. In a thoroughly instrumented program, there will be a lot of spans, and enabling them all in production might slow down the application or overwhelm the tracing system; yet they might be useful in debug situations.
Level of tracing. These levels are in increasing order, i.e if level Debug1 is enabled, everything below it (Error, Warning, Info, etc.) are also enabled.
val to_string : t -> stringTrace_core.LevelTracing levels.
This is similar to log levels in, say, Logs. In a thoroughly instrumented program, there will be a lot of spans, and enabling them all in production might slow down the application or overwhelm the tracing system; yet they might be useful in debug situations.
Level of tracing. These levels are in increasing order, i.e if level Debug1 is enabled, everything below it (Error, Warning, Info, etc.) are also enabled.
val to_string : t -> stringTrace_coreTrace.
User defined data, generally passed as key/value pairs to whatever collector is installed (if any).
type explicit_span = {span : span;Identifier for this span. Several explicit spans might share the same identifier since we can differentiate between them via meta.
mutable meta : Meta_map.t;Metadata for this span (and its context). This can be used by collectors to carry collector-specific information from the beginning of the span, to the end of the span.
*)}Explicit span, with collector-specific metadata
module Collector : sig ... endA global collector.
module Meta_map : sig ... endmodule Level : sig ... endTracing levels.
Is there a collector?
This is fast, so that the traced program can check it before creating any span or message.
val get_default_level : unit -> Level.tCurrent default level for spans.
val set_default_level : Level.t -> unitSet level used for spans that do not specify it. The default default value is Level.Trace.
val with_span :
+Trace_core (trace.Trace_core) Module Trace_core
Trace.
User defined data, generally passed as key/value pairs to whatever collector is installed (if any).
type explicit_span = {span : span;(*Identifier for this span. Several explicit spans might share the same identifier since we can differentiate between them via meta.
*)mutable meta : Meta_map.t;(*Metadata for this span (and its context). This can be used by collectors to carry collector-specific information from the beginning of the span, to the end of the span.
*)
}Explicit span, with collector-specific metadata
module Collector : sig ... endA global collector.
module Meta_map : sig ... endmodule Level : sig ... endTracing levels.
Tracing
Is there a collector?
This is fast, so that the traced program can check it before creating any span or message.
val get_default_level : unit -> Level.tCurrent default level for spans.
val set_default_level : Level.t -> unitSet level used for spans that do not specify it. The default default value is Level.Trace.
val with_span :
?level:Level.t ->
?__FUNCTION__:string ->
__FILE__:string ->
@@ -7,14 +7,14 @@
?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.
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.
val enter_span :
?level:Level.t ->
?__FUNCTION__:string ->
__FILE__:string ->
__LINE__:int ->
?data:(unit -> (string * user_data) list) ->
string ->
- spanEnter a span manually.
val exit_span : span -> unitExit a span manually. This must run on the same thread as the corresponding enter_span, and spans must nest correctly.
Add 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 :
+ spanEnter a span manually.
val exit_span : span -> unitExit a span manually. This must run on the same thread as the corresponding enter_span, and spans must nest correctly.
Add 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 ] ->
?level:Level.t ->
@@ -23,7 +23,7 @@
__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 :
+ 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 ] ->
?level:Level.t ->
?__FUNCTION__:string ->
@@ -31,7 +31,7 @@
__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_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 :
@@ -39,19 +39,19 @@
?span:span ->
?data:(unit -> (string * user_data) list) ->
string ->
- unitmessage msg logs a message msg (if a collector is installed). Additional metadata can be provided.
message msg logs a message msg (if a collector is installed). Additional metadata can be provided.
val messagef :
?level:Level.t ->
?span:span ->
?data:(unit -> (string * user_data) list) ->
((('a, Stdlib.Format.formatter, unit, unit) format4 -> 'a) -> unit) ->
- unitmessagef (fun k->k"hello %s %d!" "world" 42) is like message "hello world 42!" but only computes the string formatting if a collector is installed.
Give a name to the current thread. This might be used by the collector to display traces in a more informative way.
Give a name to the current process. This might be used by the collector to display traces in a more informative way.
messagef (fun k->k"hello %s %d!" "world" 42) is like message "hello world 42!" but only computes the string formatting if a collector is installed.
Give a name to the current thread. This might be used by the collector to display traces in a more informative way.
Give a name to the current process. This might be used by the collector to display traces in a more informative way.
val counter_int :
?level:Level.t ->
?data:(unit -> (string * user_data) list) ->
string ->
int ->
- unitEmit a counter of type int. Counters represent the evolution of some quantity over time.
Emit a counter of type int. Counters represent the evolution of some quantity over time.
val counter_float :
?level:Level.t ->
?data:(unit -> (string * user_data) list) ->
string ->
float ->
- unitEmit a counter of type float. See counter_int for more details.
Collector
type collector = (module Collector.S)An event collector.
See Collector for more details.
val setup_collector : collector -> unitsetup_collector c installs c as the current collector.
val get_current_level : unit -> Level.tGet current level. This is only meaningful if a collector was set up with setup_collector.
val set_current_level : Level.t -> unitSet the current level of tracing. This only has a visible effect if a collector was installed with setup_collector.
\ No newline at end of file
+ unitEmit a counter of type float. See counter_int for more details.
type collector = (module Collector.S)An event collector.
See Collector for more details.
val setup_collector : collector -> unitsetup_collector c installs c as the current collector.
val get_current_level : unit -> Level.tGet current level. This is only meaningful if a collector was set up with setup_collector.
val set_current_level : Level.t -> unitSet the current level of tracing. This only has a visible effect if a collector was installed with setup_collector.