mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-10 12:45:45 -04:00
follow more closely the official OTEL recommendations, and also try to reduce global state. - use a class type for `Exporter.t` (instead of 1st class module `backend`) - have tracer, logger, metrics_emitter as explicit objects - keep a `Main_exporter` to make migration easier, but discouraged - add stdout_exporter and debug_exporter to opentelemetry.client
20 lines
675 B
OCaml
20 lines
675 B
OCaml
open Common_
|
|
open Proto.Trace
|
|
|
|
type t = span_link
|
|
|
|
let make ~trace_id ~span_id ?trace_state ?(attrs = []) ?dropped_attributes_count
|
|
() : t =
|
|
let attributes = List.map Key_value.conv attrs in
|
|
let dropped_attributes_count =
|
|
Option.map Int32.of_int dropped_attributes_count
|
|
in
|
|
make_span_link
|
|
~trace_id:(Trace_id.to_bytes trace_id)
|
|
~span_id:(Span_id.to_bytes span_id) ?trace_state ~attributes
|
|
?dropped_attributes_count ()
|
|
|
|
let[@inline] of_span_ctx ?trace_state ?attrs ?dropped_attributes_count
|
|
(ctx : Span_ctx.t) : t =
|
|
make ~trace_id:(Span_ctx.trace_id ctx) ~span_id:(Span_ctx.parent_id ctx)
|
|
?trace_state ?attrs ?dropped_attributes_count ()
|