doc, etc.

This commit is contained in:
Simon Cruanes 2022-03-18 14:17:56 -04:00
parent f20e613256
commit 5f2098619a
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
2 changed files with 33 additions and 4 deletions

2
.gitignore vendored
View file

@ -4,4 +4,4 @@ _opam
*.gz
*.db
.merlin
*.install

View file

@ -5,11 +5,40 @@ This project provides an API for instrumenting server software
using [opentelemetry](https://opentelemetry.io/docs), as well as
connectors to talk to opentelemetry software such as [jaeger](https://www.jaegertracing.io/).
## Features
- [x] basic traces
- [x] basic metrics
- [ ] basic logs
- [ ] nice API
- [x] interface with `lwt`
- [x] sync collector relying on ocurl
* [ ] batching, perf, etc.
- [ ] async collector relying on ocurl-multi
- [ ] interface with `logs` (carry context around)
## Use
- [ ] TODO: basic traces
- [ ] TODO: interface with `logs` (carry context around)
- [ ] TODO: interface with `lwt`
For now, instrument manually:
```ocaml
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