alpha
Login
or
Join now
gazagnaire.org
/
ocaml-probe
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Typed runtime_events probes for OCaml
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
ocaml-probe
/
test
/
eio
4 files
at
main
Thomas Gazagnaire
ocaml-probe: Replace run with with_span
5w ago
2ae91651
dune
ocaml-probe: Replace run with with_span Use one lexical span API and make active checks explicit. Event helpers now avoid building their generated payload records while probes are inactive, while the docs call out the remaining eager thunk cost.
1 month ago
test.ml
probe: self-describing packets, robust descriptors, fiber context Four fixes to make captures trustworthy and the core dependency-light: - Self-describing wire format with a canonical decoder. Data packets now carry type-tagged values (s/S/i/I/f/b), so Probe.Consumer.decode turns any packet back into a typed record without out-of-band state. Consumers no longer reimplement the format; the encoder and decoder live in one module with ring round-trip tests and an alcobar fuzz run over the parser. - Descriptor metadata survives late captures. User.write silently drops packets while the ring is inactive, so the old emit-once flag lost the descriptor for any capture started after the first emit. Emission is now gated on the ring being active and the descriptor is re-emitted every 512 data packets, so out-of-process consumers that attach to a running process (and rings that wrapped) recover the schema. - Packet bounds are enforced at declaration time. A declaration whose descriptor or worst-case fixed layout cannot fit the 1024-byte packet limit raises Invalid_argument when declared, not mid-run. Oversized string values are clipped at emission and surface to consumers as Value.Truncated rather than as framing corruption. - The core drops its eio dependency. Span context goes through a Context provider: the default is domain-local, and the new ocaml-probe.eio sublibrary installs a fiber-local provider (Probe_eio.install) so IO-free protocol libraries that declare probes (ssh, tcp) no longer pull Eio transitively. Declarations also share one runtime_events user event instead of registering one per declaration (the payload already carries the declaration id), so the global 8192-slot user-event namespace is no longer consumed per probe.
1 month ago
test_probe_eio.ml
ocaml-probe: Replace run with with_span Use one lexical span API and make active checks explicit. Event helpers now avoid building their generated payload records while probes are inactive, while the docs call out the remaining eager thunk cost.
1 month ago
test_probe_eio.mli
probe: self-describing packets, robust descriptors, fiber context Four fixes to make captures trustworthy and the core dependency-light: - Self-describing wire format with a canonical decoder. Data packets now carry type-tagged values (s/S/i/I/f/b), so Probe.Consumer.decode turns any packet back into a typed record without out-of-band state. Consumers no longer reimplement the format; the encoder and decoder live in one module with ring round-trip tests and an alcobar fuzz run over the parser. - Descriptor metadata survives late captures. User.write silently drops packets while the ring is inactive, so the old emit-once flag lost the descriptor for any capture started after the first emit. Emission is now gated on the ring being active and the descriptor is re-emitted every 512 data packets, so out-of-process consumers that attach to a running process (and rings that wrapped) recover the schema. - Packet bounds are enforced at declaration time. A declaration whose descriptor or worst-case fixed layout cannot fit the 1024-byte packet limit raises Invalid_argument when declared, not mid-run. Oversized string values are clipped at emission and surface to consumers as Value.Truncated rather than as framing corruption. - The core drops its eio dependency. Span context goes through a Context provider: the default is domain-local, and the new ocaml-probe.eio sublibrary installs a fiber-local provider (Probe_eio.install) so IO-free protocol libraries that declare probes (ssh, tcp) no longer pull Eio transitively. Declarations also share one runtime_events user event instead of registering one per declaration (the payload already carries the declaration id), so the global 8192-slot user-event namespace is no longer consumed per probe.
1 month ago