This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new ce87bb9  Updated site at revision 1590ca3
ce87bb9 is described below

commit ce87bb923ad3ccc6e44d4a83cc672c6061897194
Author: jenkins <[email protected]>
AuthorDate: Tue Nov 13 09:22:57 2018 +0000

    Updated site at revision 1590ca3
---
 .../index.html                                     | 455 +++++++++++++++++++++
 content/community/bookkeeper_proposals/index.html  |   8 +-
 2 files changed, 461 insertions(+), 2 deletions(-)

diff --git a/content/bps/BP-36-stats-documentation-annotation/index.html 
b/content/bps/BP-36-stats-documentation-annotation/index.html
new file mode 100644
index 0000000..5ec7edc
--- /dev/null
+++ b/content/bps/BP-36-stats-documentation-annotation/index.html
@@ -0,0 +1,455 @@
+<!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.9.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.8.0/overview/overview">
+            Release 4.8.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.7.2/overview/overview">
+            Release 4.7.2
+            <span class="tag is-success">Stable</span>
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.7.1/overview/overview">
+            Release 4.7.1
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.7.0/overview/overview">
+            Release 4.7.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.6.2/overview/overview">
+            Release 4.6.2
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.6.1/overview/overview">
+            Release 4.6.1
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.6.0/overview/overview">
+            Release 4.6.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.5.1/overview/overview">
+            Release 4.5.1
+            
+          </a>
+          
+          <a class="navbar-item" href="/docs/4.5.0/overview/overview">
+            Release 4.5.0
+            
+          </a>
+          
+          
+          <a class="navbar-item" href="/archives/docs/r4.4.0">
+            Release 4.4.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.3.2">
+            Release 4.3.2
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.3.1">
+            Release 4.3.1
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.3.0">
+            Release 4.3.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.2.4">
+            Release 4.2.4
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.2.3">
+            Release 4.2.3
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.2.2">
+            Release 4.2.2
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.2.1">
+            Release 4.2.1
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.2.0">
+            Release 4.2.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.1.0">
+            Release 4.1.0
+            
+          </a>
+          
+          <a class="navbar-item" href="/archives/docs/r4.0.0">
+            Release 4.0.0
+            
+          </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="no">bytes stats of ReadEntry on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">total bytes written to a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">operations stats of AddEntry on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">operation stats of RecoveryAddEntry on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">bytes stats of AddEntry on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">total force operations occurred on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">total bytes read from a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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="no">operation stats of ReadEntry on a bookie</span>
+    <span class="no">"type": |-</span>
+      <span class="no">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 - 2018 <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>
diff --git a/content/community/bookkeeper_proposals/index.html 
b/content/community/bookkeeper_proposals/index.html
index b3a3b44..368e0f2 100644
--- a/content/community/bookkeeper_proposals/index.html
+++ b/content/community/bookkeeper_proposals/index.html
@@ -371,7 +371,7 @@ of the thread is of the format <code 
class="highlighter-rouge">[DISCUSS] BP-&lt;
 
 <p>This section lists all the <em>bookkeeper proposals</em> made to 
BookKeeper.</p>
 
-<p><em>Next Proposal Number: 36</em></p>
+<p><em>Next Proposal Number: 37</em></p>
 
 <h3 id="inprogress">Inprogress</h3>
 
@@ -445,7 +445,11 @@ of the thread is of the format <code 
class="highlighter-rouge">[DISCUSS] BP-&lt;
     </tr>
     <tr>
       <td style="text-align: left"><a 
href="../../bps/BP-35-128-bits-support">BP-35: 128 bits support</a></td>
-      <td style="text-align: left">Under Discussion</td>
+      <td style="text-align: left">Accepted</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><a 
href="../../bps/BP-36-stats-documentation-annotation">BP-36: Stats 
documentation annotation</a></td>
+      <td style="text-align: left">Accepted</td>
     </tr>
   </tbody>
 </table>

Reply via email to