mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-08 03:47:59 -04:00
2 lines
10 KiB
HTML
2 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Mtime (mtime.Mtime)</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">mtime</a> » Mtime</nav><header class="odoc-preamble"><h1>Module <code><span>Mtime</span></code></h1><p>Monotonic time values.</p><p><code>Mtime</code> has platform independent support for monotonic wall-clock time. This time increases monotonically and is not subject to operating system calendar time adjustments.</p><p><a href="#spans" title="spans">Time spans</a> represent non-negative monotonic time spans between two monotonic clock readings. <a href="#timestamps" title="timestamps">Timestamps</a> represent system-relative monotonic <em>timestamps</em>, their absolute value is meaningless but they can be compared across the processes of an operating system run.</p><p><a href="../Mtime_clock/index.html"><code>Mtime_clock</code></a> provides access to a system monotonic clock.</p></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#spans">Monotonic time spans</a></li><li><a href="#timestamps">Monotonic timestamps</a><ul><li><a href="#preds">Predicates</a></li><li><a href="#arith">Arithmetic</a></li><li><a href="#fmt">Formatting</a></li></ul></li></ul></nav></div><div class="odoc-content"><h2 id="spans"><a href="#spans" class="anchor"></a>Monotonic time spans</h2><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></code></div><div class="spec-doc"><p>The type for non-negative monotonic time spans. They represent the difference between two monotonic clock readings. If the platform's clock has nanosecond resolution the representation guarantees that the function <a href="../Mtime_clock/index.html#val-elapsed"><code>Mtime_clock.elapsed</code></a> can measure up to approximatively 584 Julian year spans before silently rolling over (unlikely since this is in a single program run).</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Span"><a href="#module-Span" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Span/index.html">Span</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Monotonic time spans.</p></div></div><h2 id="timestamps"><a href="#timestamps" class="anchor"></a>Monotonic timestamps</h2><p><b>Note.</b> Only use timestamps if you need inter-process time correlation, otherwise prefer <a href="../Mtime_clock/index.html#val-elapsed"><code>Mtime_clock.elapsed</code></a> and <a href="../Mtime_clock/index.html#counters" title="counters">counters</a>.</p><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></code></div><div class="spec-doc"><p>The type for monotonic timestamps relative to an indeterminate system-wide event (e.g. last startup). Their absolute value has no meaning but can be used for inter-process time correlation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_uint64_ns"><a href="#val-to_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> to_uint64_ns : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int64</span></code></div><div class="spec-doc"><p><code>to_uint64_ns t</code> is <code>t</code> as an <em>unsigned</em> 64-bit integer nanosecond timestamp. The absolute value is meaningless.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_uint64_ns"><a href="#val-of_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> of_uint64_ns : <span>int64 <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>to_uint64_ns t</code> is <code>t</code> is an <em>unsigned</em> 64-bit integer nanosecond timestamp as a timestamp.</p><p><b>Warning.</b> Timestamps returned by this function should only be used with other timestamp values that are know to come from the same operating system run.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_stamp"><a href="#val-min_stamp" class="anchor"></a><code><span><span class="keyword">val</span> min_stamp : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>min_stamp</code> is the earliest timestamp.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_stamp"><a href="#val-max_stamp" class="anchor"></a><code><span><span class="keyword">val</span> max_stamp : <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>max_stamp</code> is the latest timestamp.</p></div></div><h3 id="preds"><a href="#preds" class="anchor"></a>Predicates</h3><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>equal t t'</code> is <code>true</code> iff <code>t</code> and <code>t'</code> are equal.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p><code>compare t t'</code> orders timestamps by increasing time.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_earlier"><a href="#val-is_earlier" class="anchor"></a><code><span><span class="keyword">val</span> is_earlier : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="label">than</span>:<a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_earlier t ~than</code> is <code>true</code> iff <code>t</code> occurred before <code>than</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_later"><a href="#val-is_later" class="anchor"></a><code><span><span class="keyword">val</span> is_later : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><span class="label">than</span>:<a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_later t ~than</code> is <code>true</code> iff <code>t</code> occurred after <code>than</code>.</p></div></div><h3 id="arith"><a href="#arith" class="anchor"></a>Arithmetic</h3><div class="odoc-spec"><div class="spec value anchored" id="val-span"><a href="#val-span" class="anchor"></a><code><span><span class="keyword">val</span> span : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-span">span</a></span></code></div><div class="spec-doc"><p><code>span t t'</code> is the span between <code>t</code> and <code>t'</code> regardless of the order between <code>t</code> and <code>t'</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_span"><a href="#val-add_span" class="anchor"></a><code><span><span class="keyword">val</span> add_span : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-span">span</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p><code>add_span t s</code> is the timestamp <code>s</code> units later than <code>t</code> or <code>None</code> if the result overflows.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sub_span"><a href="#val-sub_span" class="anchor"></a><code><span><span class="keyword">val</span> sub_span : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-span">span</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> option</span></span></code></div><div class="spec-doc"><p><code>sub_span t s</code> is the timestamp <code>s</code> units earlier than <code>t</code> or <code>None</code> if the result underflows.</p></div></div><h3 id="fmt"><a href="#fmt" class="anchor"></a>Formatting</h3><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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp</code> formats <code>t</code> as an <em>unsigned</em> 64-bit integer nanosecond timestamp. Note that the absolute value is meaningless.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dump"><a href="#val-dump" class="anchor"></a><code><span><span class="keyword">val</span> dump : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>dump ppf t</code> formats an unspecified raw representation of <code>t</code> on <code>ppf</code>.</p></div></div></div></body></html>
|