http://git-wip-us.apache.org/repos/asf/mesos-site/blob/74f28ae0/content/documentation/latest/monitoring/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/monitoring/index.html 
b/content/documentation/latest/monitoring/index.html
index 36622c5..92e55b1 100644
--- a/content/documentation/latest/monitoring/index.html
+++ b/content/documentation/latest/monitoring/index.html
@@ -1256,9 +1256,9 @@ and resource allocations in the allocator.</p>
 </tr>
 <tr>
   <td>
-  <code>allocator/mesos/roles/&lt;role&gt;/shares/dominant</code>
+  <code>allocator/mesos/roles/<i>&lt;role&gt;</i>/shares/dominant</code>
   </td>
-  <td>Dominant resource share for the role, exposed as a percentage 
(0.0-1.0)</td>
+  <td>Dominant <i>resource</i> share for the <i>role</i>, exposed as a 
percentage (0.0-1.0)</td>
   <td>Gauge</td>
 </tr>
 <tr>
@@ -1270,24 +1270,24 @@ and resource allocations in the allocator.</p>
 </tr>
 <tr>
   <td>
-  <code>allocator/mesos/offer_filters/roles/&lt;role&gt;/active</code>
+  <code>allocator/mesos/offer_filters/roles/<i>&lt;role&gt;</i>/active</code>
   </td>
-  <td>Number of active offer filters for all frameworks within the role</td>
+  <td>Number of active offer filters for all frameworks within the 
<i>role</i></td>
   <td>Gauge</td>
 </tr>
 <tr>
   <td>
-  
<code>allocator/mesos/quota/roles/&lt;role&gt;/resources/&lt;resource&gt;/offered_or_allocated</code>
+  
<code>allocator/mesos/quota/roles/<i>&lt;role&gt;</i>/resources/<i>&lt;resource&gt;</i>/offered_or_allocated</code>
   </td>
-  <td>Amount of resources considered offered or allocated towards
-      a role's quota guarantee</td>
+  <td>Amount of <i>resource</i>s considered offered or allocated towards
+      a <i>role</i>'s quota guarantee</td>
   <td>Gauge</td>
 </tr>
 <tr>
   <td>
-  
<code>allocator/mesos/quota/roles/&lt;role&gt;/resources/&lt;resource&gt;/guarantee</code>
+  
<code>allocator/mesos/quota/roles/<i>&lt;role&gt;</i>/resources/<i>&lt;resource&gt;</i>/guarantee</code>
   </td>
-  <td>Amount of resources guaranteed for a role via quota</td>
+  <td>Amount of <i>resource</i>s guaranteed for a <i>role</i> via quota</td>
   <td>Gauge</td>
 </tr>
 <tr>
@@ -1879,6 +1879,196 @@ the master it is registered with.</p>
 </table>
 
 
+<h4>Resource Providers</h4>
+
+<p>The following metrics provide information about ongoing and completed
+<a href="/documentation/latest/./operations/">operations</a> that apply to 
resources provided by a
+<a href="/documentation/latest/./resource-provider/">resource provider</a> 
with the given <em>type</em> and <em>name</em>. In
+the following metrics, the <em>operation</em> placeholder refers to the name 
of a
+particular operation type, which is described in the list of
+<a href="#supported-operation-types">supported operation types</a>.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Metric</th><th>Description</th><th>Type</th>
+</thead>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/pending</code>
+  </td>
+  <td>Number of ongoing <i>operation</i>s</td>
+  <td>Gauge</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/finished</code>
+  </td>
+  <td>Number of finished <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/failed</code>
+  </td>
+  <td>Number of failed <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/dropped</code>
+  </td>
+  <td>Number of dropped <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+</table>
+
+
+<h5>Supported Operation Types</h5>
+
+<p>Since the supported operation types may vary among different resource 
providers,
+the following is a comprehensive list of operation types and the corresponding
+resource providers that support them. Note that the name column is for the
+<em>operation</em> placeholder in the above metrics.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Type</th><th>Name</th><th>Supported Resource Provider Types</th>
+</thead>
+<tr>
+  <td><code><a 
href="/documentation/latest/./reservation/">RESERVE</a></code></td>
+  <td><code>reserve</code></td>
+  <td>All</td>
+</tr>
+<tr>
+  <td><code><a 
href="/documentation/latest/./reservation/">UNRESERVE</a></code></td>
+  <td><code>unreserve</code></td>
+  <td>All</td>
+</tr>
+<tr>
+  <td><code><a 
href="persistent-volume.md#-offer-operation-create-">CREATE</a></code></td>
+  <td><code>create</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="persistent-volume.md#-offer-operation-destroy-">DESTROY</a></code></td>
+  <td><code>destroy</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-create_volume-operation">CREATE_VOLUME</a></code></td>
+  <td><code>create_volume</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-destroy_volume-operation">DESTROY_VOLUME</a></code></td>
+  <td><code>destroy_volume</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-create_block-operation">CREATE_BLOCK</a></code></td>
+  <td><code>create_block</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-destroy_block-operation">DESTROY_BLOCK</a></code></td>
+  <td><code>destroy_block</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+</table>
+
+
+<p>For example, cluster operators can monitor the number of successful
+<code>CREATE_VOLUME</code> operations that are applied to the resource 
provider with type
+<code>org.apache.mesos.rp.local.storage</code> and name <code>lvm</code> 
through the
+<code>resource_providers/org.apache.mesos.rp.local.storage.lvm/operations/create_volume/finished</code>
+metric.</p>
+
+<h4>CSI Plugins</h4>
+
+<p>Storage resource providers in Mesos are backed by
+<a 
href="/documentation/latest/./csi/#standalone-containers-for-csi-plugins">CSI 
plugins</a> running in
+<a href="/documentation/latest/./standalone-container/">standalone 
containers</a>. To monitor the health of these
+CSI plugins for a storage resource provider with <em>type</em> and 
<em>name</em>, the
+following metrics provide information about plugin terminations and ongoing and
+completed CSI calls made to the plugin. In the following metrics, the 
<em>rpc</em>
+placeholder refers to the name of a particular CSI call, which is described in
+the list of <a href="#supported-csi-calls">supported CSI calls</a>.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Metric</th><th>Description</th><th>Type</th>
+</thead>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/container_terminations</code>
+  </td>
+  <td>Number of terminated CSI plugin containers</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/pending</code>
+  </td>
+  <td>Number of ongoing <i>rpc</i> calls</td>
+  <td>Gauge</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/successes</code>
+  </td>
+  <td>Number of successful <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/errors</code>
+  </td>
+  <td>Number of erroneous <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/cancelled</code>
+  </td>
+  <td>Number of cancelled <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+</table>
+
+
+<h5>Supported CSI Calls</h5>
+
+<p>The following is a comprehensive list of CSI calls that are used in storage
+resource providers. These names are used to replace the <em>rpc</em> 
placeholder in the
+above metrics.</p>
+
+<ul>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getplugininfo";><code>csi.v0.Identity.GetPluginInfo</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getplugincapabilities";><code>csi.v0.Identity.GetPluginCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#probe";><code>csi.v0.Identity.Probe</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#createvolume";><code>csi.v0.Controller.CreateVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#deletevolume";><code>csi.v0.Controller.DeleteVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllerpublishvolume";><code>csi.v0.Controller.ControllerPublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllerunpublishvolume";><code>csi.v0.Controller.ControllerUnpublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#validatevolumecapabilities";><code>csi.v0.Controller.ValidateVolumeCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#listvolumes";><code>csi.v0.Controller.ListVolumes</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getcapacity";><code>csi.v0.Controller.GetCapacity</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllergetcapabilities";><code>csi.v0.Controller.ControllerGetCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#node-service-rpc";><code>csi.v0.Node.NodeStageVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodeunstagevolume";><code>csi.v0.Node.NodeUnstageVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodepublishvolume";><code>csi.v0.Node.NodePublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodeunpublishvolume";><code>csi.v0.Node.NodeUnpublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodegetid";><code>csi.v0.Node.NodeGetId</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodegetcapabilities";><code>csi.v0.Node.NodeGetCapabilities</code></a></li>
+</ul>
+
+
+<p>For example, cluster operators can monitor the number of successful
+<code>csi.v0.Controller.CreateVolume</code> calls that are made by the 
resource provider
+with type <code>org.apache.mesos.rp.local.storage</code> and name 
<code>lvm</code> through the
+<code>resource_providers/org.apache.mesos.rp.local.storage.lvm/csi_plugin/rpcs/csi.v0.Controller.CreateVolume/successes</code>
+metric.</p>
+
   </div>
 </div>
 

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/74f28ae0/content/documentation/latest/resource-provider/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/latest/resource-provider/index.html 
b/content/documentation/latest/resource-provider/index.html
new file mode 100644
index 0000000..1142ffc
--- /dev/null
+++ b/content/documentation/latest/resource-provider/index.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Resource Provider</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" 
content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" 
content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link 
href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" 
rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos 
Blog" href="/blog/feed.xml">
+    <link href="../../../assets/css/main.css" rel="stylesheet" />
+
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-1']);
+    _gaq.push(['_setDomainName', 'apache.org']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+    })();
+    </script>
+  </head>
+  <body>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation 
<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org";>Apache Homepage</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                <li><a href="http://www.apache.org/security/";>Security</a></li>
+              </ul>
+            </div>
+          </li>
+
+          <li><a href="http://mesos.apache.org";>Apache Mesos</a></li>
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" 
alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/getting-started/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/getting-started/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Resource Provider</h1>
+
+<p>Resource provider is a new abstraction introduced in Mesos 1.5. Leveraging 
this,
+the resource-providing part of Mesos can be easily extended and customized.
+Before 1.5, this part of the logic is hard-coded in the agent. Resource
+providers are mainly responsible for updating Mesos about available resources
+and handling operations on those resources.</p>
+
+<p>There are two types of resource providers: Local Resource Providers (LRP) 
and
+External Resource Providers (ERP). Local resource providers only provide
+resources that are tied to a particular agent node, while external resource
+providers provide resources that are not tied to any agent node (a.k.a. global
+resources). The resource provider API is designed in such a way that it works
+for both types of resource providers. In Mesos 1.5, only local resource
+providers are supported.</p>
+
+<p>The resource provider API is an HTTP-based API, allowing resource providers 
to
+be running outside the Mesos master or agent. This is important for ERPs.</p>
+
+<p>There is a component in the agent, called the Resource Provider Manager, 
that
+monitors and manages LRPs on that agent. The same component will be running in
+the master in the future to monitor ERPs.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+
+        <div class="col-md-3">
+            <a  href="https://www.apache.org/events/current-event.html";>
+              <img 
src="https://www.apache.org/events/current-event-234x60.png"/>
+            </a>
+        </div>
+
+        <div class="col-md-3 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos";
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var 
js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,
 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos";
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var 
js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,
 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-6 trademark">
+          <p>&copy; 2012-2018 <a href="http://apache.org";>The Apache Software 
Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos 
project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
+    <script 
src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+    <script 
src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.0/anchor.min.js"></script>
+
+    <!-- Inject anchors for all headings on the page, see 
https://www.bryanbraun.com/anchorjs. -->
+    <script type="text/javascript">
+    anchors.options = {
+      placement: 'right',
+      ariaLabel: 'Permalink',
+    };
+
+    // The default is to not add anchors to h1, but we have pages with 
multiple h1 headers,
+    // and we do want to put anchors on those.
+    anchors.add('h1, h2, h3, h4, h5, h6');
+    </script>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/74f28ae0/content/documentation/monitoring/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/monitoring/index.html 
b/content/documentation/monitoring/index.html
index 890405d..2a344e5 100644
--- a/content/documentation/monitoring/index.html
+++ b/content/documentation/monitoring/index.html
@@ -1256,9 +1256,9 @@ and resource allocations in the allocator.</p>
 </tr>
 <tr>
   <td>
-  <code>allocator/mesos/roles/&lt;role&gt;/shares/dominant</code>
+  <code>allocator/mesos/roles/<i>&lt;role&gt;</i>/shares/dominant</code>
   </td>
-  <td>Dominant resource share for the role, exposed as a percentage 
(0.0-1.0)</td>
+  <td>Dominant <i>resource</i> share for the <i>role</i>, exposed as a 
percentage (0.0-1.0)</td>
   <td>Gauge</td>
 </tr>
 <tr>
@@ -1270,24 +1270,24 @@ and resource allocations in the allocator.</p>
 </tr>
 <tr>
   <td>
-  <code>allocator/mesos/offer_filters/roles/&lt;role&gt;/active</code>
+  <code>allocator/mesos/offer_filters/roles/<i>&lt;role&gt;</i>/active</code>
   </td>
-  <td>Number of active offer filters for all frameworks within the role</td>
+  <td>Number of active offer filters for all frameworks within the 
<i>role</i></td>
   <td>Gauge</td>
 </tr>
 <tr>
   <td>
-  
<code>allocator/mesos/quota/roles/&lt;role&gt;/resources/&lt;resource&gt;/offered_or_allocated</code>
+  
<code>allocator/mesos/quota/roles/<i>&lt;role&gt;</i>/resources/<i>&lt;resource&gt;</i>/offered_or_allocated</code>
   </td>
-  <td>Amount of resources considered offered or allocated towards
-      a role's quota guarantee</td>
+  <td>Amount of <i>resource</i>s considered offered or allocated towards
+      a <i>role</i>'s quota guarantee</td>
   <td>Gauge</td>
 </tr>
 <tr>
   <td>
-  
<code>allocator/mesos/quota/roles/&lt;role&gt;/resources/&lt;resource&gt;/guarantee</code>
+  
<code>allocator/mesos/quota/roles/<i>&lt;role&gt;</i>/resources/<i>&lt;resource&gt;</i>/guarantee</code>
   </td>
-  <td>Amount of resources guaranteed for a role via quota</td>
+  <td>Amount of <i>resource</i>s guaranteed for a <i>role</i> via quota</td>
   <td>Gauge</td>
 </tr>
 <tr>
@@ -1879,6 +1879,196 @@ the master it is registered with.</p>
 </table>
 
 
+<h4>Resource Providers</h4>
+
+<p>The following metrics provide information about ongoing and completed
+<a href="/documentation/latest/./operations/">operations</a> that apply to 
resources provided by a
+<a href="/documentation/latest/./resource-provider/">resource provider</a> 
with the given <em>type</em> and <em>name</em>. In
+the following metrics, the <em>operation</em> placeholder refers to the name 
of a
+particular operation type, which is described in the list of
+<a href="#supported-operation-types">supported operation types</a>.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Metric</th><th>Description</th><th>Type</th>
+</thead>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/pending</code>
+  </td>
+  <td>Number of ongoing <i>operation</i>s</td>
+  <td>Gauge</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/finished</code>
+  </td>
+  <td>Number of finished <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/failed</code>
+  </td>
+  <td>Number of failed <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/operations/<i>&lt;operation&gt;</i>/dropped</code>
+  </td>
+  <td>Number of dropped <i>operation</i>s</td>
+  <td>Counter</td>
+</tr>
+</table>
+
+
+<h5>Supported Operation Types</h5>
+
+<p>Since the supported operation types may vary among different resource 
providers,
+the following is a comprehensive list of operation types and the corresponding
+resource providers that support them. Note that the name column is for the
+<em>operation</em> placeholder in the above metrics.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Type</th><th>Name</th><th>Supported Resource Provider Types</th>
+</thead>
+<tr>
+  <td><code><a 
href="/documentation/latest/./reservation/">RESERVE</a></code></td>
+  <td><code>reserve</code></td>
+  <td>All</td>
+</tr>
+<tr>
+  <td><code><a 
href="/documentation/latest/./reservation/">UNRESERVE</a></code></td>
+  <td><code>unreserve</code></td>
+  <td>All</td>
+</tr>
+<tr>
+  <td><code><a 
href="persistent-volume.md#-offer-operation-create-">CREATE</a></code></td>
+  <td><code>create</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="persistent-volume.md#-offer-operation-destroy-">DESTROY</a></code></td>
+  <td><code>destroy</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-create_volume-operation">CREATE_VOLUME</a></code></td>
+  <td><code>create_volume</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-destroy_volume-operation">DESTROY_VOLUME</a></code></td>
+  <td><code>destroy_volume</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-create_block-operation">CREATE_BLOCK</a></code></td>
+  <td><code>create_block</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+<tr>
+  <td><code><a 
href="csi.md#-destroy_block-operation">DESTROY_BLOCK</a></code></td>
+  <td><code>destroy_block</code></td>
+  <td><code>org.apache.mesos.rp.local.storage</code></td>
+</tr>
+</table>
+
+
+<p>For example, cluster operators can monitor the number of successful
+<code>CREATE_VOLUME</code> operations that are applied to the resource 
provider with type
+<code>org.apache.mesos.rp.local.storage</code> and name <code>lvm</code> 
through the
+<code>resource_providers/org.apache.mesos.rp.local.storage.lvm/operations/create_volume/finished</code>
+metric.</p>
+
+<h4>CSI Plugins</h4>
+
+<p>Storage resource providers in Mesos are backed by
+<a 
href="/documentation/latest/./csi/#standalone-containers-for-csi-plugins">CSI 
plugins</a> running in
+<a href="/documentation/latest/./standalone-container/">standalone 
containers</a>. To monitor the health of these
+CSI plugins for a storage resource provider with <em>type</em> and 
<em>name</em>, the
+following metrics provide information about plugin terminations and ongoing and
+completed CSI calls made to the plugin. In the following metrics, the 
<em>rpc</em>
+placeholder refers to the name of a particular CSI call, which is described in
+the list of <a href="#supported-csi-calls">supported CSI calls</a>.</p>
+
+<table class="table table-striped">
+<thead>
+<tr><th>Metric</th><th>Description</th><th>Type</th>
+</thead>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/container_terminations</code>
+  </td>
+  <td>Number of terminated CSI plugin containers</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/pending</code>
+  </td>
+  <td>Number of ongoing <i>rpc</i> calls</td>
+  <td>Gauge</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/successes</code>
+  </td>
+  <td>Number of successful <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/errors</code>
+  </td>
+  <td>Number of erroneous <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+<tr>
+  <td>
+  
<code>resource_providers/<i>&lt;type&gt;</i>.<i>&lt;name&gt;</i>/csi_plugin/rpcs/<i>&lt;rpc&gt;</i>/cancelled</code>
+  </td>
+  <td>Number of cancelled <i>rpc</i> calls</td>
+  <td>Counter</td>
+</tr>
+</table>
+
+
+<h5>Supported CSI Calls</h5>
+
+<p>The following is a comprehensive list of CSI calls that are used in storage
+resource providers. These names are used to replace the <em>rpc</em> 
placeholder in the
+above metrics.</p>
+
+<ul>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getplugininfo";><code>csi.v0.Identity.GetPluginInfo</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getplugincapabilities";><code>csi.v0.Identity.GetPluginCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#probe";><code>csi.v0.Identity.Probe</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#createvolume";><code>csi.v0.Controller.CreateVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#deletevolume";><code>csi.v0.Controller.DeleteVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllerpublishvolume";><code>csi.v0.Controller.ControllerPublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllerunpublishvolume";><code>csi.v0.Controller.ControllerUnpublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#validatevolumecapabilities";><code>csi.v0.Controller.ValidateVolumeCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#listvolumes";><code>csi.v0.Controller.ListVolumes</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#getcapacity";><code>csi.v0.Controller.GetCapacity</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#controllergetcapabilities";><code>csi.v0.Controller.ControllerGetCapabilities</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#node-service-rpc";><code>csi.v0.Node.NodeStageVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodeunstagevolume";><code>csi.v0.Node.NodeUnstageVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodepublishvolume";><code>csi.v0.Node.NodePublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodeunpublishvolume";><code>csi.v0.Node.NodeUnpublishVolume</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodegetid";><code>csi.v0.Node.NodeGetId</code></a></li>
+<li><a 
href="https://github.com/container-storage-interface/spec/blob/v0.2.0/spec.md#nodegetcapabilities";><code>csi.v0.Node.NodeGetCapabilities</code></a></li>
+</ul>
+
+
+<p>For example, cluster operators can monitor the number of successful
+<code>csi.v0.Controller.CreateVolume</code> calls that are made by the 
resource provider
+with type <code>org.apache.mesos.rp.local.storage</code> and name 
<code>lvm</code> through the
+<code>resource_providers/org.apache.mesos.rp.local.storage.lvm/csi_plugin/rpcs/csi.v0.Controller.CreateVolume/successes</code>
+metric.</p>
+
   </div>
 </div>
 

http://git-wip-us.apache.org/repos/asf/mesos-site/blob/74f28ae0/content/documentation/resource-provider/index.html
----------------------------------------------------------------------
diff --git a/content/documentation/resource-provider/index.html 
b/content/documentation/resource-provider/index.html
new file mode 100644
index 0000000..e40e93d
--- /dev/null
+++ b/content/documentation/resource-provider/index.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Apache Mesos - Resource Provider</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <meta property="og:locale" content="en_US"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:title" content="Apache Mesos"/>
+    <meta property="og:site_name" content="Apache Mesos"/>
+    <meta property="og:url" content="http://mesos.apache.org/"/>
+    <meta property="og:image" 
content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta property="og:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:site" content="@ApacheMesos"/>
+    <meta name="twitter:title" content="Apache Mesos"/>
+    <meta name="twitter:image" 
content="http://mesos.apache.org/assets/img/mesos_logo_fb_preview.png"/>
+    <meta name="twitter:description"
+          content="Apache Mesos abstracts resources away from machines,
+                   enabling fault-tolerant and elastic distributed systems
+                   to easily be built and run effectively."/>
+
+    <link 
href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" 
rel="stylesheet">
+    <link rel="alternate" type="application/atom+xml" title="Apache Mesos 
Blog" href="/blog/feed.xml">
+    <link href="../../assets/css/main.css" rel="stylesheet" />
+
+
+    <!-- Google Analytics Magic -->
+    <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-20226872-1']);
+    _gaq.push(['_setDomainName', 'apache.org']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s);
+    })();
+    </script>
+  </head>
+  <body>
+    <!-- magical breadcrumbs -->
+    <div class="topnav">
+      <div class="container">
+        <ul class="breadcrumb">
+          <li>
+            <div class="dropdown">
+              <a data-toggle="dropdown" href="#">Apache Software Foundation 
<span class="caret"></span></a>
+              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
+                <li><a href="http://www.apache.org";>Apache Homepage</a></li>
+                <li><a href="http://www.apache.org/licenses/";>License</a></li>
+                <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+                <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li>
+                <li><a href="http://www.apache.org/security/";>Security</a></li>
+              </ul>
+            </div>
+          </li>
+
+          <li><a href="http://mesos.apache.org";>Apache Mesos</a></li>
+          <li><a href="/documentation
+/">Documentation
+</a></li>
+        </ul><!-- /.breadcrumb -->
+      </div><!-- /.container -->
+    </div><!-- /.topnav -->
+
+    <!-- navbar excitement -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#mesos-menu" aria-expanded="false">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="/"><img src="/assets/img/mesos_logo.png" 
alt="Apache Mesos logo"/></a>
+    </div><!-- /.navbar-header -->
+
+    <div class="navbar-collapse collapse" id="mesos-menu">
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="/getting-started/">Getting Started</a></li>
+        <li><a href="/blog/">Blog</a></li>
+        <li><a href="/documentation/latest/">Documentation</a></li>
+        <li><a href="/downloads/">Downloads</a></li>
+        <li><a href="/community/">Community</a></li>
+      </ul>
+    </div><!-- /#mesos-menu -->
+  </div><!-- /.container -->
+</div><!-- /.navbar -->
+
+<div class="content">
+  <div class="container">
+    <div class="row-fluid">
+  <div class="col-md-4">
+    <h4>If you're new to Mesos</h4>
+    <p>See the <a href="/getting-started/">getting started</a> page for more
+       information about downloading, building, and deploying Mesos.</p>
+
+    <h4>If you'd like to get involved or you're looking for support</h4>
+    <p>See our <a href="/community/">community</a> page for more details.</p>
+  </div>
+  <div class="col-md-8">
+    <h1>Resource Provider</h1>
+
+<p>Resource provider is a new abstraction introduced in Mesos 1.5. Leveraging 
this,
+the resource-providing part of Mesos can be easily extended and customized.
+Before 1.5, this part of the logic is hard-coded in the agent. Resource
+providers are mainly responsible for updating Mesos about available resources
+and handling operations on those resources.</p>
+
+<p>There are two types of resource providers: Local Resource Providers (LRP) 
and
+External Resource Providers (ERP). Local resource providers only provide
+resources that are tied to a particular agent node, while external resource
+providers provide resources that are not tied to any agent node (a.k.a. global
+resources). The resource provider API is designed in such a way that it works
+for both types of resource providers. In Mesos 1.5, only local resource
+providers are supported.</p>
+
+<p>The resource provider API is an HTTP-based API, allowing resource providers 
to
+be running outside the Mesos master or agent. This is important for ERPs.</p>
+
+<p>There is a component in the agent, called the Resource Provider Manager, 
that
+monitors and manages LRPs on that agent. The same component will be running in
+the master in the future to monitor ERPs.</p>
+
+  </div>
+</div>
+
+  </div><!-- /.container -->
+</div><!-- /.content -->
+
+<hr>
+
+
+
+    <!-- footer -->
+    <div class="footer">
+      <div class="container">
+
+        <div class="col-md-3">
+            <a  href="https://www.apache.org/events/current-event.html";>
+              <img 
src="https://www.apache.org/events/current-event-234x60.png"/>
+            </a>
+        </div>
+
+        <div class="col-md-3 social-blk">
+          <span class="social">
+            <a href="https://twitter.com/ApacheMesos";
+              class="twitter-follow-button"
+              data-show-count="false" data-size="large">Follow @ApacheMesos</a>
+            <script>!function(d,s,id){var 
js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,
 'script', 'twitter-wjs');</script>
+            <a href="https://twitter.com/intent/tweet?button_hashtag=mesos";
+              class="twitter-hashtag-button"
+              data-size="large"
+              data-related="ApacheMesos">Tweet #mesos</a>
+            <script>!function(d,s,id){var 
js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,
 'script', 'twitter-wjs');</script>
+          </span>
+        </div>
+
+        <div class="col-md-6 trademark">
+          <p>&copy; 2012-2018 <a href="http://apache.org";>The Apache Software 
Foundation</a>.
+            Apache Mesos, the Apache feather logo, and the Apache Mesos 
project logo are trademarks of The Apache Software Foundation.
+          <p>
+        </div>
+
+      </div><!-- /.container -->
+    </div><!-- /.footer -->
+
+    <!-- JS -->
+    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
+    <script 
src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+    <script 
src="//cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.0/anchor.min.js"></script>
+
+    <!-- Inject anchors for all headings on the page, see 
https://www.bryanbraun.com/anchorjs. -->
+    <script type="text/javascript">
+    anchors.options = {
+      placement: 'right',
+      ariaLabel: 'Permalink',
+    };
+
+    // The default is to not add anchors to h1, but we have pages with 
multiple h1 headers,
+    // and we do want to put anchors on those.
+    anchors.add('h1, h2, h3, h4, h5, h6');
+    </script>
+  </body>
+</html>

Reply via email to