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™ - 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™
+ </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> <p>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> <p>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 © 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-<
<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-<
</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>