Commit graph

67 commits

Author SHA1 Message Date
Simon Cruanes
db423c1b79
feat client-ocurl: port to just being a consumer
the rest is reusable components from opentelemetry-client
2026-01-20 00:15:16 -05:00
Simon Cruanes
4f218b31ef
mor efixes 2026-01-20 00:15:14 -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
f000c11406
update the emit test so it records how many bytes were emitted 2025-12-01 20:32:03 -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
Corentin Leruth
950d5922a1 add correct release version in comment 2025-11-08 12:49:52 +01:00
Shon Feder
39920ed109
Fix Signal encoder name choice
Don't know why I didn't opt for this clearer name originally.
2025-07-08 21:28:55 -04:00
Shon Feder
8f7d74f591
Allow optional reuse of encoder state
This allows clien implementors to micromanage the state of the protobuf
`encoder` if they want, or to just let the library handle allocation and
garbage collection of encoder states when that level of resource
managment is not required.
2025-06-20 16:19:55 -04:00
Shon Feder
52377b0a03
Factor out signal encoding logic 2025-06-16 23:34:45 -04:00
Shon Feder
0045a97e34
Move Self_trace module into Opentelemetry_client 2025-06-15 22:22:44 -04:00
Shon Feder
8511f547d7
Fix name of library
Matches the convention in /src/trace/dune and prevents dependency on
the library from polluting the global namespace of a component with the
generic `Client` module.
2025-06-10 18:11:30 -04:00
Shon Feder
90fa0ba3b7
Add pp implemtation for Client_ocurl.Config 2025-06-10 18:00:04 -04:00
Shon Feder
ec0efec681
Rename Env sig to ENV 2025-06-10 17:47:56 -04:00
Shon Feder
d62f680fc3
Refactor client configuration
Enabling sharing all common configuration logic
2025-06-10 00:40:13 -04:00
Simon Cruanes
51af3a4105
format 2025-05-05 14:41:20 -04:00
Simon Cruanes
5788492946
breaking: change Collector.cleanup so it takes a callback
this callback can be used to resolve a Lwt future, for example, to make
sure we indeed wait for the cleanup to be done before exiting.
2025-04-17 16:09:14 -04:00
Antonin Décimo
b2e62d527e fix: opentelemetry-client-ocurl: don't block signals on Windows
As of OCaml 5.3, the OCaml runtime doesn't support signals on
Windows. Trying to block them with Thread.sigmask will raise:

    Thread 5 killed on uncaught exception Invalid_argument("Thread.sigmask not implemented")
    Raised by primitive operation at Opentelemetry_client_ocurl.start_bg_thread.run in file "src/client-ocurl/opentelemetry_client_ocurl.ml", line 106, characters 12-49
2025-03-27 09:28:48 -04:00
Simon Cruanes
3d3cf8c02c
fix otel-client-ocurl: use ptime timestamps for self metrics 2025-03-14 10:00:54 -04:00
Simon Cruanes
e789ecf3da cleanup 2024-10-17 13:45:28 -04:00
Simon Cruanes
308e0304e3 simplify 2024-10-17 13:45:28 -04:00
Simon Cruanes
424a82c8a5 in backends, call tick() before cleaning up
this helps flushing signals that are being batched.

close #69
2024-10-17 13:45:28 -04:00
Corentin Leruth
ac1a27eb89 reduce memory usage of Scope.t 2024-10-10 21:22:16 +02:00
Corentin Leruth
41f1f43470 add Scope.make 2024-10-07 16:37:01 +02:00
Corentin Leruth
b3747cfc8e add links to scope 2024-10-07 15:07:05 +02:00
Simon Cruanes
7629e419c8
format 2024-09-20 09:22:13 -04:00
Corentin Leruth
d6d36ee73d add url to error log 2024-09-20 08:16:37 -04:00
Corentin Leruth
e73ea7e6ad make urls from env take precedence 2024-08-09 08:17:08 +02:00
Corentin Leruth
fd0f1617b6
Update src/client-ocurl/config.mli
Co-authored-by: Simon Cruanes <simon.cruanes.2007@m4x.org>
2024-08-05 09:41:04 +02:00
Corentin Leruth
1b538930ae add support for per-signal urls 2024-08-02 08:52:43 +02:00
Simon Cruanes
5d5d909c18
also handle the non force case 2024-07-22 10:55:51 -04:00
Simon Cruanes
592814dab8
fix: emit GC metrics even in the absence of custom metrics 2024-07-22 10:48:15 -04:00
Simon Cruanes
03d9a6f9a2
ocurl: more info in debug mode 2024-03-07 11:31:30 -05:00
Simon Cruanes
5b0bc6162e
cosmetics 2024-02-23 13:01:46 -05:00
Simon Cruanes
7fa4580bb0
better debug message in curl backend 2024-02-23 12:41:18 -05:00
Simon Cruanes
5a78805add
prepare for 0.7 2024-02-14 13:15:14 -05:00
Simon Cruanes
031b7bfc38
more doc 2023-12-21 08:28:07 -05:00
Simon Cruanes
b830c3d1be
config: self-trace is disabled by default for now 2023-12-20 16:07:59 -05:00
Simon Cruanes
133b6ad991
revert: use collector again for self-tracing spans
it's less dangerous to emit spans for self-tracing, even
if nothing else is going on, than risk having them accumulate
in case the program emits no spans but emits a lot of
metrics and logs (which create self-tracing spans)
2023-12-20 16:05:41 -05:00
Simon Cruanes
f0310530a3
ocurl: add ticker_interval_ms config
ticker interval will affect how often metrics are emitted,
this doesn't need be related to batch timeouts.
2023-12-20 15:57:53 -05:00
Simon Cruanes
d4186f64f4
client ocurl: do self-tracing in cheaper way
we don't go through OTEL for self tracing as it can create
regular span emission where normally there would be none
(emitting a self-tracing span might create a batch, which then
has to be sent after the batch timeout, and sending
that one creates a new span, etc.)
2023-12-20 15:49:50 -05:00
Simon Cruanes
bd8b483e81
feat: use AList for tick callbacks; emit GC events on tick
it's cleaner to emit GC events on ticks rather than on GC,
because it avoids both spamming if the GC is very active, and
emitting nothing when there are few allocations.
2023-12-20 15:46:39 -05:00
Simon Cruanes
2ac799f10d
move AList to core 2023-12-20 15:45:57 -05:00
Simon Cruanes
3d16de634f
refine seld tracing 2023-12-20 14:29:23 -05:00
Simon Cruanes
f0750cdfb5
otel-ocurl: some self-tracing 2023-12-20 14:22:31 -05:00
Simon Cruanes
5005c3aa9b
perf: when we get multiple messages, check batches only once 2023-12-20 14:01:24 -05:00
Simon Cruanes
f6afc3df1c
use ocaml-protoc 3.0.1 for codegen 2023-12-14 20:49:11 -05:00
Elliott Cable
ed90772a57 Merge branch 'master' into configurable-scope-storage
* master:
  fix ocurl: have ticker thread stop when work queue is closed
  fix get_url test to take config.url into account
  add get_url test with explicit config url
  chore: makefile
  update generated code
  opentelemetry: in Trace, change default span kind
  chore: migrate to OTEL proto files 1.0
  CI: run on 5.0; run on every branch push
  remove use of String.ends_with for compat with 4.08
  remove trailing slash from url
  shorter name for the instrumentation library
  use named signals
2023-09-20 14:47:14 +00:00
Elliott Cable
03f6f69bdd collector: Add debug-wrapping backend 2023-09-19 21:35:09 +00:00