linol/trace/_doc-dir/CHANGES.md
2025-04-10 19:50:29 +00:00

72 lines
2.4 KiB
Markdown

# 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`: use `mtime.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 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.
* `let%trace span = "foo" in …` will enter a scope `span` 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](https://fuchsia.dev/fuchsia-src/reference/tracing/trace-format).
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` to `counter_int` and `counter_float`
- add `float` to user data
- add `add_data_to_current_span` and `add_data_to_manual_span`
- make `explicit_span.meta` mutable
- trace-tef: write to `trace.json` if env variable `TRACE` 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 sublibrary `trace.core`.
Programs that use `compiler-libs.toplevel` should use `trace.core`
directly, because using `trace` 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