package ppx_trace
A ppx-based preprocessor for trace
Install
Dune Dependency
Authors
Maintainers
Sources
trace-0.10.tbz
sha256=c5a43827bbd5521e779c8856e44f4c718dccda902d00a242b598516110ada04d
sha512=f19cb25a767ed428cb1d4a497312267524bfaaf9550caa5fc1e84809494f0b7eaf26030d95563c75dea66606fcbec1be7e34baa4cba86fc57d64bc5d5b98efd5
doc/CHANGES.html
0.10
- breaking: manual spans now take a
explicit_span_ctx
as parent, that can potentially be transmitted across processes/machines. It also is intended to be more compatible with OTEL. - breaking
trace.subscriber
: timestamps areint64
ns now, not floats - breaking
trace
: pass astring
trace_id in manual spans, which helps for backends such as opentelemetry. It's also useful for extensions. - refactor
trace-fuchsia
: full revamp of the library, modularized, using subscriber API - refactor
trace-tef
: split into exporter,writer,subscriber, using subscriber API - feat: add
trace.event
, useful for background threads - feat
trace.subscriber
: addSpan_tbl
, and a depopt on picos_aux - feat
trace.subscriber
: tee a whole array at once - feat tef-tldrs: use EMIT_TEF_AT_EXIT
- feat
trace.subscriber
: depopt on unix for timestamps - refactor
trace-tef
: depopt on unix for TEF timestamps
0.9.1
- fix: upper bound on ppxlib
- feat trace-tef: print names of non-closed spans upon exit
- fix: block signals in background threads
0.9
- add an extensible sum type, so users can implement custom events. For example an OTEL collector can provide custom events to link two spans to one another.
0.8
- add
trace.subscriber
instead of a separate library - add
trace-tef.tldrs
, to trace multiple processes easily (with external rust daemon) - breaking:
trace-tef
: usemtime.now
, not a counter, for multiproc trace-fuchsia
: require thread-local-storage 0.2
0.7
- feat: add levels to
Trace_core
. Levels are similar tologs
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.let%trace span = "foo" in …
will enter a scopespan
named "foo"let%trace () = "foo" in …
will enter a scope named "foo" with a hidden name
- add
trace-fuchsia
backend, which produces traces in the binary format of fuchsia. These traces are reasonably efficient to produce (~60ns per span on my machines) and reasonably compact on disk, at least compared to the TEF backend.
0.5
- perf: reduce overhead in trace-tef
- perf: add Mpsc_queue, adapted from picos, to trace-tef
0.4
- add
?data
tocounter_int
andcounter_float
- add
float
to user data - add
add_data_to_current_span
andadd_data_to_manual_span
- make
explicit_span.meta
mutable - trace-tef: write to
trace.json
if env variableTRACE
is either 1 or true - trace-tef: emit function name, if provided, as a metadata key/value pair
- re-export trace.core in trace
- perf: in trace-tef, use broadcast instead of signal in the job queue
0.3
- add explicit spans, for more precise tracing
- rename repo to ocaml-trace
- trace-tef: add a ticker thread to ensure we flush the file regularly
0.2
- trace-tef: additional argument to
with_setup
; env for "stdout"/"stderr" - refactor: avoid conflicting with stdlib
Trace
module by adding sublibrarytrace.core
. Programs that usecompiler-libs.toplevel
should usetrace.core
directly, because usingtrace
will cause linking errors. - perf(trace-tef): improve behavior of collector under contention by pulling all events at once in the worker
0.1
initial release
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>