Library
Module
Module type
Parameter
Class
Class type
val trace :
?service_name:string ->
?attrs:Otel.Span.key_value list ->
('conn ->
Cohttp_lwt.Request.t ->
'body ->
(Cohttp_lwt.Response.t * 'body) Lwt.t) ->
'conn ->
Cohttp_lwt.Request.t ->
'body ->
(Cohttp_lwt.Response.t * 'body) Lwt.t
Trace requests to a Cohttp server.
Use it like this:
let my_server callback = let callback_traced = Opentelemetry_cohttp_lwt.Server.trace ~service_name:"my-service" (fun _scope -> callback) in Cohttp_lwt_unix.Server.create ~mode:(`TCP (`Port 8080)) (Server.make () ~callback:callback_traced)
val with_ :
?trace_state:string ->
?service_name:string ->
?attrs:Otel.Span.key_value list ->
?kind:Otel.Span.kind ->
?links:(Otel.Trace_id.t * Otel.Span_id.t * string) list ->
string ->
Cohttp_lwt.Request.t ->
(Cohttp_lwt.Request.t -> 'a Lwt.t) ->
'a Lwt.t
Trace a new internal span.
Identical to Opentelemetry_lwt.Trace.with_
, but fetches/stores the trace scope in the x-ocaml-otel-traceparent
header in the request for convenience.
val get_trace_context :
?from:[ `Internal | `External ] ->
Cohttp_lwt.Request.t ->
Otel.Trace.scope option
Get the tracing scope from the custom x-ocaml-otel-traceparent
header added by trace
and with_
.
val set_trace_context :
Otel.Trace.scope ->
Cohttp_lwt.Request.t ->
Cohttp_lwt.Request.t
Set the tracing scope in the custom x-ocaml-otel-traceparent
header used by trace
and with_
.
val remove_trace_context : Cohttp_lwt.Request.t -> Cohttp_lwt.Request.t
Strip the custom x-ocaml-otel-traceparent
header added by trace
and with_
.