package opentelemetry

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file self_trace.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module OT = Opentelemetry

let enabled = Atomic.make true

let add_event (scope : OT.Scope.t) ev = OT.Scope.add_event scope (fun () -> ev)

let dummy_trace_id_ = OT.Trace_id.dummy

let dummy_span_id = OT.Span_id.dummy

let with_ ?kind ?attrs name f =
  if Atomic.get enabled then
    OT.Trace.with_ ?kind ?attrs name f
  else (
    (* A new scope is needed here because it might be modified *)
    let scope =
      OT.Scope.make ~trace_id:dummy_trace_id_ ~span_id:dummy_span_id ()
    in
    f scope
  )

let set_enabled b = Atomic.set enabled b