mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 04:17:56 -04:00
79 lines
2.8 KiB
OCaml
79 lines
2.8 KiB
OCaml
(** Configuration for the ocurl backend *)
|
|
|
|
type t = private {
|
|
debug: bool;
|
|
url_traces: string; (** Url to send traces *)
|
|
url_metrics: string; (** Url to send metrics*)
|
|
url_logs: string; (** Url to send logs *)
|
|
headers: (string * string) list;
|
|
(** API headers sent to the endpoint. Default is none or
|
|
"OTEL_EXPORTER_OTLP_HEADERS" if set. *)
|
|
batch_timeout_ms: int;
|
|
(** Number of milliseconds after which we will emit a batch, even
|
|
incomplete. Note that the batch might take longer than that, because
|
|
this is only checked when a new event occurs or when a tick is
|
|
emitted. Default 2_000. *)
|
|
bg_threads: int;
|
|
(** Are there background threads, and how many? Default [4]. This will be
|
|
adjusted to be at least [1] and at most [32]. *)
|
|
ticker_thread: bool;
|
|
(** If true, start a thread that regularly checks if signals should be
|
|
sent to the collector. Default [true] *)
|
|
ticker_interval_ms: int;
|
|
(** Interval for ticker thread, in milliseconds. This is only useful if
|
|
[ticker_thread] is [true]. This will be clamped between [2 ms] and
|
|
some longer interval (maximum [60s] currently). Default 500.
|
|
@since 0.7 *)
|
|
self_trace: bool;
|
|
(** If true, the OTEL library will also emit its own spans. Default
|
|
[false].
|
|
@since 0.7 *)
|
|
}
|
|
(** Configuration.
|
|
|
|
To build one, use {!make} below. This might be extended with more fields in
|
|
the future. *)
|
|
|
|
val make :
|
|
?debug:bool ->
|
|
?url:string ->
|
|
?url_traces:string ->
|
|
?url_metrics:string ->
|
|
?url_logs:string ->
|
|
?headers:(string * string) list ->
|
|
?batch_timeout_ms:int ->
|
|
?bg_threads:int ->
|
|
?ticker_thread:bool ->
|
|
?ticker_interval_ms:int ->
|
|
?self_trace:bool ->
|
|
unit ->
|
|
t
|
|
(** Make a configuration.
|
|
|
|
@param url
|
|
base url used to construct per-signal urls. Per-signal url options take
|
|
precedence over this base url. Default is "http://localhost:4318", or
|
|
"OTEL_EXPORTER_OTLP_ENDPOINT" if set.
|
|
|
|
Example of constructed per-signal urls with the base url
|
|
http://localhost:4318
|
|
- Traces: http://localhost:4318/v1/traces
|
|
- Metrics: http://localhost:4318/v1/metrics
|
|
- Logs: http://localhost:4318/v1/logs
|
|
|
|
Use per-signal url options if different urls are needed for each signal
|
|
type.
|
|
|
|
@param url_traces
|
|
url to send traces, or "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" if set. The
|
|
url is used as-is without any modification.
|
|
|
|
@param url_metrics
|
|
url to send metrics, or "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT" if set. The
|
|
url is used as-is without any modification.
|
|
|
|
@param url_logs
|
|
url to send logs, or "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT" if set. The url is
|
|
used as-is without any modification. *)
|
|
|
|
val pp : Format.formatter -> t -> unit
|