mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-08 03:47:59 -04:00
Instrumentation for https://opentelemetry.io
|
|
||
|---|---|---|
| .github/workflows | ||
| src | ||
| tests | ||
| vendor | ||
| .gitignore | ||
| .gitmodules | ||
| dune | ||
| dune-project | ||
| emit1.sh | ||
| Makefile | ||
| opentelemetry-client-ocurl.opam | ||
| opentelemetry-lwt.opam | ||
| opentelemetry.opam | ||
| README.md | ||
Opentelemetry 
This project provides an API for instrumenting server software using opentelemetry, as well as connectors to talk to opentelemetry software such as jaeger.
Features
- basic traces
- basic metrics
- basic logs
- nice API
- interface with
lwt - sync collector relying on ocurl
- batching, perf, etc.
- async collector relying on ocurl-multi
- interface with
logs(carry context around)
Use
For now, instrument manually:
module T = Opentelemetry
let (let@) f x = f x
let foo x =
let@ (tr,sp) = T.Trace.with_
~service_name:"myservice" "foo" ~attrs:["hello", `String "world"] in
(* … *)
let gc = Gc.stat() in
T.Metrics.(
emit [
gauge ~name:"foo.gc.major_heap_words" [int gc.Gc.heap_words];
sum ~name:"foo.gc.minor_allocated" [float gc.Gc.minor_words];
]);
(* … *)
License
MIT
Semantic Conventions
Not supported yet.