ocaml-opentelemetry/opentelemetry-client/Opentelemetry_client/Http_config/index.html
2026-04-06 19:57:49 +00:00

33 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Http_config (opentelemetry-client.Opentelemetry_client.Http_config)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">Index</a> &#x00BB; <a href="../../index.html">opentelemetry-client</a> &#x00BB; <a href="../index.html">Opentelemetry_client</a> &#x00BB; Http_config</nav><header class="odoc-preamble"><h1>Module <code><span>Opentelemetry_client.Http_config</span></code></h1><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>Use <a href="../Exporter_config/index.html"><code>Exporter_config</code></a> instead</p></li></ul></header><div class="odoc-content"><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <a href="../Exporter_config/index.html">Exporter_config</a></span></code></summary><div class="odoc-spec"><div class="spec type anchored" id="type-protocol"><a href="#type-protocol" class="anchor"></a><code><span><span class="keyword">type</span> protocol</span><span> = </span></code><ol><li id="type-protocol.Http_protobuf" class="def variant constructor anchored"><a href="#type-protocol.Http_protobuf" class="anchor"></a><code><span>| </span><span><span class="constructor">Http_protobuf</span></span></code></li><li id="type-protocol.Http_json" class="def variant constructor anchored"><a href="#type-protocol.Http_json" class="anchor"></a><code><span>| </span><span><span class="constructor">Http_json</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-log_level"><a href="#type-log_level" class="anchor"></a><code><span><span class="keyword">type</span> log_level</span><span> = <span><a href="../../../opentelemetry/Opentelemetry/Self_debug/index.html#type-level">Opentelemetry.Self_debug.level</a> option</span></span></code></div><div class="spec-doc"><p><code>None</code> disables internal diagnostic logging; <code>Some level</code> enables it at that level and above. Maps to <code>OTEL_LOG_LEVEL</code> env var.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-rest"><a href="#type-rest" class="anchor"></a><code><span><span class="keyword">type</span> rest</span></code></div><div class="spec-doc"><p>opaque type to force using <a href="#type-make"><code>make</code></a> while allowing record updates</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = </span><span>{</span></code><ol><li id="type-t.debug" class="def record field anchored"><a href="#type-t.debug" class="anchor"></a><code><span>debug : bool;</span></code><div class="def-doc"><span class="comment-delim">(*</span><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>Use <a href="#type-t.log_level"><code>log_level</code></a> instead. Debug the client itself?</p></li></ul><span class="comment-delim">*)</span></div></li><li id="type-t.log_level" class="def record field anchored"><a href="#type-t.log_level" class="anchor"></a><code><span>log_level : <a href="#type-log_level">log_level</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Log level for internal diagnostics. Read from OTEL_LOG_LEVEL or falls back to OTEL_OCAML_DEBUG for compatibility.</p><span class="comment-delim">*)</span></div></li><li id="type-t.sdk_disabled" class="def record field anchored"><a href="#type-t.sdk_disabled" class="anchor"></a><code><span>sdk_disabled : bool;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>If true, the SDK is completely disabled and no-ops. Read from OTEL_SDK_DISABLED. Default false.</p><span class="comment-delim">*)</span></div></li><li id="type-t.url_traces" class="def record field anchored"><a href="#type-t.url_traces" class="anchor"></a><code><span>url_traces : string;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Url to send traces/spans</p><span class="comment-delim">*)</span></div></li><li id="type-t.url_metrics" class="def record field anchored"><a href="#type-t.url_metrics" class="anchor"></a><code><span>url_metrics : string;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Url to send metrics</p><span class="comment-delim">*)</span></div></li><li id="type-t.url_logs" class="def record field anchored"><a href="#type-t.url_logs" class="anchor"></a><code><span>url_logs : string;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Url to send logs</p><span class="comment-delim">*)</span></div></li><li id="type-t.headers" class="def record field anchored"><a href="#type-t.headers" class="anchor"></a><code><span>headers : <span><span>(string * string)</span> list</span>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Global API headers sent to all endpoints. Default is none or &quot;OTEL_EXPORTER_OTLP_HEADERS&quot; if set. Signal-specific headers can override these.</p><span class="comment-delim">*)</span></div></li><li id="type-t.headers_traces" class="def record field anchored"><a href="#type-t.headers_traces" class="anchor"></a><code><span>headers_traces : <span><span>(string * string)</span> list</span>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Headers for traces endpoint. Merges OTEL_EXPORTER_OTLP_HEADERS with OTEL_EXPORTER_OTLP_TRACES_HEADERS (signal-specific takes precedence).</p><span class="comment-delim">*)</span></div></li><li id="type-t.headers_metrics" class="def record field anchored"><a href="#type-t.headers_metrics" class="anchor"></a><code><span>headers_metrics : <span><span>(string * string)</span> list</span>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Headers for metrics endpoint. Merges OTEL_EXPORTER_OTLP_HEADERS with OTEL_EXPORTER_OTLP_METRICS_HEADERS (signal-specific takes precedence).</p><span class="comment-delim">*)</span></div></li><li id="type-t.headers_logs" class="def record field anchored"><a href="#type-t.headers_logs" class="anchor"></a><code><span>headers_logs : <span><span>(string * string)</span> list</span>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Headers for logs endpoint. Merges OTEL_EXPORTER_OTLP_HEADERS with OTEL_EXPORTER_OTLP_LOGS_HEADERS (signal-specific takes precedence).</p><span class="comment-delim">*)</span></div></li><li id="type-t.protocol" class="def record field anchored"><a href="#type-t.protocol" class="anchor"></a><code><span>protocol : <a href="#type-protocol">protocol</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Wire protocol to use. Read from OTEL_EXPORTER_OTLP_PROTOCOL. Default Http_protobuf.</p><span class="comment-delim">*)</span></div></li><li id="type-t.timeout_ms" class="def record field anchored"><a href="#type-t.timeout_ms" class="anchor"></a><code><span>timeout_ms : int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>General timeout in milliseconds for exporter operations. Read from OTEL_EXPORTER_OTLP_TIMEOUT. Default 10_000.</p><span class="comment-delim">*)</span></div></li><li id="type-t.timeout_traces_ms" class="def record field anchored"><a href="#type-t.timeout_traces_ms" class="anchor"></a><code><span>timeout_traces_ms : int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Timeout for trace exports. Read from OTEL_EXPORTER_OTLP_TRACES_TIMEOUT, falls back to timeout_ms.</p><span class="comment-delim">*)</span></div></li><li id="type-t.timeout_metrics_ms" class="def record field anchored"><a href="#type-t.timeout_metrics_ms" class="anchor"></a><code><span>timeout_metrics_ms : int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Timeout for metric exports. Read from OTEL_EXPORTER_OTLP_METRICS_TIMEOUT, falls back to timeout_ms.</p><span class="comment-delim">*)</span></div></li><li id="type-t.timeout_logs_ms" class="def record field anchored"><a href="#type-t.timeout_logs_ms" class="anchor"></a><code><span>timeout_logs_ms : int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Timeout for log exports. Read from OTEL_EXPORTER_OTLP_LOGS_TIMEOUT, falls back to timeout_ms.</p><span class="comment-delim">*)</span></div></li><li id="type-t.traces" class="def record field anchored"><a href="#type-t.traces" class="anchor"></a><code><span>traces : <a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Per-provider batching config for traces. Default: batch=400, timeout=2s. The batch size is read from OTEL_BSP_MAX_EXPORT_BATCH_SIZE if set.</p><span class="comment-delim">*)</span></div></li><li id="type-t.metrics" class="def record field anchored"><a href="#type-t.metrics" class="anchor"></a><code><span>metrics : <a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Per-provider batching config for metrics. Default: batch=200, timeout=2s. The batch size is read from OTEL_METRIC_EXPORT_INTERVAL if set.</p><span class="comment-delim">*)</span></div></li><li id="type-t.logs" class="def record field anchored"><a href="#type-t.logs" class="anchor"></a><code><span>logs : <a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Per-provider batching config for logs. Default: batch=400, timeout=2s.</p><span class="comment-delim">*)</span></div></li><li id="type-t.self_trace" class="def record field anchored"><a href="#type-t.self_trace" class="anchor"></a><code><span>self_trace : bool;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>If true, the OTEL library will perform some self-instrumentation. Default <code>false</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul><span class="comment-delim">*)</span></div></li><li id="type-t.self_metrics" class="def record field anchored"><a href="#type-t.self_metrics" class="anchor"></a><code><span>self_metrics : bool;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>If true, the OTEL library will regularly emit metrics about itself. Default <code>false</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.90</li></ul><span class="comment-delim">*)</span></div></li><li id="type-t.http_concurrency_level" class="def record field anchored"><a href="#type-t.http_concurrency_level" class="anchor"></a><code><span>http_concurrency_level : <span>int option</span>;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>How many HTTP requests can be done simultaneously (at most)? This can be used to represent the size of a pool of workers where each worker gets a batch to send, send it, and repeats.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.90</li></ul><span class="comment-delim">*)</span></div></li><li id="type-t.retry_max_attempts" class="def record field anchored"><a href="#type-t.retry_max_attempts" class="anchor"></a><code><span>retry_max_attempts : int;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Maximum number of retry attempts for failed exports. 0 means no retry, 1 means one retry after initial failure. Default 3.</p><span class="comment-delim">*)</span></div></li><li id="type-t.retry_initial_delay_ms" class="def record field anchored"><a href="#type-t.retry_initial_delay_ms" class="anchor"></a><code><span>retry_initial_delay_ms : float;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Initial delay in milliseconds before first retry. Default 100ms.</p><span class="comment-delim">*)</span></div></li><li id="type-t.retry_max_delay_ms" class="def record field anchored"><a href="#type-t.retry_max_delay_ms" class="anchor"></a><code><span>retry_max_delay_ms : float;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Maximum delay in milliseconds between retries. Default 5000ms.</p><span class="comment-delim">*)</span></div></li><li id="type-t.retry_backoff_multiplier" class="def record field anchored"><a href="#type-t.retry_backoff_multiplier" class="anchor"></a><code><span>retry_backoff_multiplier : float;</span></code><div class="def-doc"><span class="comment-delim">(*</span><p>Multiplier for exponential backoff. Default 2.0.</p><span class="comment-delim">*)</span></div></li><li id="type-t._rest" class="def record field anchored"><a href="#type-t._rest" class="anchor"></a><code><span>_rest : <a href="#type-rest">rest</a>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>Configuration.</p><p>To build one, use <a href="#type-make"><code>make</code></a> below. This might be extended with more fields in the future.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-default_url"><a href="#val-default_url" class="anchor"></a><code><span><span class="keyword">val</span> default_url : string</span></code></div><div class="spec-doc"><p>The default base URL for the config.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-make"><a href="#type-make" class="anchor"></a><code><span><span class="keyword">type</span> <span>'k make</span></span><span> =
<span><span class="optlabel">?debug</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?log_level</span>:<a href="#type-log_level">log_level</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?sdk_disabled</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?url</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?url_traces</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?url_metrics</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?url_logs</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?batch_traces</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?batch_metrics</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?batch_logs</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?batch_timeout_ms</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?traces</span>:<a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?metrics</span>:<a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?logs</span>:<a href="../../../opentelemetry/Opentelemetry/Provider_config/index.html#type-t">Opentelemetry.Provider_config.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?headers</span>:<span><span>(string * string)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?headers_traces</span>:<span><span>(string * string)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?headers_metrics</span>:<span><span>(string * string)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?headers_logs</span>:<span><span>(string * string)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?protocol</span>:<a href="#type-protocol">protocol</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?timeout_ms</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?timeout_traces_ms</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?timeout_metrics_ms</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?timeout_logs_ms</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?self_trace</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?self_metrics</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?http_concurrency_level</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?retry_max_attempts</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?retry_initial_delay_ms</span>:float <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?retry_max_delay_ms</span>:float <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?retry_backoff_multiplier</span>:float <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'k</span></span></code></div><div class="spec-doc"><p>A function that gathers all the values needed to construct a <a href="#type-t"><code>t</code></a>, and produces a <code>'k</code>. <code>'k</code> is typically a continuation used to construct a configuration that includes a <a href="#type-t"><code>t</code></a>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">url</span> <p>base url used to construct per-signal urls. Per-signal url options take precedence over this base url. If not provided, this defaults to &quot;OTEL_EXPORTER_OTLP_ENDPOINT&quot; if set, or if not <a href="#val-default_url"><code>default_url</code></a>.</p></li></ul><p>Example of constructed per-signal urls with the base url http://localhost:4318</p><ul><li>Traces: http://localhost:4318/v1/traces</li><li>Metrics: http://localhost:4318/v1/metrics</li><li>Logs: http://localhost:4318/v1/logs</li></ul><p>Use per-signal url options if different urls are needed for each signal type.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">url_traces</span> <p>url to send traces, or &quot;OTEL_EXPORTER_OTLP_TRACES_ENDPOINT&quot; if set. The url is used as-is without any modification.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">url_metrics</span> <p>url to send metrics, or &quot;OTEL_EXPORTER_OTLP_METRICS_ENDPOINT&quot; if set. The url is used as-is without any modification.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">url_logs</span> <p>url to send logs, or &quot;OTEL_EXPORTER_OTLP_LOGS_ENDPOINT&quot; if set. The url is used as-is without any modification.</p></li></ul></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-ENV"><a href="#module-type-ENV" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-ENV/index.html">ENV</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Construct, inspect, and update <a href="#type-t"><code>t</code></a> configurations, drawing defaults from the environment</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Env"><a href="#module-Env" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Env/index.html">Env</a></span><span> () : <a href="module-type-ENV/index.html">ENV</a></span></code></div><div class="spec-doc"><p>A generative functor that produces a state-space that can read configuration values from the environment, provide stateful configuration setting and accessing operations, and a way to make a new <a href="#type-t"><code>t</code></a> configuration record</p></div></div></details></div></div></body></html>