ocaml-opentelemetry/opentelemetry-lwt/Opentelemetry_lwt/Trace/index.html
2024-09-06 14:35:47 +00:00

57 lines
12 KiB
HTML
Raw 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>Trace (opentelemetry-lwt.Opentelemetry_lwt.Trace)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><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">opentelemetry-lwt</a> &#x00BB; <a href="../index.html">Opentelemetry_lwt</a> &#x00BB; Trace</nav><header class="odoc-preamble"><h1>Module <code><span>Opentelemetry_lwt.Trace</span></code></h1></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> <span class="keyword">struct</span> <span class="keyword">include</span> <a href="../../../opentelemetry/Opentelemetry/Trace/index.html">Opentelemetry.Trace</a> <span class="keyword">end</span></span></code></summary><p>Traces.</p><p>See <a href="https://opentelemetry.io/docs/reference/specification/overview/#tracing-signal">the spec</a></p><div class="odoc-spec"><div class="spec type anchored" id="type-span"><a href="#type-span" class="anchor"></a><code><span><span class="keyword">type</span> span</span><span> = <a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-t">Opentelemetry.Span.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-make_resource_spans"><a href="#val-make_resource_spans" class="anchor"></a><code><span><span class="keyword">val</span> make_resource_spans :
<span><span class="optlabel">?service_name</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?attrs</span>:
<span><span>(string
* <span>[&lt; <span>`Bool of bool</span>
<span><span>| `Float</span> of float</span>
<span><span>| `Int</span> of int</span>
<span>| `None</span>
<span><span>| `String</span> of string</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../opentelemetry/Opentelemetry_proto/Trace/index.html#type-span">Opentelemetry.Proto.Trace.span</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../opentelemetry/Opentelemetry_proto/Trace/index.html#type-resource_spans">Opentelemetry.Proto.Trace.resource_spans</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-emit"><a href="#val-emit" class="anchor"></a><code><span><span class="keyword">val</span> emit :
<span><span class="optlabel">?service_name</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?attrs</span>:
<span><span>(string
* <span>[&lt; <span>`Bool of bool</span>
<span><span>| `Float</span> of float</span>
<span><span>| `Int</span> of int</span>
<span>| `None</span>
<span><span>| `String</span> of string</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="#type-span">span</a> list</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Sync emitter.</p><p>This instructs the collector to forward the spans to some backend at a later point.</p><p><b>NOTE</b> be careful not to call this inside a Gc alarm, as it can cause deadlocks.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-scope"><a href="#type-scope" class="anchor"></a><code><span><span class="keyword">type</span> scope</span><span> = <a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a></span><span> = </span><span>{</span></code><ol><li id="type-scope.trace_id" class="def record field anchored"><a href="#type-scope.trace_id" class="anchor"></a><code><span>trace_id : <a href="../../../opentelemetry/Opentelemetry/Trace_id/index.html#type-t">Opentelemetry.Trace_id.t</a>;</span></code></li><li id="type-scope.span_id" class="def record field anchored"><a href="#type-scope.span_id" class="anchor"></a><code><span>span_id : <a href="../../../opentelemetry/Opentelemetry/Span_id/index.html#type-t">Opentelemetry.Span_id.t</a>;</span></code></li><li id="type-scope.events" class="def record field anchored"><a href="#type-scope.events" class="anchor"></a><code><span><span class="keyword">mutable</span> events : <span><a href="../../../opentelemetry/Opentelemetry/Event/index.html#type-t">Opentelemetry.Event.t</a> list</span>;</span></code></li><li id="type-scope.attrs" class="def record field anchored"><a href="#type-scope.attrs" class="anchor"></a><code><span><span class="keyword">mutable</span> attrs : <span><a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-key_value">Opentelemetry.Span.key_value</a> list</span>;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Scope.t</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_event"><a href="#val-add_event" class="anchor"></a><code><span><span class="keyword">val</span> add_event :
<span><a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <a href="../../../opentelemetry/Opentelemetry/Event/index.html#type-t">Opentelemetry.Event.t</a>)</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Scope.add_event</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_attrs"><a href="#val-add_attrs" class="anchor"></a><code><span><span class="keyword">val</span> add_attrs :
<span><a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../opentelemetry/Opentelemetry/index.html#type-key_value">Opentelemetry.key_value</a> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Scope.add_attrs</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_'"><a href="#val-with_'" class="anchor"></a><code><span><span class="keyword">val</span> with_' :
<span><span class="optlabel">?force_new_trace_id</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?trace_state</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?service_name</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?attrs</span>:<span><span>(string * <a href="../../../opentelemetry/Opentelemetry/index.html#type-value">Opentelemetry.value</a>)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?kind</span>:<a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-kind">Opentelemetry.Span.kind</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?trace_id</span>:<a href="../../../opentelemetry/Opentelemetry/Trace_id/index.html#type-t">Opentelemetry.Trace_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?parent</span>:<a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-id">Opentelemetry.Span.id</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?scope</span>:<a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?links</span>:<span><a href="../../../opentelemetry/Opentelemetry/Span_link/index.html#type-t">Opentelemetry.Span_link.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="#type-scope">scope</a> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span>(<span>unit <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'b</span>)</span>
* <span>(<span><span><span>(unit, string * <a href="../../../ocaml/Stdlib/Printexc/index.html#type-raw_backtrace">Stdlib.Printexc.raw_backtrace</a>)</span> <a href="../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span>
unit)</span></span></code></div></div><p>Sync span guard.</p><p>Notably, this includes <em>implicit</em> scope-tracking: if called without a <code>~scope</code> argument (or <code>~parent</code>/<code>~trace_id</code>), it will check in the <code>Ambient_context</code> for a surrounding environment, and use that as the scope. Similarly, it uses <code>Scope.with_ambient_scope</code> to <em>set</em> a new scope in the ambient context, so that any logically-nested calls to <a href="#val-with_"><code>with_</code></a> will use this span as their parent.</p><p><b>NOTE</b> be careful not to call this inside a Gc alarm, as it can cause deadlocks.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">force_new_trace_id</span> <p>if true (default false), the span will not use a ambient scope, the <code>~scope</code> argument, nor <code>~trace_id</code>, but will instead always create fresh identifiers for this span</p></li></ul></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_"><a href="#val-with_" class="anchor"></a><code><span><span class="keyword">val</span> with_ :
<span><span class="optlabel">?force_new_trace_id</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?trace_state</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?service_name</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?attrs</span>:<span><span>(string * <a href="../../../opentelemetry/Opentelemetry/index.html#type-value">Opentelemetry.value</a>)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?kind</span>:<a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-kind">Opentelemetry.Span.kind</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?trace_id</span>:<a href="../../../opentelemetry/Opentelemetry/Trace_id/index.html#type-t">Opentelemetry.Trace_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?parent</span>:<a href="../../../opentelemetry/Opentelemetry/Span/index.html#type-id">Opentelemetry.Span.id</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?scope</span>:<a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?links</span>:<span><a href="../../../opentelemetry/Opentelemetry/Span_link/index.html#type-t">Opentelemetry.Span_link.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="../../../opentelemetry/Opentelemetry/Scope/index.html#type-t">Opentelemetry.Scope.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="../../../lwt/Lwt/index.html#type-t">Lwt.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a0</span> <a href="../../../lwt/Lwt/index.html#type-t">Lwt.t</a></span></span></code></div><div class="spec-doc"><p>Sync span guard</p></div></div></div></body></html>