package opentelemetry

  1. Overview
  2. Docs
Instrumentation for https://opentelemetry.io

Install

dune-project
 Dependency

Authors

Maintainers

Sources

opentelemetry-0.13.tbz
sha256=e29a0aa7168357ebbed0f50b1ba9374bc277b280935531e77d90183c732b98f6
sha512=2fd9dcf03695be7b7888c5fb3d0dbe2acdcfbb7c99dfa7b2ff2fc0bb626c4e35ec8d2be71632e440b9df1cc79529c5258ca98876a373a41cff48e4b1757c5767

doc/src/opentelemetry.client/self_trace.ml.html

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