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

556 lines
27 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Counter Class 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/Class/Counter" class="dashAnchor"></a>
<a title="Counter Class 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=""/>
Counter Class 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>Counter</h1>
<div class="declaration">
<div class="language">
<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>
<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>
<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>
</div>
</section>
<section class="section">
<div class="section-content">
<div class="task-group">
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC5labelSSvp"></a>
<a name="//apple_ref/swift/Property/label" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC5labelSSvp">label</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</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="k">let</span> <span class="nv">label</span><span class="p">:</span> <span class="kt">String</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#L">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC10dimensionsSaySS_SStGvp"></a>
<a name="//apple_ref/swift/Property/dimensions" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC10dimensionsSaySS_SStGvp">dimensions</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
</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="k">let</span> <span class="nv">dimensions</span><span class="p">:</span> <span class="p">[(</span><span class="kt">String</span><span class="p">,</span> <span class="kt">String</span><span class="p">)]</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#L">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC5label10dimensions7handlerACSS_SaySS_SStGAA0C7Handler_ptcfc"></a>
<a name="//apple_ref/swift/Method/init(label:dimensions:handler:)" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC5label10dimensions7handlerACSS_SaySS_SStGAA0C7Handler_ptcfc">init(label:<wbr>dimensions:<wbr>handler:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Alternative way to create a new <code>Counter</code>, while providing an explicit <code><a href="../Protocols/CounterHandler.html">CounterHandler</a></code>.</p>
<div class="aside aside-warning">
<p class="aside-title">Warning</p>
<p>This initializer provides an escape hatch for situations where one must use a custom factory instead of the global one.
We do not expect this API to be used in normal circumstances, so if you find yourself using it make sure it&rsquo;s for a good reason.</p>
</div><div class="aside aside-see-also">
<p class="aside-title">See also</p>
<p>Use <code><a href="../Classes/Counter.html#/s:11CoreMetrics7CounterC5label10dimensionsACSS_SaySS_SStGtcfc">init(label:dimensions:)</a></code> to create <code>Counter</code> instances using the configured metrics backend.</p>
</div>
</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="nf">init</span><span class="p">(</span><span class="nv">label</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">dimensions</span><span class="p">:</span> <span class="p">[(</span><span class="kt">String</span><span class="p">,</span> <span class="kt">String</span><span class="p">)],</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Protocols/CounterHandler.html">CounterHandler</a></span><span class="p">)</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>label</em>
</code>
</td>
<td>
<div>
<p>The label for the <code>Counter</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>dimensions</em>
</code>
</td>
<td>
<div>
<p>The dimensions for the <code>Counter</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>handler</em>
</code>
</td>
<td>
<div>
<p>The custom backend.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L59-L63">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC9increment2byyx_tSzRzlF"></a>
<a name="//apple_ref/swift/Method/increment(by:)" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC9increment2byyx_tSzRzlF">increment(by:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Increment the counter.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">@inlinable</span>
<span class="kd">public</span> <span class="kd">func</span> <span class="n">increment</span><span class="o">&lt;</span><span class="kt">DataType</span><span class="o">&gt;</span><span class="p">(</span><span class="n">by</span> <span class="nv">amount</span><span class="p">:</span> <span class="kt">DataType</span><span class="p">)</span> <span class="k">where</span> <span class="kt">DataType</span> <span class="p">:</span> <span class="kt">BinaryInteger</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>by</em>
</code>
</td>
<td>
<div>
<p>Amount to increment by.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L70-L72">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC9incrementyyF"></a>
<a name="//apple_ref/swift/Method/increment()" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC9incrementyyF">increment()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Increment the counter by one.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">@inlinable</span>
<span class="kd">public</span> <span class="kd">func</span> <span class="nf">increment</span><span class="p">()</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#L76-L78">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC5resetyyF"></a>
<a name="//apple_ref/swift/Method/reset()" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC5resetyyF">reset()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Reset the counter back to zero.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">@inlinable</span>
<span class="kd">public</span> <span class="kd">func</span> <span class="nf">reset</span><span class="p">()</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#L82-L84">Show on GitHub</a>
</div>
</section>
</div>
</li>
</ul>
</div>
<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:11CoreMetrics7CounterC5label10dimensionsACSS_SaySS_SStGtcfc"></a>
<a name="//apple_ref/swift/Method/init(label:dimensions:)" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC5label10dimensionsACSS_SaySS_SStGtcfc">init(label:<wbr>dimensions:<wbr>)</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Create a new <code>Counter</code>.</p>
</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">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">label</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">dimensions</span><span class="p">:</span> <span class="p">[(</span><span class="kt">String</span><span class="p">,</span> <span class="kt">String</span><span class="p">)]</span> <span class="o">=</span> <span class="p">[])</span></code></pre>
</div>
</div>
<div>
<h4>Parameters</h4>
<table class="graybox">
<tbody>
<tr>
<td>
<code>
<em>label</em>
</code>
</td>
<td>
<div>
<p>The label for the <code>Counter</code>.</p>
</div>
</td>
</tr>
<tr>
<td>
<code>
<em>dimensions</em>
</code>
</td>
<td>
<div>
<p>The dimensions for the <code>Counter</code>.</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="slightly-smaller">
<a href="https://github.com/apple/swift-metrics/tree/2.2.0/Sources/CoreMetrics/Metrics.swift#L23-L26">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:11CoreMetrics7CounterC7destroyyyF"></a>
<a name="//apple_ref/swift/Method/destroy()" class="dashAnchor"></a>
<a class="token" href="#/s:11CoreMetrics7CounterC7destroyyyF">destroy()</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Signal the underlying metrics library that this counter will never be updated again.
In response the library MAY decide to eagerly release any resources held by this <code>Counter</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">@inlinable</span>
<span class="kd">public</span> <span class="kd">func</span> <span class="nf">destroy</span><span class="p">()</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#L31-L33">Show on GitHub</a>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:s23CustomStringConvertibleP11descriptionSSvp"></a>
<a name="//apple_ref/swift/Property/description" class="dashAnchor"></a>
<a class="token" href="#/s:s23CustomStringConvertibleP11descriptionSSvp">description</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
</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="k">var</span> <span class="nv">description</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</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#L88-L90">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>