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/<role>/shares/dominant</code> + <code>allocator/mesos/roles/<i><role></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/<role>/active</code> + <code>allocator/mesos/offer_filters/roles/<i><role></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/<role>/resources/<resource>/offered_or_allocated</code> + <code>allocator/mesos/quota/roles/<i><role></i>/resources/<i><resource></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/<role>/resources/<resource>/guarantee</code> + <code>allocator/mesos/quota/roles/<i><role></i>/resources/<i><resource></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><type></i>.<i><name></i>/operations/<i><operation></i>/pending</code> + </td> + <td>Number of ongoing <i>operation</i>s</td> + <td>Gauge</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></i>/finished</code> + </td> + <td>Number of finished <i>operation</i>s</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></i>/failed</code> + </td> + <td>Number of failed <i>operation</i>s</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></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><type></i>.<i><name></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><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/pending</code> + </td> + <td>Number of ongoing <i>rpc</i> calls</td> + <td>Gauge</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/successes</code> + </td> + <td>Number of successful <i>rpc</i> calls</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/errors</code> + </td> + <td>Number of erroneous <i>rpc</i> calls</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></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>© 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/<role>/shares/dominant</code> + <code>allocator/mesos/roles/<i><role></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/<role>/active</code> + <code>allocator/mesos/offer_filters/roles/<i><role></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/<role>/resources/<resource>/offered_or_allocated</code> + <code>allocator/mesos/quota/roles/<i><role></i>/resources/<i><resource></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/<role>/resources/<resource>/guarantee</code> + <code>allocator/mesos/quota/roles/<i><role></i>/resources/<i><resource></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><type></i>.<i><name></i>/operations/<i><operation></i>/pending</code> + </td> + <td>Number of ongoing <i>operation</i>s</td> + <td>Gauge</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></i>/finished</code> + </td> + <td>Number of finished <i>operation</i>s</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></i>/failed</code> + </td> + <td>Number of failed <i>operation</i>s</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/operations/<i><operation></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><type></i>.<i><name></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><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/pending</code> + </td> + <td>Number of ongoing <i>rpc</i> calls</td> + <td>Gauge</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/successes</code> + </td> + <td>Number of successful <i>rpc</i> calls</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></i>/errors</code> + </td> + <td>Number of erroneous <i>rpc</i> calls</td> + <td>Counter</td> +</tr> +<tr> + <td> + <code>resource_providers/<i><type></i>.<i><name></i>/csi_plugin/rpcs/<i><rpc></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>© 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>
