mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
176 lines
3.9 KiB
OCaml
176 lines
3.9 KiB
OCaml
(** Main Opentelemetry API for libraries and user code. *)
|
|
|
|
module Core = Opentelemetry_core
|
|
(** Core types and definitions *)
|
|
|
|
module Interval_limiter = Interval_limiter
|
|
(** Utility to limit the frequency of some event
|
|
@since NEXT_RELEASE *)
|
|
|
|
(** {2 Wire format} *)
|
|
|
|
module Proto = Opentelemetry_proto
|
|
(** Protobuf types.
|
|
|
|
This is mostly useful internally. Users should not need to touch it. *)
|
|
|
|
(** {2 Time} *)
|
|
|
|
module Clock = Clock
|
|
module Timestamp_ns = Timestamp_ns
|
|
|
|
(** {2 Export signals to some external collector.} *)
|
|
|
|
module Emitter = Opentelemetry_emitter.Emitter
|
|
|
|
module Exporter = struct
|
|
include Exporter
|
|
|
|
(** Get a tracer from this exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_tracer (self : t) : Tracer.t = Tracer.of_exporter self
|
|
|
|
(** Get a meter from this exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_meter (self : t) : Meter.t = Meter.of_exporter self
|
|
|
|
(** Get a logger from this exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_logger (self : t) : Logger.t = Logger.of_exporter self
|
|
end
|
|
|
|
module Sdk = struct
|
|
include Sdk
|
|
|
|
(** Get a tracer forwarding to the current main exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_tracer ?name ?version ?attrs ?__MODULE__ () =
|
|
Trace_provider.get_tracer ?name ?version ?attrs ?__MODULE__ ()
|
|
|
|
(** Get a meter forwarding to the current main exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_meter ?name ?version ?attrs ?__MODULE__ () =
|
|
Meter_provider.get_meter ?name ?version ?attrs ?__MODULE__ ()
|
|
|
|
(** Get a logger forwarding to the current main exporter.
|
|
@since NEXT_RELEASE *)
|
|
let get_logger ?name ?version ?attrs ?__MODULE__ () =
|
|
Log_provider.get_logger ?name ?version ?attrs ?__MODULE__ ()
|
|
|
|
let self_debug_to_stderr = Sdk.self_debug_to_stderr
|
|
end
|
|
|
|
module Main_exporter = Sdk [@@deprecated "use Sdk instead"]
|
|
|
|
module Collector = struct
|
|
include Exporter
|
|
include Sdk
|
|
end
|
|
[@@deprecated "Use 'Exporter' instead"]
|
|
|
|
module Provider_config = Provider_config
|
|
module Self_debug = Self_debug
|
|
module Dynamic_enricher = Dynamic_enricher
|
|
module Trace_provider = Trace_provider
|
|
module Meter_provider = Meter_provider
|
|
module Log_provider = Log_provider
|
|
|
|
(** {2 Identifiers} *)
|
|
|
|
module Trace_id = Trace_id
|
|
|
|
let k_trace_id = Trace_id.k_trace_id
|
|
|
|
module Span_id = Span_id
|
|
module Span_ctx = Span_ctx
|
|
|
|
let k_ambient = Span_ctx.k_ambient
|
|
|
|
(** {2 Attributes and conventions} *)
|
|
|
|
module Conventions = Conventions
|
|
module Value = Value
|
|
module Key_value = Key_value
|
|
|
|
type value = Value.t
|
|
(** A value in a key/value attribute *)
|
|
|
|
type key_value = Key_value.t
|
|
|
|
(** {2 Global settings} *)
|
|
|
|
module Globals = Globals
|
|
|
|
(** {2 Traces and Spans} *)
|
|
|
|
module Event = Event
|
|
module Span_link = Span_link
|
|
module Span_status = Span_status
|
|
module Span_kind = Span_kind
|
|
|
|
(** {2 Traces} *)
|
|
|
|
module Span = Span
|
|
module Ambient_span = Ambient_span
|
|
|
|
module Tracer = struct
|
|
include Tracer
|
|
|
|
let default = Trace_provider.default_tracer
|
|
|
|
let with_thunk_and_finally = Trace_provider.with_thunk_and_finally
|
|
|
|
let with_ = Trace_provider.with_
|
|
end
|
|
|
|
module Trace = Tracer [@@deprecated "use Tracer instead"]
|
|
|
|
(** {2 Metrics} *)
|
|
|
|
module Metrics = Metrics
|
|
module Instrument = Instrument
|
|
|
|
module Meter = struct
|
|
include Meter
|
|
|
|
let default = Meter_provider.default_meter
|
|
|
|
let add_to_exporter = Meter_provider.add_to_exporter
|
|
|
|
let add_to_main_exporter = Meter_provider.add_to_main_exporter
|
|
end
|
|
|
|
(** {2 Logs} *)
|
|
|
|
module Log_record = Log_record
|
|
|
|
module Logger = struct
|
|
include Logger
|
|
|
|
let default = Log_provider.default_logger
|
|
|
|
let log = Log_provider.log
|
|
|
|
let logf = Log_provider.logf
|
|
end
|
|
|
|
module Logs = Logger [@@deprecated "use Logger"]
|
|
|
|
(** {2 Utils} *)
|
|
|
|
module Any_signal = Any_signal
|
|
module Any_signal_l = Any_signal_l
|
|
module Trace_context = Trace_context
|
|
module Gc_metrics = Gc_metrics
|
|
|
|
module Aswitch = Aswitch
|
|
(** @since NEXT_RELEASE *)
|
|
|
|
module Alist = Alist
|
|
(** Atomic list, for internal usage
|
|
@since 0.7 *)
|
|
|
|
(* *)
|
|
|
|
module GC_metrics = Gc_metrics
|
|
[@@deprecated "use Gc_metrics (beware capitalization)"]
|