diff --git a/src/core/trace_core.ml b/src/core/trace_core.ml index c879d82..95d037b 100644 --- a/src/core/trace_core.ml +++ b/src/core/trace_core.ml @@ -64,12 +64,17 @@ let[@inline] with_span ?level ?__FUNCTION__ ~__FILE__ ~__LINE__ ?parent ?params (* fast path: no collector, no span *) f Collector.dummy_span -let[@inline] enter_span ?level ?__FUNCTION__ ~__FILE__ ~__LINE__ ?parent ?params - ?data name : span = +let[@inline] enter_span ?level ?__FUNCTION__ ~__FILE__ ~__LINE__ ?flavor ?parent + ?(params = []) ?data name : span = match A.get collector with | C_some (st, cbs) when check_level ?level () -> + let params = + match flavor with + | None -> params + | Some f -> Core_ext.Extension_span_flavor f :: params + in (enter_span_st [@inlined never]) st cbs ?__FUNCTION__ ~__FILE__ ~__LINE__ - ?parent ?params ?data name + ?parent ~params ?data name | _ -> Collector.dummy_span let[@inline] exit_span sp : unit = diff --git a/src/core/trace_core.mli b/src/core/trace_core.mli index 9bb2bc9..5c3179e 100644 --- a/src/core/trace_core.mli +++ b/src/core/trace_core.mli @@ -67,6 +67,7 @@ val enter_span : ?__FUNCTION__:string -> __FILE__:string -> __LINE__:int -> + ?flavor:[ `Sync | `Async ] -> ?parent:span option -> ?params:extension_parameter list -> ?data:(unit -> (string * user_data) list) ->