<!--

    Copyright (c) 2005, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<p><a id="task-mon-resource-clustered-instance" name="task-mon-resource-clustered-instance"></a><a id="GHCLU00055" name="GHCLU00055"></a></p>

<h4><a id="sthref116" name="sthref116"></a><a id="sthref117" name="sthref117"></a><a id="sthref118" name="sthref118"></a><a id="sthref119" name="sthref119"></a>To View Resource Monitoring Data for a Clustered GlassFish Server Instance</h4>
<a name="BEGIN" id="BEGIN"></a><a id="sthref120" name="sthref120"></a>
<h5>Before You Begin</h5>
<p>Before you can view monitoring data, you must <a href="../../../common/en/help/task-confmonitor.html">configure the monitoring service</a>.</p>
<ol>
<li>
<p>In the navigation tree, expand the Clusters node.</p>
</li>
<li>
<p>Under the expanded Clusters node, select the node for the cluster.</p>
<p>The General Information page for the cluster opens.</p>
</li>
<li>
<p>On the General Information page, click the Instances tab.</p>
<p>The Clustered Server Instances page for the cluster opens.</p>
</li>
<li>
<p>Select the instance for which to view resource monitoring data.</p>
<p>The General Information page for the instance opens.</p>
</li>
<li>
<p>On the General Information page, click the Monitor tab.</p>
<p>The Application Monitoring page opens.</p>
</li>
<li>
<p>Click the Resources tab.</p>
<p>The Resource Monitoring page opens.</p>
</li>
<li>
<p>From the View drop-down list, select the resource for which you want to view monitoring data for resources.</p>
</li>
<li>
<p>To update displayed monitoring data, click Refresh.</p>
</li>
</ol>
<a id="sthref121" name="sthref121"></a>
<h5>See Also</h5>
<ul>
<li>
<p><a href="../../../common/en/help/task-confmonitor.html">To Configure the Monitoring Service</a></p>
</li>
<li>
<p><a href="task-create-clustered-instance.html">To Add a GlassFish Server Instance to a Cluster</a></p>
</li>
<li>
<p><a href="task-delete-clustered-instances.html">To Delete Clustered GlassFish Server Instances</a></p>
</li>
<li>
<p><a href="task-start-clustered-instances.html">To Start Clustered GlassFish Server Instances</a></p>
</li>
<li>
<p><a href="task-stop-clustered-instances.html">To Stop Clustered GlassFish Server Instances</a></p>
</li>
<li>
<p><a href="task-view-logs-clustered-instance.html">To View Log Files for a Clustered GlassFish Server Instance</a></p>
</li>
<li>
<p><a href="task-recovertransactions.html">To Recover Transactions for a Clustered GlassFish Server Instance</a></p>
</li>
<li>
<p><a href="task-change-clustered-instance-ports.html">To Modify the Port Numbers of a Clustered GlassFish Server Instance</a></p>
</li>
<li>
<p><a href="task-set-props-clustered-instance.html">To Set Instance-Only Properties for a Clustered GlassFish Server Instance</a></p>
</li>
<li>
<p><a href="task-mon-app-clustered-instance.html">To View Application Monitoring Data for a Clustered GlassFish Server Instance</a></p>
</li>
<li>
<p><a href="task-mon-server-clustered-instance.html">To View Virtual-Server Monitoring Data for a Clustered GlassFish Server Instance</a></p>
</li>
</ul>



<small>Copyright &#169; 2005, 2017, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></small>
