swift-metrics/docs/current/CoreMetrics/Classes.html

415 lines
21 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset="utf-8">
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
<script src="js/lunr.min.js" defer></script>
<script src="js/typeahead.jquery.js" defer></script>
<script src="js/jazzy.search.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
<a title="Classes Reference"></a>
<header class="header">
<p class="header-col header-col--primary">
<a class="header-link" href="index.html">
CoreMetrics 2.2.0 Docs
</a>
(83% documented)
</p>
<div class="header-col--secondary">
<form role="search" action="search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</div>
<p class="header-col header-col--secondary">
<a class="header-link" href="https://github.com/apple/swift-metrics">
<img class="header-icon" src="img/gh.png" alt="GitHub"/>
View on GitHub
</a>
</p>
<p class="header-col header-col--secondary">
<a class="header-link" href="dash-feed://https%3A%2F%2Fapple.github.io%2Fswift-metrics%2Fdocs%2F2.2.0%2FCoreMetrics%2Fdocsets%2FCoreMetrics.xml">
<img class="header-icon" src="img/dash.png" alt="Dash"/>
Install in Dash
</a>
</p>
</header>
<p class="breadcrumbs">
<a class="breadcrumb" href="index.html">CoreMetrics Reference</a>
<img class="carat" src="img/carat.png" alt=""/>
Classes Reference
</p>
<div class="content-wrapper">
<nav class="navigation">
<ul class="nav-groups">
<li class="nav-group-name">
<a class="nav-group-name-link" href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/Counter.html">Counter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/FloatingPointCounter.html">FloatingPointCounter</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/Gauge.html">Gauge</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/MultiplexMetricsHandler.html">MultiplexMetricsHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/NOOPMetricsHandler.html">NOOPMetricsHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/Recorder.html">Recorder</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/Timer.html">Timer</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/MetricsSystem.html">MetricsSystem</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/CounterHandler.html">CounterHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/FloatingPointCounterHandler.html">FloatingPointCounterHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/MetricsFactory.html">MetricsFactory</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/RecorderHandler.html">RecorderHandler</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/TimerHandler.html">TimerHandler</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/TimeUnit.html">TimeUnit</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section class="section">
<div class="section-content top-matter">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</div>
</section>
<section class="section">
<div class="section-content">
<div class="task-group">
<div class="task-name-container">
<a name="/User%20API"></a>
<a name="//apple_ref/swift/Section/User API" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/User%20API"></a>
<h3 class="section-name"><span>User API</span>
</h3>
</div>
</div>
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC"></a>
<a name="//apple_ref/swift/Class/Counter" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC">Counter</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A counter is a cumulative metric that represents a single monotonically increasing counter whose value can only increase or be reset to zero.
For example, you can use a counter to represent the number of requests served, tasks completed, or errors.</p>
<p>This is the user-facing Counter API.</p>
<p>Its behavior depends on the <code><a href="Protocols/CounterHandler.html">CounterHandler</a></code> implementation.</p>
<a href="Classes/Counter.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Counter</span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">Counter</span><span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L42-L85">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics20FloatingPointCounterC"></a>
<a name="//apple_ref/swift/Class/FloatingPointCounter" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics20FloatingPointCounterC">FloatingPointCounter</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A FloatingPointCounter is a cumulative metric that represents a single monotonically increasing FloatingPointCounter whose value can only increase or be reset to zero.
For example, you can use a FloatingPointCounter to represent the number of requests served, tasks completed, or errors.
FloatingPointCounter is not supported by all metrics backends, however a default implementation is provided which accumulates floating point values and records increments to a standard Counter after crossing integer boundaries.</p>
<p>This is the user-facing FloatingPointCounter API.</p>
<p>Its behavior depends on the <code>FloatingCounterHandler</code> implementation.</p>
<a href="Classes/FloatingPointCounter.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">FloatingPointCounter</span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">FloatingPointCounter</span><span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L119-L162">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics8RecorderC"></a>
<a name="//apple_ref/swift/Class/Recorder" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics8RecorderC">Recorder</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A recorder collects observations within a time window (usually things like response sizes) and <em>can</em> provide aggregated information about the data sample, for example, count, sum, min, max and various quantiles.</p>
<p>This is the user-facing Recorder API.</p>
<p>Its behavior depends on the <code><a href="Protocols/RecorderHandler.html">RecorderHandler</a></code> implementation.</p>
<a href="Classes/Recorder.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Recorder</span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">Recorder</span><span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L194-L242">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics5GaugeC"></a>
<a name="//apple_ref/swift/Class/Gauge" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics5GaugeC">Gauge</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
Gauges are typically used for measured values like temperatures or current memory usage, but also &ldquo;counts&rdquo; that can go up and down, like the number of active threads.
Gauges are modeled as <code><a href="Classes/Recorder.html">Recorder</a></code> with a sample size of 1 and that does not perform any aggregation.</p>
<a href="Classes/Gauge.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Gauge</span> <span class="p">:</span> <span class="kt"><a href="Classes/Recorder.html">Recorder</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L253-L262">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics5TimerC"></a>
<a name="//apple_ref/swift/Class/Timer" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics5TimerC">Timer</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A timer collects observations within a time window (usually things like request durations) and provides aggregated information about the data sample,
for example, min, max and various quantiles. It is similar to a <code><a href="Classes/Recorder.html">Recorder</a></code> but specialized for values that represent durations.</p>
<p>This is the user-facing Timer API.</p>
<p>Its behavior depends on the <code><a href="Protocols/TimerHandler.html">TimerHandler</a></code> implementation.</p>
<a href="Classes/Timer.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Timer</span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">Timer</span><span class="p">:</span> <span class="kt">CustomStringConvertible</span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L331-L446">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/Predefined%20Metrics%20Handlers"></a>
<a name="//apple_ref/swift/Section/Predefined Metrics Handlers" class="dashAnchor"></a>
<div class="section-name-container">
<a class="section-name-link" href="#/Predefined%20Metrics%20Handlers"></a>
<h3 class="section-name"><span>Predefined Metrics Handlers</span>
</h3>
</div>
</div>
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics09MultiplexB7HandlerC"></a>
<a name="//apple_ref/swift/Class/MultiplexMetricsHandler" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics09MultiplexB7HandlerC">MultiplexMetricsHandler</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A pseudo-metrics handler that can be used to send messages to multiple other metrics handlers.</p>
<a href="Classes/MultiplexMetricsHandler.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">MultiplexMetricsHandler</span> <span class="p">:</span> <span class="kt"><a href="Protocols/MetricsFactory.html">MetricsFactory</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L774-L875">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics18NOOPMetricsHandlerC"></a>
<a name="//apple_ref/swift/Class/NOOPMetricsHandler" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics18NOOPMetricsHandlerC">NOOPMetricsHandler</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Ships with the metrics module, used for initial bootstrapping.</p>
<a href="Classes/NOOPMetricsHandler.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">NOOPMetricsHandler</span> <span class="p">:</span> <span class="kt"><a href="Protocols/MetricsFactory.html">MetricsFactory</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/CounterHandler.html">CounterHandler</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/FloatingPointCounterHandler.html">FloatingPointCounterHandler</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/RecorderHandler.html">RecorderHandler</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/TimerHandler.html">TimerHandler</a></span></code></pre>
</div>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L878-L910">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
</div>
</section>
</article>
</div>
<section class="footer">
<p>&copy; 2021 <a class="link" href="https://github.com/apple/swift-metrics" target="_blank" rel="external noopener">SwiftMetrics team</a>. All rights reserved. (Last updated: 2021-12-17)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.1</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
</section>
</body>
</html>