Commit graph

436 commits

Author SHA1 Message Date
Simon Cruanes
c009b1d20a
WIP trace (hiiii) 2025-12-04 01:07:26 -05:00
Simon Cruanes
5bc7365e56
wip: opentelemetry.emitter with same time
a bit like a buffered writer for any data
2025-12-04 01:06:52 -05:00
Simon Cruanes
f8ec859f8b
refactor core 2025-12-04 01:06:42 -05:00
Simon Cruanes
c05c7e2bfc
feat span: ambient span 2025-12-04 00:24:42 -05:00
Simon Cruanes
c5b2269aab
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.
2025-12-04 00:23:23 -05:00
Simon Cruanes
d52345c3a8
wip: refactor 2025-12-03 16:07:14 -05:00
Simon Cruanes
f0cd1ad375
perf: avoid building closures in Signal 2025-12-03 16:06:50 -05:00
Simon Cruanes
0054671b0b
wip: trace 2025-12-03 16:06:43 -05:00
Simon Cruanes
9eaf31ec90
refator core OTEL: remove Scope, directly use Span as builder
now that fields are mutable, it's cheaper and easier
2025-12-03 16:06:20 -05:00
Simon Cruanes
d856e1d33d
fix client-ocurl-lwt to use the new exporter interface 2025-12-03 15:36:29 -05:00
Simon Cruanes
15cda06ea0
feat: use a pbrt encoder pool in client-ocurl 2025-12-03 15:36:10 -05:00
Simon Cruanes
7020148d44
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.
2025-12-03 15:09:10 -05:00
Simon Cruanes
5c3c03cdd8
feat client: various changes 2025-12-03 15:08:40 -05:00
Simon Cruanes
05034d978a
feat OTEL: move some stuff to client or util; rate limit GC metrics 2025-12-03 15:08:14 -05:00
Simon Cruanes
15a5243b6b
more utils 2025-12-03 15:08:06 -05:00
Simon Cruanes
2752eb710d
feat: opentelemetry.util with various utilities 2025-12-03 13:59:00 -05:00
Simon Cruanes
29fa482b79
feat integration/logs: update paths 2025-12-03 13:29:12 -05:00
Simon Cruanes
59be0f625b
client: add debug_exporter, stdout_exporter, resource helpers 2025-12-03 13:28:50 -05:00
Simon Cruanes
5d91e92ffa
update opentelemetry_trace just a bit 2025-12-03 13:28:25 -05:00
Simon Cruanes
c1b27980f2
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
2025-12-03 13:23:58 -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