update docs

This commit is contained in:
Simon Cruanes 2023-06-14 10:48:13 -04:00
parent 65a914984c
commit 96b9624616
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
8 changed files with 45 additions and 6 deletions

View file

@ -11,8 +11,8 @@
<div class="by-name">
<h2>OCaml package documentation</h2>
<ol>
<li><a href="trace/index.html">trace</a> <span class="version">0.1</span></li>
<li><a href="trace-tef/index.html">trace-tef</a> <span class="version">0.1</span></li>
<li><a href="trace/index.html">trace</a> <span class="version">0.2</span></li>
<li><a href="trace-tef/index.html">trace-tef</a> <span class="version">0.2</span></li>
</ol>
</div>
</main>

View file

@ -2,4 +2,4 @@
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_tef (trace-tef.Trace_tef)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace-tef</a> &#x00BB; Trace_tef</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_tef</span></code></h1></header><div class="odoc-content"><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 :
<span>out:<span>[ <span>`File of string</span> <span>| `Stderr</span> <span>| `Stdout</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="../../trace/Trace/index.html#type-collector">Trace.collector</a></span></code></div><div class="spec-doc"><p>Make a collector that writes into the given output. See <a href="#val-setup"><code>setup</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-output"><a href="#type-output" class="anchor"></a><code><span><span class="keyword">type</span> output</span><span> = </span><span>[ </span></code><ol><li id="type-output.Stdout" class="def constructor anchored"><a href="#type-output.Stdout" class="anchor"></a><code><span>| </span></code><code><span>`Stdout</span></code></li><li id="type-output.Stderr" class="def constructor anchored"><a href="#type-output.Stderr" class="anchor"></a><code><span>| </span></code><code><span>`Stderr</span></code></li><li id="type-output.File" class="def constructor anchored"><a href="#type-output.File" class="anchor"></a><code><span>| </span></code><code><span>`File <span class="keyword">of</span> string</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>Output for tracing.</p><ul><li><code>`Stdout</code> will enable tracing and print events on stdout</li><li><code>`Stderr</code> will enable tracing and print events on stderr</li><li><code>`File &quot;foo&quot;</code> will enable tracing and print events into file named &quot;foo&quot;</li></ul></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>?out:<span>[ <a href="#type-output">output</a> <span>| `Env</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>setup ()</code> installs the collector depending on <code>out</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">out</span> <p>can take different values:</p><ul><li>regular <a href="#type-output"><code>output</code></a> value to specify where events go</li><li><code>`Env</code> will enable tracing if the environment variable &quot;TRACE&quot; is set.</li></ul><p>If it's set to anything but &quot;1&quot;, the value is taken to be the file path into which to write. If it's set to &quot;1&quot;, then the file is &quot;trace.json&quot;.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_setup"><a href="#val-with_setup" class="anchor"></a><code><span><span class="keyword">val</span> with_setup : <span>?out:<span>[ <a href="#type-output">output</a> <span>| `Env</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Setup, and make sure to shutdown before exiting</p></div></div></div></body></html>
<a href="../../trace/Trace/index.html#type-collector">Trace.collector</a></span></code></div><div class="spec-doc"><p>Make a collector that writes into the given output. See <a href="#val-setup"><code>setup</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-output"><a href="#type-output" class="anchor"></a><code><span><span class="keyword">type</span> output</span><span> = </span><span>[ </span></code><ol><li id="type-output.Stdout" class="def constructor anchored"><a href="#type-output.Stdout" class="anchor"></a><code><span>| </span></code><code><span>`Stdout</span></code></li><li id="type-output.Stderr" class="def constructor anchored"><a href="#type-output.Stderr" class="anchor"></a><code><span>| </span></code><code><span>`Stderr</span></code></li><li id="type-output.File" class="def constructor anchored"><a href="#type-output.File" class="anchor"></a><code><span>| </span></code><code><span>`File <span class="keyword">of</span> string</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>Output for tracing.</p><ul><li><code>`Stdout</code> will enable tracing and print events on stdout</li><li><code>`Stderr</code> will enable tracing and print events on stderr</li><li><code>`File &quot;foo&quot;</code> will enable tracing and print events into file named &quot;foo&quot;</li></ul></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>?out:<span>[ <a href="#type-output">output</a> <span>| `Env</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>setup ()</code> installs the collector depending on <code>out</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">out</span> <p>can take different values:</p><ul><li>regular <a href="#type-output"><code>output</code></a> value to specify where events go</li><li><code>`Env</code> will enable tracing if the environment variable &quot;TRACE&quot; is set.</li></ul><ul><li>If it's set to &quot;1&quot;, then the file is &quot;trace.json&quot;.</li><li>If it's set to &quot;stdout&quot;, then logging happens on stdout (since 0.2)</li><li>If it's set to &quot;stderr&quot;, then logging happens on stdout (since 0.2)</li><li>Otherwise, if it's set to a non empty string, the value is taken to be the file path into which to write.</li></ul></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_setup"><a href="#val-with_setup" class="anchor"></a><code><span><span class="keyword">val</span> with_setup : <span>?out:<span>[ <a href="#type-output">output</a> <span>| `Env</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>with_setup () f</code> (optionally) sets a collector up, calls <code>f()</code>, and makes sure to shutdown before exiting. since 0.2 a () argument was added.</p></div></div></div></body></html>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace (trace.Trace)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace</a> &#x00BB; Trace</nav><header class="odoc-preamble"><h1>Module <code><span>Trace</span></code></h1><p>Trace.</p></header><nav class="odoc-toc"><ul><li><a href="#tracing">Tracing</a></li><li><a href="#collector">Collector</a></li></ul></nav><div class="odoc-content"><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> = int64</span></code></div><div class="spec-doc"><p>A span identifier.</p><p>The meaning of the identifier depends on the collector.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-user_data"><a href="#type-user_data" class="anchor"></a><code><span><span class="keyword">type</span> user_data</span><span> = </span><span>[ </span></code><ol><li id="type-user_data.Int" class="def constructor anchored"><a href="#type-user_data.Int" class="anchor"></a><code><span>| </span></code><code><span>`Int <span class="keyword">of</span> int</span></code></li><li id="type-user_data.String" class="def constructor anchored"><a href="#type-user_data.String" class="anchor"></a><code><span>| </span></code><code><span>`String <span class="keyword">of</span> string</span></code></li><li id="type-user_data.Bool" class="def constructor anchored"><a href="#type-user_data.Bool" class="anchor"></a><code><span>| </span></code><code><span>`Bool <span class="keyword">of</span> bool</span></code></li><li id="type-user_data.None" class="def constructor anchored"><a href="#type-user_data.None" class="anchor"></a><code><span>| </span></code><code><span>`None</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>User defined data, generally passed as key/value pairs to whatever collector is installed (if any).</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Collector"><a href="#module-Collector" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Collector/index.html">Collector</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A global collector.</p></div></div><h3 id="tracing"><a href="#tracing" class="anchor"></a>Tracing</h3><div class="odoc-spec"><div class="spec value anchored" id="val-enabled"><a href="#val-enabled" class="anchor"></a><code><span><span class="keyword">val</span> enabled : <span>unit <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is there a collector?</p><p>This is fast, so that the traced program can check it before creating any span or message</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-enter_span"><a href="#val-enter_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_span :
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace (trace.Trace)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace</a> &#x00BB; Trace</nav><header class="odoc-preamble"><h1>Module <code><span>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="../Trace_core/index.html">Trace_core</a> <span class="keyword">end</span></span></code></summary><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> = int64</span></code></div><div class="spec-doc"><p>A span identifier.</p><p>The meaning of the identifier depends on the collector.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-user_data"><a href="#type-user_data" class="anchor"></a><code><span><span class="keyword">type</span> user_data</span><span> = </span><span>[ </span></code><ol><li id="type-user_data.Int" class="def constructor anchored"><a href="#type-user_data.Int" class="anchor"></a><code><span>| </span></code><code><span>`Int <span class="keyword">of</span> int</span></code></li><li id="type-user_data.String" class="def constructor anchored"><a href="#type-user_data.String" class="anchor"></a><code><span>| </span></code><code><span>`String <span class="keyword">of</span> string</span></code></li><li id="type-user_data.Bool" class="def constructor anchored"><a href="#type-user_data.Bool" class="anchor"></a><code><span>| </span></code><code><span>`Bool <span class="keyword">of</span> bool</span></code></li><li id="type-user_data.None" class="def constructor anchored"><a href="#type-user_data.None" class="anchor"></a><code><span>| </span></code><code><span>`None</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>User defined data, generally passed as key/value pairs to whatever collector is installed (if any).</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Collector"><a href="#module-Collector" class="anchor"></a><code><span><span class="keyword">module</span> Collector</span><span> = <a href="../Trace_core/Collector/index.html">Trace_core.Collector</a></span></code></div></div><h3 id="tracing"><a href="#tracing" class="anchor"></a>Tracing</h3><div class="odoc-spec"><div class="spec value anchored" id="val-enabled"><a href="#val-enabled" class="anchor"></a><code><span><span class="keyword">val</span> enabled : <span>unit <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is there a collector?</p><p>This is fast, so that the traced program can check it before creating any span or message</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-enter_span"><a href="#val-enter_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_span :
<span>?__FUNCTION__:string <span class="arrow">&#45;&gt;</span></span>
<span>__FILE__:string <span class="arrow">&#45;&gt;</span></span>
<span>__LINE__:int <span class="arrow">&#45;&gt;</span></span>
@ -20,4 +20,4 @@
<span>?span:<a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span>
<span>?data:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(string * <a href="#type-user_data">user_data</a>)</span> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span>(<span><span><span>(<span class="type-var">'a</span>, <span class="xref-unresolved">Stdlib</span>.Format.formatter, unit, unit)</span> <span class="xref-unresolved">Stdlib</span>.format4</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>messagef (fun k-&gt;k&quot;hello %s %d!&quot; &quot;world&quot; 42)</code> is like <code>message &quot;hello world 42!&quot;</code> but only computes the string formatting if a collector is installed.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_thread_name"><a href="#val-set_thread_name" class="anchor"></a><code><span><span class="keyword">val</span> set_thread_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current thread. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_process_name"><a href="#val-set_process_name" class="anchor"></a><code><span><span class="keyword">val</span> set_process_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current process. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_int"><a href="#val-counter_int" class="anchor"></a><code><span><span class="keyword">val</span> counter_int : <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>int</code>. Counters represent the evolution of some quantity over time.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_float"><a href="#val-counter_float" class="anchor"></a><code><span><span class="keyword">val</span> counter_float : <span>string <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>float</code>. See <a href="#val-counter_int"><code>counter_int</code></a> for more details.</p></div></div><h3 id="collector"><a href="#collector" class="anchor"></a>Collector</h3><div class="odoc-spec"><div class="spec type anchored" id="type-collector"><a href="#type-collector" class="anchor"></a><code><span><span class="keyword">type</span> collector</span><span> = <span>(<span class="keyword">module</span> <a href="Collector/module-type-S/index.html">Collector.S</a>)</span></span></code></div><div class="spec-doc"><p>An event collector.</p><p>See <a href="Collector/index.html"><code>Collector</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup_collector"><a href="#val-setup_collector" class="anchor"></a><code><span><span class="keyword">val</span> setup_collector : <span><a href="#type-collector">collector</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>setup_collector c</code> installs <code>c</code> as the current collector.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if there already is an established collector.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>shutdown ()</code> shutdowns the current collector, if one was installed, and waits for it to terminate before returning.</p></div></div></div></body></html>
unit</span></code></div><div class="spec-doc"><p><code>messagef (fun k-&gt;k&quot;hello %s %d!&quot; &quot;world&quot; 42)</code> is like <code>message &quot;hello world 42!&quot;</code> but only computes the string formatting if a collector is installed.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_thread_name"><a href="#val-set_thread_name" class="anchor"></a><code><span><span class="keyword">val</span> set_thread_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current thread. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_process_name"><a href="#val-set_process_name" class="anchor"></a><code><span><span class="keyword">val</span> set_process_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current process. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_int"><a href="#val-counter_int" class="anchor"></a><code><span><span class="keyword">val</span> counter_int : <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>int</code>. Counters represent the evolution of some quantity over time.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_float"><a href="#val-counter_float" class="anchor"></a><code><span><span class="keyword">val</span> counter_float : <span>string <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>float</code>. See <a href="#val-counter_int"><code>counter_int</code></a> for more details.</p></div></div><h3 id="collector"><a href="#collector" class="anchor"></a>Collector</h3><div class="odoc-spec"><div class="spec type anchored" id="type-collector"><a href="#type-collector" class="anchor"></a><code><span><span class="keyword">type</span> collector</span><span> = <span>(<span class="keyword">module</span> <a href="../Trace_core/Collector/module-type-S/index.html">Collector.S</a>)</span></span></code></div><div class="spec-doc"><p>An event collector.</p><p>See <a href="../Trace_core/Collector/index.html"><code>Collector</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup_collector"><a href="#val-setup_collector" class="anchor"></a><code><span><span class="keyword">val</span> setup_collector : <span><a href="#type-collector">collector</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>setup_collector c</code> installs <code>c</code> as the current collector.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if there already is an established collector.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>shutdown ()</code> shutdowns the current collector, if one was installed, and waits for it to terminate before returning.</p></div></div></details></div></div></body></html>

0
trace/Trace_core/.dummy Normal file
View file

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Collector (trace.Trace_core.Collector)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace</a> &#x00BB; <a href="../index.html">Trace_core</a> &#x00BB; Collector</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core.Collector</span></code></h1><p>A global collector.</p><p>The collector, if present, is responsible for collecting messages and spans, and storing them, recording them, forward them, or offering them to other services and processes.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-dummy_span"><a href="#val-dummy_span" class="anchor"></a><code><span><span class="keyword">val</span> dummy_span : int64</span></code></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S/index.html">S</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Signature for a collector.</p></div></div></div></body></html>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>S (trace.Trace_core.Collector.S)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace</a> &#x00BB; <a href="../../index.html">Trace_core</a> &#x00BB; <a href="../index.html">Collector</a> &#x00BB; S</nav><header class="odoc-preamble"><h1>Module type <code><span>Collector.S</span></code></h1><p>Signature for a collector.</p><p>This is only relevant to implementors of tracing backends; to instrument your code you only need to look at the <a href="../../../Trace/index.html"><code>Trace</code></a> module.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-enter_span"><a href="#val-enter_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_span :
<span>?__FUNCTION__:string <span class="arrow">&#45;&gt;</span></span>
<span>__FILE__:string <span class="arrow">&#45;&gt;</span></span>
<span>__LINE__:int <span class="arrow">&#45;&gt;</span></span>
<span>data:
<span><span>(string * <span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> <span><span>| `Bool</span> of bool</span> <span>| `None</span> ]</span>)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
int64</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exit_span"><a href="#val-exit_span" class="anchor"></a><code><span><span class="keyword">val</span> exit_span : <span>int64 <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-message"><a href="#val-message" class="anchor"></a><code><span><span class="keyword">val</span> message :
<span>?span:int64 <span class="arrow">&#45;&gt;</span></span>
<span>data:
<span><span>(string * <span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> <span><span>| `Bool</span> of bool</span> <span>| `None</span> ]</span>)</span> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-name_thread"><a href="#val-name_thread" class="anchor"></a><code><span><span class="keyword">val</span> name_thread : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current thread</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-name_process"><a href="#val-name_process" class="anchor"></a><code><span><span class="keyword">val</span> name_process : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current process</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_int"><a href="#val-counter_int" class="anchor"></a><code><span><span class="keyword">val</span> counter_int : <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Integer counter</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_float"><a href="#val-counter_float" class="anchor"></a><code><span><span class="keyword">val</span> counter_float : <span>string <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Float counter</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Shutdown collector, possibly waiting for it to finish sending data.</p></div></div></div></body></html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core (trace.Trace_core)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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">trace</a> &#x00BB; Trace_core</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core</span></code></h1><p>Trace.</p></header><nav class="odoc-toc"><ul><li><a href="#tracing">Tracing</a></li><li><a href="#collector">Collector</a></li></ul></nav><div class="odoc-content"><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> = int64</span></code></div><div class="spec-doc"><p>A span identifier.</p><p>The meaning of the identifier depends on the collector.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-user_data"><a href="#type-user_data" class="anchor"></a><code><span><span class="keyword">type</span> user_data</span><span> = </span><span>[ </span></code><ol><li id="type-user_data.Int" class="def constructor anchored"><a href="#type-user_data.Int" class="anchor"></a><code><span>| </span></code><code><span>`Int <span class="keyword">of</span> int</span></code></li><li id="type-user_data.String" class="def constructor anchored"><a href="#type-user_data.String" class="anchor"></a><code><span>| </span></code><code><span>`String <span class="keyword">of</span> string</span></code></li><li id="type-user_data.Bool" class="def constructor anchored"><a href="#type-user_data.Bool" class="anchor"></a><code><span>| </span></code><code><span>`Bool <span class="keyword">of</span> bool</span></code></li><li id="type-user_data.None" class="def constructor anchored"><a href="#type-user_data.None" class="anchor"></a><code><span>| </span></code><code><span>`None</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>User defined data, generally passed as key/value pairs to whatever collector is installed (if any).</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Collector"><a href="#module-Collector" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Collector/index.html">Collector</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A global collector.</p></div></div><h3 id="tracing"><a href="#tracing" class="anchor"></a>Tracing</h3><div class="odoc-spec"><div class="spec value anchored" id="val-enabled"><a href="#val-enabled" class="anchor"></a><code><span><span class="keyword">val</span> enabled : <span>unit <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Is there a collector?</p><p>This is fast, so that the traced program can check it before creating any span or message</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-enter_span"><a href="#val-enter_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_span :
<span>?__FUNCTION__:string <span class="arrow">&#45;&gt;</span></span>
<span>__FILE__:string <span class="arrow">&#45;&gt;</span></span>
<span>__LINE__:int <span class="arrow">&#45;&gt;</span></span>
<span>?data:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(string * <a href="#type-user_data">user_data</a>)</span> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<a href="#type-span">span</a></span></code></div><div class="spec-doc"><p>Enter a span. A span is a delimited period of time with a start instant (&quot;enter&quot;) and stop instant (&quot;exit&quot;), associated with some metadata about the code entering/exiting some piece of code.</p><p>In particular the entrypoint comes with the location of the code (you can use <code>__FILE__</code> and <code>__LINE__</code> directly in OCaml), a mandatory name, and some optional metadata in a JSON-like representation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exit_span"><a href="#val-exit_span" class="anchor"></a><code><span><span class="keyword">val</span> exit_span : <span><a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Exit the span.</p><p>This should be called exactly once per span (even in case of exception). Once this is called, a timestamp might be recorded, and the span is considered finished and can't be used anymore</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_span"><a href="#val-with_span" class="anchor"></a><code><span><span class="keyword">val</span> with_span :
<span>?__FUNCTION__:string <span class="arrow">&#45;&gt;</span></span>
<span>__FILE__:string <span class="arrow">&#45;&gt;</span></span>
<span>__LINE__:int <span class="arrow">&#45;&gt;</span></span>
<span>?data:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(string * <a href="#type-user_data">user_data</a>)</span> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>with_span ~__FILE__ ~__LINE__ name f</code> enters a new span <code>sp</code>, and calls <code>f sp</code>. <code>sp</code> might be a dummy span if no collector is installed. When <code>f sp</code> returns or raises, the span <code>sp</code> is exited.</p><p>This is the recommended way to instrument most code.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-message"><a href="#val-message" class="anchor"></a><code><span><span class="keyword">val</span> message :
<span>?span:<a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span>
<span>?data:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(string * <a href="#type-user_data">user_data</a>)</span> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>message msg</code> logs a message <code>msg</code> (if a collector is installed). Additional metadata can be provided.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">span</span> <p>the surrounding span, if any. This might be ignored by the collector.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-messagef"><a href="#val-messagef" class="anchor"></a><code><span><span class="keyword">val</span> messagef :
<span>?span:<a href="#type-span">span</a> <span class="arrow">&#45;&gt;</span></span>
<span>?data:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span><span>(string * <a href="#type-user_data">user_data</a>)</span> list</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span>(<span><span><span>(<span class="type-var">'a</span>, <span class="xref-unresolved">Stdlib</span>.Format.formatter, unit, unit)</span> <span class="xref-unresolved">Stdlib</span>.format4</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>messagef (fun k-&gt;k&quot;hello %s %d!&quot; &quot;world&quot; 42)</code> is like <code>message &quot;hello world 42!&quot;</code> but only computes the string formatting if a collector is installed.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_thread_name"><a href="#val-set_thread_name" class="anchor"></a><code><span><span class="keyword">val</span> set_thread_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current thread. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_process_name"><a href="#val-set_process_name" class="anchor"></a><code><span><span class="keyword">val</span> set_process_name : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current process. This might be used by the collector to display traces in a more informative way.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_int"><a href="#val-counter_int" class="anchor"></a><code><span><span class="keyword">val</span> counter_int : <span>string <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>int</code>. Counters represent the evolution of some quantity over time.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_float"><a href="#val-counter_float" class="anchor"></a><code><span><span class="keyword">val</span> counter_float : <span>string <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Emit a counter of type <code>float</code>. See <a href="#val-counter_int"><code>counter_int</code></a> for more details.</p></div></div><h3 id="collector"><a href="#collector" class="anchor"></a>Collector</h3><div class="odoc-spec"><div class="spec type anchored" id="type-collector"><a href="#type-collector" class="anchor"></a><code><span><span class="keyword">type</span> collector</span><span> = <span>(<span class="keyword">module</span> <a href="Collector/module-type-S/index.html">Collector.S</a>)</span></span></code></div><div class="spec-doc"><p>An event collector.</p><p>See <a href="Collector/index.html"><code>Collector</code></a> for more details.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-setup_collector"><a href="#val-setup_collector" class="anchor"></a><code><span><span class="keyword">val</span> setup_collector : <span><a href="#type-collector">collector</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>setup_collector c</code> installs <code>c</code> as the current collector.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <span class="value">Invalid_argument</span> <p>if there already is an established collector.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>shutdown ()</code> shutdowns the current collector, if one was installed, and waits for it to terminate before returning.</p></div></div></div></body></html>

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (trace.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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> trace</nav><header class="odoc-preamble"><h1 id="trace-index"><a href="#trace-index" class="anchor"></a>trace index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-trace">Library trace</a></li></ul></nav><div class="odoc-content"><h2 id="library-trace"><a href="#library-trace" class="anchor"></a>Library trace</h2><p>The entry point of this library is the module: <a href="Trace/index.html"><code>Trace</code></a>.</p></div></body></html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (trace.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.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> trace</nav><header class="odoc-preamble"><h1 id="trace-index"><a href="#trace-index" class="anchor"></a>trace index</h1></header><nav class="odoc-toc"><ul><li><a href="#library-trace">Library trace</a></li><li><a href="#library-trace.core">Library trace.core</a></li></ul></nav><div class="odoc-content"><h2 id="library-trace"><a href="#library-trace" class="anchor"></a>Library trace</h2><p>The entry point of this library is the module: <a href="Trace/index.html"><code>Trace</code></a>.</p><h2 id="library-trace.core"><a href="#library-trace.core" class="anchor"></a>Library trace.core</h2><p>The entry point of this library is the module: <a href="Trace_core/index.html"><code>Trace_core</code></a>.</p></div></body></html>