Commit graph

582 commits

Author SHA1 Message Date
Simon Cruanes
e79df14a90
refactor thoroughly ambient-context
we have a new explicit `Storage.t` interface, that can be used to
get a `Context.t` (a hmap) and to locally swap it; then we have multiple
implementations of the Storage; and then we have a singleton atomic
containing the "main" storage.
2026-01-20 00:15:11 -05:00
Simon Cruanes
a33c57a46e
wip: refactor 2026-01-20 00:15:11 -05:00
Simon Cruanes
b433a11c9a
perf: avoid building closures in Signal 2026-01-20 00:15:11 -05:00
Simon Cruanes
2170c16e7f
wip: trace 2026-01-20 00:15:11 -05:00
Simon Cruanes
bd335ecadd
refator core OTEL: remove Scope, directly use Span as builder
now that fields are mutable, it's cheaper and easier
2026-01-20 00:15:11 -05:00
Simon Cruanes
cb4be48746
fix client-ocurl-lwt to use the new exporter interface 2026-01-20 00:15:11 -05:00
Simon Cruanes
723b523af5
feat: use a pbrt encoder pool in client-ocurl 2026-01-20 00:15:11 -05:00
Simon Cruanes
6f96d5271a
feat client-ocurl: use common batch and queue; remove layer of queueing
now we modify batches on the fly when we send signals; but there
still is a thread pool to send signals via HTTP.
2026-01-20 00:15:10 -05:00
Simon Cruanes
ced8dd421f
feat client: various changes 2026-01-20 00:15:10 -05:00
Simon Cruanes
6b6fb34342
feat OTEL: move some stuff to client or util; rate limit GC metrics 2026-01-20 00:15:10 -05:00
Simon Cruanes
3f98d0c484
more utils 2026-01-20 00:15:10 -05:00
Simon Cruanes
b76c90b785
feat: opentelemetry.util with various utilities 2026-01-20 00:15:10 -05:00
Simon Cruanes
d5436d953f
feat integration/logs: update paths 2026-01-20 00:15:10 -05:00
Simon Cruanes
8692976f3e
client: add debug_exporter, stdout_exporter, resource helpers 2026-01-20 00:15:10 -05:00
Simon Cruanes
f349c31368
update opentelemetry_trace just a bit 2026-01-20 00:15:10 -05:00
Simon Cruanes
841d58ab67
large refactor: split core library into many modules; change API design
follow more closely the official OTEL recommendations, and also try
to reduce global state.

- use a class type for `Exporter.t` (instead of 1st class module `backend`)
- have tracer, logger, metrics_emitter as explicit objects
- keep a `Main_exporter` to make migration easier, but discouraged
- add stdout_exporter and debug_exporter to opentelemetry.client
2026-01-20 00:15:09 -05:00
Simon Cruanes
ba1a8eec98
update protobuf code 2025-12-01 20:32:05 -05:00
Simon Cruanes
5400f521a9
update generated code 2025-12-01 20:32:05 -05:00
Simon Cruanes
d4b44244d7
update generated code again, repeated fields are optional again 2025-12-01 20:32:05 -05:00
Simon Cruanes
8290b9bd81
fix warnings 2025-12-01 20:32:04 -05:00
Simon Cruanes
41d8b0c1a4
fix 2025-12-01 20:32:04 -05:00
Simon Cruanes
51f783a578
udpate generated proto code 2025-12-01 20:32:04 -05:00
Simon Cruanes
a35ea4c646
fixes 2025-12-01 20:32:03 -05:00
Simon Cruanes
0f1452e01e
update generated code 2025-12-01 20:32:03 -05:00
Simon Cruanes
f000c11406
update the emit test so it records how many bytes were emitted 2025-12-01 20:32:03 -05:00
Simon Cruanes
bf09b58a63
update generated protobuf code 2025-12-01 20:32:03 -05:00
Simon Cruanes
ee8542ea0e
fix warning 2025-12-01 17:49:53 -05:00
Simon Cruanes
a3b4852b89
Merge pull request #111 from tatchi/tatchi/ocurl-lwt
add opentelemetry-client-ocurl-lwt
2025-12-01 17:33:54 -05:00
Simon Cruanes
e31f5f6aba
refactor: move the Mutex.protect backport into Util_mutex 2025-11-19 12:20:13 -05:00
ajbt200128
3fbac32822 fix: mutex usage and inline bugs 2025-11-12 14:27:36 -08:00
Simon Cruanes
507bf25dcf
Merge pull request #109 from tatchi/fmt
fmt
2025-11-10 12:49:33 -05:00
Simon Cruanes
883d1bc4e5
Merge pull request #110 from tatchi/since-012
add correct release version in comment
2025-11-10 09:34:08 -05:00
Corentin Leruth
78dfbffe13 fix comment 2025-11-10 09:20:38 -05:00
Corentin Leruth
950d5922a1 add correct release version in comment 2025-11-08 12:49:52 +01:00
Corentin Leruth
42e41675b5 fmt 2025-11-08 12:43:21 +01:00
Corentin Leruth
f21c16697d add opentelemetry-client-ocurl-lwt 2025-11-08 12:42:21 +01:00
Simon Cruanes
b2ef68536d
feat cohttp: set 'accept' header as well 2025-09-15 12:25:04 -04:00
Simon Cruanes
8eda0730e9
remove dead code 2025-09-08 12:24:49 -04:00
Simon Cruanes
b778ffdac3
reduce allocations in push 2025-09-08 08:09:05 -04:00
Simon Cruanes
026465f770
reduce size of critical section
better to reverse the list without holding the lock,
as it allocates and might have to yield to another thread
or domain, pause, etc.
2025-09-08 08:08:29 -04:00
Simon Cruanes
76efa381c3
comments 2025-09-08 08:08:18 -04:00
Shon Feder
8a8299020a
Make Batch actually be thread safe 2025-09-07 23:26:20 -04:00
Shon Feder
474d43bdad
Use domain ID instead of thread ID in Eio collector
Eio programs are not generally expected to use threads for concurrency,
but they may well use different domains which we'd want to track during
debugging.
2025-09-07 23:25:25 -04:00
Simon Cruanes
fa610ed535
Update src/core/opentelemetry.ml 2025-09-02 15:08:22 -04:00
Shon Feder
54b62af1a2
Check for on_click registration exactly once 2025-09-02 15:00:11 -04:00
Shon Feder
93803581b7
fix: make metric callbacks atomic
The use of a non-threadsafe mutable reference for the metrics callbacks
was resulting in a race condition that would sometimes produce
non-deterministic results in the integration tests.

This has not affected the lwt-based collector, because of the single
threaded concurrency Lwt enforces, but it began to show up in the WIP
Eio rewrite, for which I am testing on cross-domain programs.

I suspect this may have also bee affecting the ocurl collector, but we
don't have integration test running on that yet.
2025-09-02 14:41:26 -04:00
Simon Cruanes
d9dd7ce32c
Merge pull request #103 from shonfeder/eio-fixes
Fix Eio collector to work accross domains
2025-09-02 09:26:18 -04:00
Shon Feder
ddbdc80d57
make Eio collector thread safe
The backend cannot take a switch, because switches cannot be shared
across domains, but the backend is accessed across domains from a global
variable.
2025-08-01 13:56:50 -04:00
Shon Feder
7cdadfaeeb
Fix exception message 2025-08-01 13:56:50 -04:00
ajbt200128
fbb280974a feat: add Logs integration
This PR upstreams the logs integration I wrote for Semgrep, and that
we've been using succesfully for months!
2025-07-31 14:25:52 -07:00