mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-05-05 17:04:52 -04:00
8 lines
10 KiB
HTML
8 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Opentelemetry_trace (opentelemetry.Opentelemetry_trace)</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> » <a href="../index.html">opentelemetry</a> » Opentelemetry_trace</nav><header class="odoc-preamble"><h1>Module <code><span>Opentelemetry_trace</span></code></h1><p><code>opentelemetry.trace</code> implements a <a href="../../trace/Trace_core/Collector/index.html"><code>Trace_core.Collector</code></a> for <a href="https://v3.ocaml.org/p/trace">ocaml-trace</a>.</p><p>After installing this collector with <a href="#val-setup"><code>setup</code></a>, you can consume libraries that use <code>ocaml-trace</code>, and they will automatically emit OpenTelemetry spans and logs.</p><p><code>Ambient_context</code> is used to propagate the current span to child spans.</p><p><code>Trace_core.extension_event</code> is used to expose OTEL-specific features on top of the common tracing interface, e.g. to set the span kind:</p><pre class="language-ocaml"><code> let@ span = Trace_core.with_span ~__FILE__ ~__LINE__ "my-span" in
|
||
Opentelemetry_trace.set_span_kind span Span_kind_client
|
||
(* ... *)</code></pre></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module-substitution anchored" id="module-OTEL"><a href="#module-OTEL" class="anchor"></a><code><span><span class="keyword">module</span> OTEL := <a href="../Opentelemetry_core/index.html">Opentelemetry_core</a></span></code></div></div><div class="odoc-spec"><div class="spec module-substitution anchored" id="module-Otrace"><a href="#module-Otrace" class="anchor"></a><code><span><span class="keyword">module</span> Otrace := <a href="../../trace/Trace_core/index.html">Trace_core</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Extensions"><a href="#module-Extensions" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Extensions/index.html">Extensions</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>The extension events for <a href="../../trace/Trace_core/index.html"><code>Trace_core</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup"><a href="#val-setup" class="anchor"></a><code><span><span class="keyword">val</span> setup : <span>unit <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Install the OTEL backend as a <code>Trace</code> collector. The trace collector will use <code>Trace_provider.get</code>, <code>Log_provider.get</code>, and <code>Meter_provider.get</code> to get the current tracer, logger, meter and use that to emit signals.</p><p>This will not do much until a proper <a href="../Opentelemetry_core/Exporter/index.html#type-t"><code>OTEL.Exporter.t</code></a> is installed via <code>OTEL.Sdk.set</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup_with_otel_exporter"><a href="#val-setup_with_otel_exporter" class="anchor"></a><code><span><span class="keyword">val</span> setup_with_otel_exporter : <span><a href="../Opentelemetry_core/Exporter/index.html#type-t">OTEL.Exporter.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Same as <a href="#val-setup"><code>setup</code></a>, but also calls <code>OTEL.Sdk.set otel_exporter</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup_with_otel_backend"><a href="#val-setup_with_otel_backend" class="anchor"></a><code><span><span class="keyword">val</span> setup_with_otel_backend : <span><a href="../Opentelemetry_core/Exporter/index.html#type-t">OTEL.Exporter.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use setup_with_otel_exporter</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-collector"><a href="#val-collector" class="anchor"></a><code><span><span class="keyword">val</span> collector : <a href="../../trace/Trace_core/index.html#type-collector">Trace_core.collector</a></span></code></div><div class="spec-doc"><p>Make a Trace collector that uses the main OTEL providers to emit traces, metrics, and logs</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ambient_span_provider"><a href="#val-ambient_span_provider" class="anchor"></a><code><span><span class="keyword">val</span> ambient_span_provider : <a href="../../trace/Trace_core/Ambient_span_provider/index.html#type-t">Trace_core.Ambient_span_provider.t</a></span></code></div><div class="spec-doc"><p>Uses <a href="../../ambient-context/Ambient_context/index.html"><code>Ambient_context</code></a> to provide contextual spans in <a href="../../trace/Trace_core/index.html"><code>Trace_core</code></a>. It is automatically installed by the <a href="#val-collector"><code>collector</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-link_spans"><a href="#val-link_spans" class="anchor"></a><code><span><span class="keyword">val</span> link_spans : <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>link_spans sp1 sp2</code> modifies <code>sp1</code> by adding a span link to <code>sp2</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.11</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-link_span_to_otel_ctx"><a href="#val-link_span_to_otel_ctx" class="anchor"></a><code><span><span class="keyword">val</span> link_span_to_otel_ctx : <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> <span><a href="../Opentelemetry_core/Span_ctx/index.html#type-t">OTEL.Span_ctx.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>link_spans sp1 sp_ctx2</code> modifies <code>sp1</code> by adding a span link to <code>sp_ctx2</code>. It must be the case that <code>sp1</code> is a currently active span.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.90</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_span_kind"><a href="#val-set_span_kind" class="anchor"></a><code><span><span class="keyword">val</span> set_span_kind : <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> <span><a href="../Opentelemetry_core/Span/index.html#type-kind">OTEL.Span.kind</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>set_span_kind sp k</code> sets the span's kind.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_span_status"><a href="#val-set_span_status" class="anchor"></a><code><span><span class="keyword">val</span> set_span_status : <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> <span><a href="../Opentelemetry_core/Span_status/index.html#type-t">OTEL.Span_status.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.90</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-record_exception"><a href="#val-record_exception" class="anchor"></a><code><span><span class="keyword">val</span> record_exception :
|
||
<span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span>
|
||
<span>exn <span class="arrow">-></span></span>
|
||
<span><a href="../../ocaml/Stdlib/Printexc/index.html#type-raw_backtrace">Stdlib.Printexc.raw_backtrace</a> <span class="arrow">-></span></span>
|
||
unit</span></code></div><div class="spec-doc"><p>Record exception in the current span.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_ambient_span"><a href="#val-with_ambient_span" class="anchor"></a><code><span><span class="keyword">val</span> with_ambient_span : <span><a href="../../trace/Trace_core/index.html#type-span">Otrace.span</a> <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>with_ambient_span sp f</code> calls <code>f()</code> in an ambient context where <code>sp</code> is the current span.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_ambient_span_ctx"><a href="#val-with_ambient_span_ctx" class="anchor"></a><code><span><span class="keyword">val</span> with_ambient_span_ctx : <span><a href="../Opentelemetry_core/Span_ctx/index.html#type-t">OTEL.Span_ctx.t</a> <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>with_ambient_span_ctx spc f</code> calls <code>f()</code> in a scope where <code>spc</code> is the ambient span-context</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Well_known"><a href="#module-Well_known" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Well_known/index.html">Well_known</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div></div></body></html>
|