Simon Cruanes
9c3e2a7076
feat: pass ?stop atomic; allow for multiple background threads
2022-07-06 12:53:00 -04:00
Simon Cruanes
331ae94547
detail
2022-07-06 12:52:03 -04:00
Simon Cruanes
d689dfc8fb
feat(ocurl): simpler, cleaner backend implementation
...
we now only have a single representation of a batch, with its own
internal state to handle timeouts. It handles its own locking, and there
are no callbacks anymore.
2022-07-06 12:06:51 -04:00
Simon Cruanes
85b6e91615
config: more comments; make Config.t private
...
forcing users to use `Config.make` to build a new config means we can
add fields without breaking existing code.
2022-07-06 12:06:12 -04:00
Simon Cruanes
f44351055a
Merge branch 'master' into wip-logs
2022-05-12 12:26:07 -04:00
Simon Cruanes
3f9bd94837
format
2022-05-12 11:54:06 -04:00
Simon Cruanes
b676783100
format
2022-05-05 12:09:19 -04:00
Simon Cruanes
a718f049aa
fix: ensure we can always produce random trace_id/span_id
2022-05-04 12:47:33 -04:00
Pau Ruiz Safont
fa3b863625
feat: Allow setting API headers
...
This can be done through the API or by setting
OTEL_EXPORTER_OTLP_HEADERS
Signed-off-by: Pau Ruiz Safont <pau.safont@citrix.com>
2022-05-04 16:56:37 +01:00
Simon Cruanes
5fefcf3ced
require pbrt only, use ocaml-protoc as a lint
2022-05-03 13:52:20 -04:00
Simon Cruanes
6744123075
feat(otel): Metrics_callbacks module
...
this module allows the user's programs and libraries to register
some callbacks that will be regularly called to produce metrics.
2022-04-29 16:50:06 -04:00
Simon Cruanes
1bedb57123
feat: implement basic support for logs
...
also send them to the collector.
2022-04-28 09:57:28 -04:00
Simon Cruanes
9d4bb5a97f
feat: debug the library is set via OTEL_OCAML_DEBUG
2022-04-19 13:28:55 -04:00
Simon Cruanes
c01879c4b0
refactor(client): split into several modules
2022-04-13 16:28:23 -04:00
Simon Cruanes
20cc772682
fix
2022-04-12 14:14:36 -04:00
Simon Cruanes
3448e33d29
fix: same
2022-04-12 13:53:24 -04:00
Simon Cruanes
2c1c67bfe8
fix: emit traces, too
2022-04-12 13:50:50 -04:00
Simon Cruanes
7af92b5589
minor refactoring
2022-04-12 11:56:28 -04:00
Matt Bray
1919154085
add runtime attrs to GC stats
2022-04-12 16:26:08 +01:00
Simon Cruanes
3d0d031bcd
fix: yet another fix for emitting GC metrics
...
now, the frontend (Opentelemetry) is responsible for signalling the
backend when to emit GC stats; but the backend just samples GC metrics
on the next `tick()` and pushes them in the next batch. This saves us
from having to worry about re-entrancy and GC metrics being emitted
during the emission of something else.
2022-04-11 16:33:01 -04:00
Simon Cruanes
786ebb611a
ocurl-client: reset needs_gc_metrics
2022-04-11 15:29:32 -04:00
Simon Cruanes
5180be31bc
feat(collector): move GC metrics logic to the collector
...
this helps avoiding reentrancy issue, where the collector allocates,
triggers the GC metrics alarm, which tries to push new metrics in the
middle of a batch (currently leading to a potential deadlock).
2022-04-11 13:09:13 -04:00
Simon Cruanes
6722c49bb0
feat(curl-client): block some signals in background thread(s)
2022-03-30 11:54:12 -04:00
Simon Cruanes
2d220b20af
ocurl backend: ticker thread
2022-03-25 11:06:34 -04:00
Simon Cruanes
901730583c
remove over from backend
2022-03-24 10:59:37 -04:00
Simon Cruanes
e2e2c4baac
fuck vendoring atomic
2022-03-23 15:33:03 -04:00
Simon Cruanes
03313e9121
fix(ocurl): check for batch timeouts in exporter as well
2022-03-22 13:00:06 -04:00
Simon Cruanes
3a72a73c15
self exported metrics
2022-03-22 12:38:29 -04:00
Simon Cruanes
bcbb07027f
add ?enable to the ocurl client
2022-03-22 11:33:12 -04:00
Simon Cruanes
000292cd17
catch errors in backend
2022-03-22 11:26:24 -04:00
Simon Cruanes
b03ff26ba6
change signature of with_setup
2022-03-22 11:18:52 -04:00
Simon Cruanes
fb0778805d
ocurl backend: implement non-threaded mode, add config for batch timeout
...
emit batches, even if they're not full, after given timeout
2022-03-21 15:20:31 -04:00
Simon Cruanes
a00d4d2383
collector: if queue is full, drop item, and wakeup thread
2022-03-21 15:06:38 -04:00
Simon Cruanes
124ba09b2b
feat: implement background thread, collector config, batching
2022-03-21 15:01:41 -04:00
Simon Cruanes
097436f907
make collector async-compatible (inspired from Logs)
2022-03-18 11:09:12 -04:00
Simon Cruanes
4bed351df4
debug
2022-03-17 14:19:52 -04:00
Simon Cruanes
f7499be0dd
curl backend: temporary debug output, better curl options
2022-03-17 13:08:33 -04:00
Simon Cruanes
b05d64a025
start fleshing out main API, starting with metrics
2022-03-16 16:48:28 -04:00
Simon Cruanes
14a0fa922d
initial commit
2022-03-16 15:58:08 -04:00