<!DOCTYPE html>
<html>
  <head>
    <title>Apache BookKeeper&trade; - BP-36: Stats documentation annotation</title>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="/css/normalize.css">
<link rel="stylesheet" href="/css/tippy.css">
<link rel="stylesheet" href="/css/style.css">

<link rel="shortcut icon" href="/img/favicon.ico">

<script src="/js/tippy.min.js"></script>

<script type="text/javascript">
  var shiftWindow = function() { scrollBy(0, -25); };
  window.addEventListener("hashchange", shiftWindow);
  window.addEventListener("pageshow", shiftWindow);
  function load() { if (window.location.hash) shiftWindow(); }
</script>
  </head>
  <body class="body">
    <main class="main">
      
<nav class="navbar bk-topnav">
  <div class="navbar-brand">
    <a class="navbar-item bk-brand" href="/">
      Apache BookKeeper&trade;
    </a>

    <div class="navbar-burger burger" data-target="bkNav">
      <span></span>
      <span></span>
      <span></span>
    </div>
  </div>

  <div id="bkNav" class="navbar-menu">
    <div class="navbar-start">
      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Documentation</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/docs/latest/overview/overview">
            Version 4.15.0-SNAPSHOT
            <span class="tag is-warning">Development</span>
          </a>
          <a class="navbar-item" href="/docs/latest/api/javadoc">
            <span class="icon bk-javadoc-icon">
              <img src="/img/java-icon.svg">
            </span>
            Javadoc
          </a>
          <hr class="dropdown-divider">
          
          <a class="navbar-item" href="/docs/4.14.0/overview/overview">
            Release 4.14.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.13.0/overview/overview">
            Release 4.13.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.12.1/overview/overview">
            Release 4.12.1
            
          </a>
          
          <a class="navbar-item" href="/docs/4.12.0/overview/overview">
            Release 4.12.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.11.1/overview/overview">
            Release 4.11.1
            
              <span class="tag is-success">Stable</span>
            
          </a>
          
          <a class="navbar-item" href="/docs/4.11.0/overview/overview">
            Release 4.11.0
            
          </a>
          
          <a class="navbar-item" href="/docs/4.10.0/overview/overview">
            Release 4.10.0
            
          </a>
          
          
          <a class="navbar-item" href="/archives/docs/r4.9.2">
            Release 4.9.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.9.1">
            Release 4.9.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.9.0">
            Release 4.9.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.2">
            Release 4.8.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.1">
            Release 4.8.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.8.0">
            Release 4.8.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.3">
            Release 4.7.3
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.2">
            Release 4.7.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.1">
            Release 4.7.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.7.0">
            Release 4.7.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.2">
            Release 4.6.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.1">
            Release 4.6.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.6.0">
            Release 4.6.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.5.1">
            Release 4.5.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.5.0">
            Release 4.5.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.4.0">
            Release 4.4.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.2">
            Release 4.3.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.1">
            Release 4.3.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.3.0">
            Release 4.3.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.4">
            Release 4.2.4
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.3">
            Release 4.2.3
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.2">
            Release 4.2.2
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.1">
            Release 4.2.1
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.2.0">
            Release 4.2.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.1.0">
            Release 4.1.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
          <a class="navbar-item" href="/archives/docs/r4.0.0">
            Release 4.0.0
            
              <span class="tag is-warning">EOL</span>
            
          </a>
          
        </div>
      </div>

      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Community</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/community/mailing-lists">Mailing lists</a>
          <a class="navbar-item" href="/community/slack">Slack</a>
          <a class="navbar-item" href="https://github.com/apache/bookkeeper/issues">Github Issues</a>
          <a class="navbar-item" href="/community/releases">Release Management</a>
          <a class="navbar-item" href="/community/meeting">Community Meetings</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/community/contributing">Contribution Guide</a>
          <a class="navbar-item" href="/community/coding_guide">Coding Guide</a>
          <a class="navbar-item" href="/community/testing">Testing Guide</a>
          <a class="navbar-item" href="/community/issue-report">Issue Report Guide</a>
          <a class="navbar-item" href="/community/release_guide">Release Guide</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/community/presentations">Presentations</a>
          <a class="navbar-item" href="/community/bookkeeper_proposals">BookKeeper Proposals</a>
        </div>
      </div>

      <div class="navbar-item has-dropdown is-hoverable">
        <a class="navbar-link">Project</a>
        <div class="navbar-dropdown is-boxed">
          <a class="navbar-item" href="/project/who">Who are we?</a>
          <a class="navbar-item" href="/project/bylaws">Bylaws</a>
          <a class="navbar-item" href="http://www.apache.org/licenses/">License</a>
          <hr class="dropdown-divider">
          <a class="navbar-item" href="/project/privacy">Privacy policy</a>
          <a class="navbar-item" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
          <a class="navbar-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a>
        </div>
      </div>
    </div>

    <div class="navbar-end">
      <div class="navbar-item">
        <div class="field is-grouped">
          <p class="control">
            <a class="button bk-twitter" href="https://twitter.com/asfbookkeeper">
              <span class="icon">
                <i class="fa fa-twitter"></i>
              </span>
              <span>Twitter</span>
            </a>
          </p>
          <p class="control">
            <a class="button" href="https://github.com/apache/bookkeeper">
              <span class="icon">
                <i class="fa fa-github"></i>
              </span>
              <span>GitHub</span>
            </a>
          </p>
          <p class="control">
            <a class="button is-primary" href="/releases">
              <span class="icon">
                <i class="fa fa-download"></i>
              </span>
              <span>Download</span>
            </a>
          </p>
        </div>
      </div>
    </div>
  </div>
</nav>


      <div class="bk-community-container">
  <div class="columns">
    <div class="column is-12">
      <header class="docs-title">
        <nav class="level">
          <div class="level-left">
            <div class="level-item">
              <h1 class="title">BP-36: Stats documentation annotation</h1>
            </div>
          </div>
          
        </nav>

        
      </header>

      <hr />

      <div class="content is-medium">
        <section class="bk-community-content">
          <h3 id="motivation">Motivation</h3>

<p>A common ask from people using bookkeeper is how they can monitor bookies and bookkeeper clients, what kind of metrics that bookkeeper exposes
and what are the important metrics. Currently bookkeeper doesn’t provide any metrics page for guiding people on monitoring bookkeeper services.</p>

<p>In order to help people on this, we need to provide a few documentation pages about metrics. However if we just write such pages, those pages
can quickly get out-of-dated when code is changed. The proposal here is to seek a programming way for generating metrics related pages.</p>

<h3 id="public-interfaces">Public Interfaces</h3>

<p>Introduced a <code class="highlighter-rouge">StatsDoc</code> annotation.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/<span class="k">**</span>
 <span class="k">*</span> Documenting the stats.
 <span class="k">*</span>/
@Retention<span class="o">(</span>RetentionPolicy.RUNTIME<span class="o">)</span>
@Documented
public @interface StatsDoc <span class="o">{</span>

    /<span class="k">**</span>
     <span class="k">*</span> The name of the category to group stats together.
     <span class="k">*</span>
     <span class="k">*</span> @return name of the stats category.
     <span class="k">*</span>/
    String category<span class="o">()</span> default <span class="s2">""</span><span class="p">;</span>

    /<span class="k">**</span>
     <span class="k">*</span> The scope of this stats.
     <span class="k">*</span>
     <span class="k">*</span> @return scope of this stats
     <span class="k">*</span>/
    String scope<span class="o">()</span> default <span class="s2">""</span><span class="p">;</span>

    /<span class="k">**</span>
     <span class="k">*</span> The name of this stats
     <span class="k">*</span>
     <span class="k">*</span> @return name of this stats
     <span class="k">*</span>/
    String name<span class="o">()</span><span class="p">;</span>

    /<span class="k">**</span>
     <span class="k">*</span> The <span class="nb">help </span>message of this stats
     <span class="k">*</span>
     <span class="k">*</span> @return <span class="nb">help </span>message of this stats
     <span class="k">*</span>/
    String <span class="nb">help</span><span class="o">()</span><span class="p">;</span>

    /<span class="k">**</span>
     <span class="k">*</span> The parent metric name.
     <span class="k">*</span>
     <span class="k">*</span> &lt;p&gt;It can used <span class="k">for </span>analyzing the relationships
     <span class="k">*</span> between the metrics, especially <span class="k">for </span>the latency metrics.
     <span class="k">*</span>
     <span class="k">*</span> @return the parent metric name
     <span class="k">*</span>/
    default String parent<span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="s2">""</span><span class="p">;</span> <span class="o">}</span>

    /<span class="k">**</span>
     <span class="k">*</span> The metric name of an operation that happens
     <span class="k">*</span> after the operation of this metric.
     <span class="k">*</span>
     <span class="k">*</span> &lt;p&gt;similar as <span class="o">{</span>@link <span class="c">#parent()}, it can be used for analyzing</span>
     <span class="k">*</span> the dependencies between metrics.
     <span class="k">*</span>
     <span class="k">*</span> @return the metric name of an operation that happens after the operation of this metric.
     <span class="k">*</span>/
    default String happensAfter<span class="o">()</span> <span class="o">{</span> <span class="k">return</span> <span class="s2">""</span><span class="p">;</span> <span class="o">}</span>


<span class="o">}</span>
</code></pre></div></div>

<p>The <code class="highlighter-rouge">StatsDoc</code> annotation provides a way to annotate metrics we added to bookkeeper.</p>

<ul>
  <li>category: which category that the metric belongs to. e.g. server, or client.</li>
  <li>scope: the scope of the metric. e.g. <code class="highlighter-rouge">bookie</code> scope.</li>
  <li>name: the name of the metric.</li>
  <li>help: the description of the metric.</li>
</ul>

<h3 id="proposed-changes">Proposed Changes</h3>

<p>In addition to the <code class="highlighter-rouge">StatsDoc</code> annotation, bookkeeper should provide a tool for generating the metrics yaml file
for documenting all annotated metrics.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bin/stats-doc-gen
</code></pre></div></div>

<p>Example output:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s2">"</span><span class="s">server"</span><span class="pi">:</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_READ_ENTRY_BYTES"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">bytes stats of ReadEntry on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">OPSTATS</span>
  <span class="s2">"</span><span class="s">bookie_WRITE_BYTES"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">total bytes written to a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">COUNTER</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_ADD_ENTRY"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">operations stats of AddEntry on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">OPSTATS</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_RECOVERY_ADD_ENTRY"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">operation stats of RecoveryAddEntry on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">OPSTATS</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_ADD_ENTRY_BYTES"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">bytes stats of AddEntry on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">OPSTATS</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_FORCE_LEDGER"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">total force operations occurred on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">COUNTER</span>
  <span class="s2">"</span><span class="s">bookie_READ_BYTES"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">total bytes read from a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">COUNTER</span>
  <span class="s2">"</span><span class="s">bookie_BOOKIE_READ_ENTRY"</span><span class="pi">:</span>
    <span class="s2">"</span><span class="s">description"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">operation stats of ReadEntry on a bookie</span>
    <span class="s2">"</span><span class="s">type"</span><span class="pi">:</span> <span class="pi">|-</span>
      <span class="s">OPSTATS</span>
</code></pre></div></div>

<h3 id="compatibility-deprecation-and-migration-plan">Compatibility, Deprecation, and Migration Plan</h3>

<p>It is a new feature, which doesn’t have any compatibility impacts.</p>

<p>There is nothing deprecated.</p>

<p>There is nothing to migrate.</p>

<h3 id="test-plan">Test Plan</h3>

<p>Existing testing is good enough to cover code changes. No new tests are needed.</p>

<h3 id="rejected-alternatives">Rejected Alternatives</h3>

<p>Alternatively, we have to manually maintain the metrics page and update each time when a new metric is added.</p>

        </section>

        
      </div>
    </div>
  </div>
</div>
    </main>

    <footer class="footer">
  <div class="container">
    <div class="content has-text-centered">
      <p>
        Copyright &copy; 2016 - 2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br /> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
      </p>
      <p>
        Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
      </p>
    </div>
  </div>
</footer>

  </body>

  <script src="/js/app.js"></script>

  
  <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-104419626-1', 'auto');
  ga('send', 'pageview');

</script>

  
</html>
