Commit graph

49 commits

Author SHA1 Message Date
Simon Cruanes
4c98764432
reduce impact of error 2022-07-06 19:14:40 -04:00
Simon Cruanes
50743d3097
do not decode result of http post 2022-07-06 19:11:26 -04:00
Simon Cruanes
2d97dd0705
debug 2022-07-06 16:02:49 -04:00
Simon Cruanes
9125eb5b65
better logging; improve GC sample collection 2022-07-06 15:48:46 -04:00
Simon Cruanes
88ce296d21
small refactor 2022-07-06 15:27:32 -04:00
Simon Cruanes
0a8e60ba46
better debug 2022-07-06 14:56:27 -04:00
Simon Cruanes
84be273b76
small refactor 2022-07-06 14:27:09 -04:00
Simon Cruanes
053493db8b
limit scope of locks 2022-07-06 14:22:53 -04:00
Simon Cruanes
6d72a6fac0
fix error on 4.08 2022-07-06 13:42:52 -04:00
Simon Cruanes
6179c97e99
add high watermark to ocurl client 2022-07-06 13:41:03 -04:00
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