Opentelemetry_lwt.Trace
include module type of struct include Opentelemetry.Trace end
Traces.
See the spec
type span = Opentelemetry.Span.t
val make_resource_spans :
?service_name:string ->
?attrs:
(string
* [< `Bool of bool
| `Float of float
| `Int of int
| `None
| `String of string ])
list ->
Opentelemetry.Proto.Trace.span list ->
Opentelemetry.Proto.Trace.resource_spans
val emit :
?service_name:string ->
?attrs:
(string
* [< `Bool of bool
| `Float of float
| `Int of int
| `None
| `String of string ])
list ->
span list ->
unit
Sync emitter.
This instructs the collector to forward the spans to some backend at a later point.
NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.
type scope = Opentelemetry.Scope.t = {
trace_id : Opentelemetry.Trace_id.t;
span_id : Opentelemetry.Span_id.t;
mutable items : Opentelemetry.Scope.item_list;
}
val add_event :
Opentelemetry.Scope.t ->
(unit -> Opentelemetry.Event.t) ->
unit
val add_attrs :
Opentelemetry.Scope.t ->
(unit -> Opentelemetry.key_value list) ->
unit
val with_' :
?force_new_trace_id:bool ->
?trace_state:string ->
?service_name:string ->
?attrs:(string * Opentelemetry.value) list ->
?kind:Opentelemetry.Span.kind ->
?trace_id:Opentelemetry.Trace_id.t ->
?parent:Opentelemetry.Span.id ->
?scope:Opentelemetry.Scope.t ->
?links:Opentelemetry.Span_link.t list ->
string ->
(Opentelemetry.Scope.t -> 'a) ->
(unit -> 'a) * ((unit, exn * Stdlib.Printexc.raw_backtrace) result -> unit)
Sync span guard.
Notably, this includes implicit scope-tracking: if called without a ~scope
argument (or ~parent
/~trace_id
), it will check in the Ambient_context
for a surrounding environment, and use that as the scope. Similarly, it uses Scope.with_ambient_scope
to set a new scope in the ambient context, so that any logically-nested calls to with_
will use this span as their parent.
NOTE be careful not to call this inside a Gc alarm, as it can cause deadlocks.
val with_ :
?force_new_trace_id:bool ->
?trace_state:string ->
?service_name:string ->
?attrs:(string * Opentelemetry.value) list ->
?kind:Opentelemetry.Span.kind ->
?trace_id:Opentelemetry.Trace_id.t ->
?parent:Opentelemetry.Span.id ->
?scope:Opentelemetry.Scope.t ->
?links:Opentelemetry.Span_link.t list ->
string ->
(Opentelemetry.Scope.t -> 'a Lwt.t) ->
'a Lwt.t
Sync span guard