package opentelemetry

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

opentelemetry-0.12.tbz
sha256=ca92e7395495f73b46316607c514ce0dbe5fab129dddd9a17b353f835dcbf77d
sha512=ea2afd07c8db955364681f90388959db97d7b7f5b0836bc4045eca929968d6d77905e3aa66802226c0791c2552d0e281bdf2dbfe7ed90e9877ce3cedc343823f

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